打开某些文件后目录更改

时间:2016-11-20 12:07:13

标签: vim osx-mavericks

修改

情景发生了变化。对不起,发布问题有点太早了。

打开文件(vim filename.ext:e filename.txt等)时,当CWD为~/Sites/A时,vim会更改为另一个CWD(~/Sites/B)。

我发现,由于我的~/.vim/view/文件夹中有一个名为~=+Sites=+B=+src=+filename.txt=的文件,vim会这样做。

~/.vim/view/内的文件包含:

let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 200 - ((13 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
200
normal! 030|
lcd ~/Sites/B
let &so = s:so_save | let &siso = s:siso_save
doautoall SessionLoadPost
" vim: set ft=vim :

为什么行lcs ~/Sites/B代表此文件?内部~/Sites/B从未存在名为filename.ext的文件。

为了完整起见,在我本地化错误之前,这是我的问题:

当我在位于~/Sites/a的代码库中vimgrep(例如:vimgrep DateCell src/**/*)时,vim的当前工作目录会更改为另一个目录~/Sites/B

vimgrep或其他work-directory-aware命令的每次后续调用都会失败或返回错误的结果,因为它在~/Sites/B目录中运行。

是什么导致这种情况?

我做了什么,以实现错误/错误行为:

  1. cd ~/Sites/A
  2. vim
  3. vimgrep something src/**/*
  4. :!pwd显示~/Sites/B
  5. :quit
  6. pwd显示~/Sites/A
  7. 修改

    事实证明,如果我不使用vimgrep,目录也会发生变化。我仍然不知道产生错误的原因。

    BTW:它始终是同一个目录(~/Sites/B),vim更改为。无论我在哪个目录工作。

    Vim版本:8.0.2
    操作系统版本:OS X 10.10.5

1 个答案:

答案 0 :(得分:0)

~=+Sites=+B=+src=+filename.txt=~/Sites/B/src/filename.txt的已保存视图。问题是:当你从另一个目录中打开一个文件(具有相同的名称,或者任何,从你的问题中不完全清楚)时,为什么会加载它?

通常,必须手动创建和恢复视图。您似乎在配置中有一些内容(:autocmd自动恢复已保存的视图,并且其路径查找中存在错误(或者,您的文件系统不太可能被搞砸了你有符号链接)。找到它,并将其关闭/修复它。