2010-08-16 67 views
35

我有一个〜/ .vimrc文件,vim似乎没有读取。 /etc/vimrc中有一个文件,看起来它正在使用该文件。不读〜/ .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 
+1

它们都运行。应先加载'/ etc/vimrc',然后加载'〜/ .vimrc'。还有一些其他的东西被加载,其中大部分都包含在你的'〜/ .vim /'目录中。不知道你为什么没有加载。 – 2010-08-16 16:29:00

+0

我修改了问题以包含strace输出... 根文件夹vimrc覆盖/ etc/vimrc中的设置吗? – NinjaCat 2010-08-16 17:57:11

+0

您的意思是使用/root/.vimrc还是要使用/home/ninjacat/.vimrc(或类似的)? – 2010-08-16 21:46:30

回答

48

,如果你是在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

这是一个很好的解决这个问题的方法。 – Koobz 2012-09-17 14:50:41

+1

请注意,某些virmrc文件不在您的主目录中。我正在运行Raspbian,而我在'/ usr/share/vim/vimrc'中。 – dspacejs 2015-12-04 14:04:42

+0

我希望我多年前对strace命令有所了解。这非常有用;谢谢。 – aggregate1166877 2016-09-30 01:58:51

4

只是为了补充hellvinz的指示。

制作vim_strace文件后。

cat vim_strace | grep的.vimrc里

让生活轻松一点:)

+3

'grep .vimrc vim_strace'更好。 – Lynch 2011-06-29 23:02:33

+3

UUOC - 无用的猫 – Anthony 2013-04-11 02:12:46

2

在OSX 10.8.0的vimrc文件的位置是:在/ usr/share/vim目录/的vimrc

我只是添加我的变化文件的底部。

当然这会对所有用户进行更改。对于我的生活,我似乎无法弄清楚如何让它读取〜/ .vimrc。这对我来说不是问题10.6.x

无论如何,这是一个快速修复,即使它有点脏。

干杯

+1

10.8?我在2012年的10.7.3 ...我想知道你去年的比例是如何达到10.8。 – 2012-04-16 13:49:40

97

一旦你载入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中被读取,并且没有后来的文件是重挫它。

+15

“:scripnames”的绝对+1。 – sjas 2012-08-11 21:31:13

+2

工作得很好..并表明它确实不读取我的vimrc .. – 2013-10-05 05:21:53

+0

这很有用+1。不幸的是,由于某些原因,尽管syntax.vim显示在我的'scriptnames'上,它仍然是我vimrc中唯一没有读取或显示在':verbose set'中的命令,有什么想法? – Magpie 2015-06-25 12:25:36

2

万一有人遇到这个问题,就像我意识到的那样。由于sudo未读取vimrc,请尝试使用sudo -E。它保留你的命令环境,并且$HOME将指向你自己的家庭目录。请注意,在/homerootsquash一起安装的环境中可能无法正常工作。

4

使用文件/etc/vim/vimrc.local在Ubuntu

对我的Debian与VIM73
1

后试图与.vimrc里做方案:

我运行一个搜索

find/-name vimrc

并找到。 /etc/vim/vimrc

打开它,明白将覆盖ANI其他设置

只是取消注释"一些有用的设置,你想

9

我有这个问题,只是增加了以下的文件~/.bash_profile

alias vim="vim -S ~/.vimrc" 
+1

真正的问题是为什么你有这个问题(和我一样) – nowox 2017-10-01 09:37:50

+0

这可能会发生,如果你真的使用neovim但有别名vim – 2017-10-28 21:06:18

1

如果有人在使用neovim时发生此问题,您应该知道(在开始脱发之前)该.vimrc fi le从~/.config/nvim/init.vim加载。

mkdir -p ~/.config/nvim; ln -s ~/.vimrc ~/.config/nvim/init.vim