不读〜/ .vimrc

时间:2010-08-16 16:21:10

标签: vim

我有一个〜/ .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

14 个答案:

答案 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)

用.vimrc尝试解决方案后,在我的Debian上使用VIM73

我进行搜索

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)

按照上面的建议检查scriptnamesverbose之后,我注意到我的设置确实已被加载,但是被另一个插件覆盖,因此给人的印象是它没有读取/加载{ {1}}。

如果您遇到这种情况,并且想要从插件覆盖特定设置,而又不完全消除该插件带来的所有其他好处,则可以创建一个配置文件以在之后加载通过在.vimrc中创建文件来加载插件。供参考,请参见this other question

答案 11 :(得分:0)

/etc/vim/vimrc现在默认情况下会被覆盖。vim除非有~/.vimrc显然。 https://github.com/vim/vim/issues/2042

答案 12 :(得分:0)

偶然发现了这篇文章,没有任何建议对我有用。这里没有提到一些有用的东西:

  1. vim --version应该会给您一些有用的信息,包括启动文件。 (我在几个地方列出了“ virc”(不是vimrc)
  2. 如果您的vim并不是真正的vim,那么它可能是在寻找〜/ .exrc而不是.vimrc(我的软件寻找一些系统虚拟机,然后是某些用户虚拟机,然后是$ HOME / .exrc)
  3. 如果文件(无论是哪个文件)都以DOS行结尾,则可能会导致错误

...所以即使我有一个真正的vim,它也在寻找“ virc”

答案 13 :(得分:0)

对我来说,错误是我将配置设置为~/.vim/.vimrc。 阅读一些文档后,我发现正确的路径是~/.vim/vimrc

更改文件就可以了。