VIM:覆盖系统vimrc

时间:2012-12-19 17:07:38

标签: vim overwrite

我在多个MAC OS X系统上工作,这些系统在注销后不保存更改。如您所知,VIM在每个新Mac上,只需在终端输入vim即可。我总是随身携带我的vimrc文件,问题是我每次启动vim时都必须使用:so命令加载它。

我想使用vim在每个unix上都可用的事实,但我也想利用与终端的漂亮集成进行快速测试,我只需切换回终端,但为此我需要关闭vim。当我重新打开它时,我再次必须加载vimrc。我是一个新手,我甚至没有插件......

我希望保持与终端的集成,并且只开发一种将我的更改引入vim的超快速方法。将这些条件想象为您正坐在新安装的操作系统上。

谢谢!

3 个答案:

答案 0 :(得分:4)

不直接针对您的问题,但您始终可以使用-u调用vim,这将允许您指定vimrc文件,而不是启动vim然后运行:so

.vimrc文件的默认位置为~/.vimrc(在Mac上,~/Users/_you_,例如/Users/matt)。如果你可以在那里写文件,那么每次vim启动时都会加载它。

mac上的系统vimrc文件位于/usr/share/vim/vimrc,但听起来这些系统不受您的控制,因此您无法编写该文件。看一下:How can I override ~/.vim and ~/.vimrc paths (but no others) in vim?,它使用-u选项来更改vim查找插件的路径。但是,在所有情况下,您必须能够将.vimrc写入您的主目录(这听起来像您的系统不允许)或在运行时指定它的路径(与命令行选项一样)我在上面提到,或者使用您当前正在使用的普通命令:so

根据您需要进行的测试类型,您始终可以在vim中运行shell命令,方法是在正常模式下使用!。例如,我经常对缓冲区中的python文件进行更改,然后(在正常模式下)在vim中运行!nosetests - 将终端输出写入底部的临时缓冲区,并且不需要我离开或暂停vim。我可以查看输出,任何按键都会将我带回我的缓冲区。

答案 1 :(得分:3)

我对Mac-Os终端没有任何经验。但是我想如果你能将你的.vimrc文件转到你的主目录。每次启动vim时,vim都会从你的主目录加载.vimrc文件。

如果你想从vim回到终端做一些测试/执行一些命令然后回到vim。你可以考虑:

  • 打开多个终端窗口
  • 尝试像screen或tmux这样的东西。 personaly我正在使用tmux,它非常好。
  • 尝试Conque Shell插件:http://www.vim.org/scripts/script.php?script_id=2771我也安装了这个插件。
  • 在vim中键入Ctrl-z以返回终端

如果要在不同的计算机上同步.vimrc,可以将.vimrc文件放在

  • 像gitHub,bitbucket这样的scm存储库...(我更喜欢这个选项,因为你可以为不同的设置设置不同的分支)

  • dropbox

    我希望这会有所帮助。

答案 2 :(得分:2)

注销后如何保存更改?这样一台机器有什么意义?机场的上网亭?您是否以没有“主页”目录的用户身份登录?

如果您有“主页”目录,只需创建一个空白~/.vimrc并将设置放在那里。

如果你没有“home”目录,但是你可以在其他地方写,请在那里创建一个空白的vimrc文件,在那里写下你的设置,并按心学习这个命令:

$ vim -u /path/to/your/vimrc

如果您没有“主页”目录并且确实确定无法在这些计算机上保存任何内容,请将您的设置放在某个位置的文件中,最好是在你的控制,并通过心脏学习这个命令:

$ vim -u http://domain.name/yourvimrc

如果你很幸运,你的shell会为你记住你使用的命令,而且很容易再次发出它而不需要打字。

要运行测试,您可以:

  • 点击<C-z>暂停Vim。你回到了Vim开始的提示,你可以做你的事。输入$ fg返回Vim。

  • 键入:sh以从当前目录启动新shell。要返回Vim,请输入$ exit