不使用vimrc启动vim / 在打开文件的情况下更改vimrc

14

我有两个 .vimrc 配置文件,分别为 ~/.vimrc~/.vimsqlrc

是否有一种方法可以在我已经打开了一些文件的情况下,加载其中一个配置文件(从一个切换到另一个)? 作为扩展,如何关闭 vimrc 的加载(即不使用任何 vimrc),同时保持文件已打开状态?


1
“:source filename” 不起作用吗? - Adrian
vimrc在Vim加载时源代码一次。除非你手动引用它,否则它不会再次被引用。(所以我认为你的问题的答案是无法实现) - FDinoff
@Adrian 不,不是。 - Anshul Goyal
2
@ansh0l 可能是 :h initilization:h vimrc。这两个 vimrc 之间有什么区别?看起来你可以使用每个文件类型的设置。 - FDinoff
@FDinoff 没什么 - 一些 IMAP 变体以及选项卡和缩进设置。 - Anshul Goyal
显示剩余2条评论
1个回答

40

你的 ~/.vimrc 文件只会被读取和执行一次。如果你想用另一个文件覆盖它,你需要改变每个选项的值和映射的取消,在两个文件中都要这样做。这听起来像是一个非常糟糕且不必要复杂的想法。

如果你想要另一个环境,只需使用另一个环境:

$ vim                 <-- starts Vim normally, reading ~/.vimrc
$ vim -u ~/.vimsqlrc  <-- starts Vim using your alternative vimrc
$ vim -u NONE         <-- starts Vim without any vimrc
$ vim -u NORC         <-- starts Vim without any vimrc, but with plugins

但是我恐怕你必须停止并重新启动Vim才能完成。

无论如何,你的问题有一个非常明显的XY问题。你想为*.sql文件设置特定的设置吗?

如果是这样,你可以像这样将你的设置放在~/.vim/after/ftplugin/sql.vim中:

setlocal autoindent
nnoremap <buffer> <F6> :echo "F6"<CR>

使用 setlocal 设置选项并使用 <buffer> 设置映射,可以确保您的设置仅适用于 *.sql 文件。


用他最后的评论来看,这正是他想要的。 - FDinoff
@FDinoff,是的,当我看着评论计数增加时,我也是这样想的。 - romainl
@romainl 不完全是 *.sql 文件。比如我有一个文件,里面到处都是 SQL 语句。 现在,每当我想编辑这样的文件时,即使我只是想随便调整一下打开文件后的 SQL,也会应用默认的 vimrc 设置。 - Anshul Goyal
1
另一个选项是在您的vimrc中放置特定的SQL设置,如:autocmd Filetype sql (do something)。特别是如果您只想更改一些SQL文件的设置,我比创建新文件更喜欢这个选项。 - Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接