我有一个〜/ .vimrc文件,vim似乎没有阅读。 / etc / vimrc中有一个文件,看起来它正在使用那个文件。
我的理解是主目录中的那个应该覆盖这个,不应该吗?
更新
cat vim_strace | grep .vimrc
stat64("/etc/vimrc", {st_mode=S_IFREG|0644, st_size=1438, ...}) = 0
open("/etc/vimrc", O_RDONLY|O_LARGEFILE) = 3
stat64("/etc/vimrc", {st_mode=S_IFREG|0644, st_size=1438, ...}) = 0
stat64("/root/.vimrc", {st_mode=S_IFREG|0644, st_size=35, ...}) = 0
open("/root/.vimrc", O_RDONLY|O_LARGEFILE) = 3
stat64("/root/.vimrc", {st_mode=S_IFREG|0644, st_size=35, ...}) = 0
答案 0 :(得分:118)
一旦你加载了vim,:scriptnames
就会告诉你Vim读到的确切内容。
对我来说,它是这样开始的:
1: /Applications/MacVim.app/Contents/Resources/vim/vimrc
2: ~/.vimrc
3: /Applications/MacVim.app/Contents/Resources/vim/runtime/syntax/syntax.vim
4: /Applications/MacVim.app/Contents/Resources/vim/runtime/syntax/synload.vim
5: /Applications/MacVim.app/Contents/Resources/vim/runtime/syntax/syncolor.vim
如果要检查特定设置的设置位置,请使用“详细设置”。例如,:verbose set background
告诉我:
background=light
Last set from ~/.vimrc
所以我知道我正在读取〜/ .vimrc中的设置,并且没有后面的文件会破坏它。
答案 1 :(得分:59)
如果您使用的是Linux并想知道vim是否在启动时访问了〜/ .vimrc,您可以使用strace启动它:
strace -o vim_strace vim
然后退出vim。 打开vim_strace文件并在文件中搜索“vimrc”。你应该找到像这样的一行
stat64("/home/youruser/.vimrc", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
这意味着至少vim会看到该文件。
答案 2 :(得分:14)
我遇到了这个问题,只是将以下内容添加到文件~/.bash_profile
:
alias vim="vim -S ~/.vimrc"
答案 3 :(得分:10)
如果有人在使用neovim时遇到此问题,您应该知道(在开始脱发之前).vimrc
文件是从~/.config/nvim/init.vim
加载的。
mkdir -p ~/.config/nvim; ln -s ~/.vimrc ~/.config/nvim/init.vim
答案 4 :(得分:4)
加上hellvinz的指示。
制作vim_strace文件后。
cat vim_strace | grep .vimrc
让生活变得简单:)
答案 5 :(得分:3)
在OSX 10.8.0上,vimrc文件的位置是:/ usr / share / vim / vimrc
我只是将我的更改添加到文件的底部。
当然,这会对所有用户进行更改。对于我的生活,我似乎无法弄清楚如何阅读〜/ .vimrc。这在10.6.x上对我来说从来都不是问题
无论如何,这是一个快速修复,即使它有点脏。
干杯
答案 6 :(得分:3)
如果有其他人遇到此问题,并且像我一样意识到。vimrc
因为sudo而无法阅读,请尝试使用sudo -E
。它保留了命令的环境,$HOME
将指向您自己的主目录。请注意,这可能不适用于使用 rootsquash 挂载{{1}}的环境。
答案 7 :(得分:3)
在Ubuntu中使用文件 /etc/vim/vimrc.local
答案 8 :(得分:1)
我进行搜索
find / -name vimrc
并找到了。 /etc/vim/vimrc
打开它并了解这将覆盖其他设置
只需取消注释"
您想要的一些有用设置
答案 9 :(得分:1)
检查是否已设置$VIMINIT
。它可能会阻止您阅读~/.vimrc
。见:help VIMINIT
:
c. Four places are searched for initializations. The first that exists
is used, the others are ignored. [...]
- The environment variable VIMINIT [...]
对我来说,VIMINIT
取消了这个伎俩,我的~/.vimrc
现已被阅读。
答案 10 :(得分:0)
按照上面的建议检查scriptnames
和verbose
之后,我注意到我的设置确实已被加载,但是被另一个插件覆盖,因此给人的印象是它没有读取/加载{ {1}}。
如果您遇到这种情况,并且想要从插件覆盖特定设置,而又不完全消除该插件带来的所有其他好处,则可以创建一个配置文件以在之后加载通过在.vimrc
中创建文件来加载插件。供参考,请参见this other question。
答案 11 :(得分:0)
/etc/vim/vimrc
现在默认情况下会被覆盖。vim除非有~/.vimrc
显然。
https://github.com/vim/vim/issues/2042
答案 12 :(得分:0)
偶然发现了这篇文章,没有任何建议对我有用。这里没有提到一些有用的东西:
...所以即使我有一个真正的vim,它也在寻找“ virc”
答案 13 :(得分:0)
对我来说,错误是我将配置设置为~/.vim/.vimrc
。
阅读一些文档后,我发现正确的路径是~/.vim/vimrc
。
更改文件就可以了。