Vim显示的当前工作目录与我从命令行启动vim时使用的目录不同。如果我在没有.vimrc
(vim -u NONE
)的情况下运行,问题就会消失。我如何调试它来找出为什么会发生这种情况?
$ pwd
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
$ vim --noplugin
:pwd
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
:edit settings.sh
:pwd
/Users/rbednark/quizme-read-only-prod
(expected:
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
actual:
/Users/rbednark/quizme-read-only-prod
)
如果我不使用.vimrc
,问题就会消失:
$ vim -u NONE
备注:
:set autochdir?
输出noautochdir
:verbose set autochdir?
输出noautochdir
:!pwd
和:pwd
都输出相同的目录vim --noplugin
也会出现此问题- 我最近升级了
vim
和python
(通过brew upgrade
)。 - 我最近没有更改我的
.vimrc
(除了添加一些注解)。它在git的版本控制下,所以我确认这些是唯一的变化。 - 我有安装和更新我的插件与vundle(
:VundleInstall
和:VundleUpdate
)。 - 我已经对我的
.bashrc
做了一些修改,但我认为不会改变Vim的行为。 - 操作系统:macOS莫哈韦10.14.6
- Vim:8.2(2019 Dec 12,编译于Aug 20 2020 22:44:15)编译自Homebrew
**编辑:**我最初认为这是由于做:edit other-file
,但现在我看到它只是编辑一个文件,所以我改变了上述删除不必要的方面。
2条答案
按热度按时间7eumitmz1#
原因:我在某个时候做了一个
:lcd
,我的.vimrc
在离开和进入缓冲区时有autocmd
s到mkview
和loadview
,所以再次编辑文件是对另一个目录做:lcd
。解决方案:
我如何解决/调试:
我将
.vimrc
文件一分为二,以确定有问题的行,这是:这表明这是由于一个视图正在加载。然后我在
~/.vim/view
中查看了相应的view
文件,并搜索了目录名,结果是:标签:https://vi.stackexchange.com/questions/11903/working-directory-different-than-current-file-directory
iih3973s2#
我使用下面的代码片段来保存文件夹状态,同时使用
auto-session
来保存每个特定目录的neovim会话。而将
vim.cmd [[set viewoptions-=curdir]]
添加到我的options.lua
文件中完美地解决了这个问题,我可以在离开缓冲区或退出neovim后自动保存会话和文件夹状态,并在进入缓冲区或在同一目录下打开neovim时加载它们。