2012-12-19 109 views
2

我使用多个MAC OS X系统,它们在注销后不保存更改。正如你所知道的VIM在每一个新的mac上,只需在终端输入vim即可。我总是带着我的vimrc文件,问题是我每次启动vim都必须使用:so命令加载它。VIM:覆盖系统vimrc

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

我想保持与终端的集成,并只开发一个超级快速的方式介绍我的变化vim。想想就好像你坐在新安装的操作系统上一样。

谢谢!

回答

2

如何在退出后不保存更改?这种机器的意义何在?在机场的互联网亭?你是否以没有“主目录”的用户身份登录?

如果你有一个“家”目录,只需创建一个空白~/.vimrc并把你的设置。

如果你没有一个“家”的目录,但您可以通过心脏写别的地方,创建一个空白vimrc文件,你可以有写你的设置和学习这个命令:

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

如果你没有“家”目录,你确实确定你不能在这些机器上保存任何东西,把你的设置放在一个文件的某个地方,最好是在你控制的地方,并学习这个命令心脏:

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

如果你很幸运,你使用的命令将会被你的shell记住,并且很容易再次发布它,而不需要太多的输入。

对于运行你的测试,您可以:

  • 命中<C-z>来挂起Vim。你从Vim开始的地方回来,你可以做你的事情。输入$ fg回到Vim。

  • 类型:sh从当前目录启动一个新的shell。要返回到Vim,请键入$ exit

+0

这些机器在我的大学,关键是要为所有人提供完整的权利,但是你知道机器必须以某种方式生存,对吗? – lekroif

+0

@lekroif,那么如果你不能在磁盘上写任何东西,你在这些机器上做了什么样的工作?你有一个“家”文件夹? – romainl

+0

你有你需要你的个人电脑有的一切。唯一的问题是它在注销后没有保存。我会告诉你它是如何在Windows上完成的,因为我昨天必须在它们上运行更新,并且我介绍了这种技术。 使用名为DeepFreeze的程序。它为您提供管理员权限,并存储您在虚拟空间中完成的所有更改。重新启动后,此虚拟空间被擦除,操作系统全新推出。在Mac上它必须是类似的东西,但我不知道确切的软件。 – lekroif

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 。我可以查看输出,任何按键都会将我带回我的缓冲区。

+0

不知道mac,但在linux下'〜/ .vimrc'也默认加载。 – Shahbaz

+0

mac的行为是一样的('〜'一般在linux的'/ home'中,但是mac上的'/ Users')。我只是编辑了我的答案,希望更清楚。 –

+0

该链接真的很有用,并且可以帮助我满足未来的需求,因为现在我需要最简单的解决方案,但是您的文章能够让我深入了解情况何时会变得更加精细。毕竟我仍然是一个完全noob。谢谢! – lekroif

3

我对Mac-Os终端没有任何经验。不过,我认为如果你可以将你的.vimrc文件复制到你的主目录。每次启动vim时,vim都会从你的主目录加载.vimrc文件。

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

如果要同步在不同的机器你的.vimrc里,你可以把你的。在

  • vimrc文件一样github上,到位桶...(我perfer这个选项,因为你可以有不同的设置,不同的分支)

  • 投寄箱SCM仓库

    我希望这有助于。

+0

覆盖原始的.vimrc将需要大量的时间,每次我必须这样做。 – lekroif