【问题标题】:VIM: Overwriting system vimrcVIM:覆盖系统 vimrc
【发布时间】:2012-12-07 02:34:28
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: vim overwrite


    【解决方案1】:

    不是直接针对您的问题,但您始终可以使用 -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。我可以查看输出,任何按键都会将我带回缓冲区。

    【讨论】:

    • 不知道mac,但是在linux中~/.vimrc也是默认加载的。
    • mac 的行为是相同的(~ 通常在 linux 中为 /home,但在 mac 中为 /Users)。我刚刚编辑了我的答案以使其更清楚,希望如此。
    • 该链接真的很有帮助,将帮助我满足我未来的需求,现在我需要最简单的解决方案,但你的帖子让我了解了当事情变得更复杂时。毕竟我还是个菜鸟。谢谢!
    【解决方案2】:

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

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

    如果你想在不同的机器上同步你的 .vimrc,你可以把你的 .vimrc 文件放进去

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

    • 保管箱

      我希望这会有所帮助。

    【讨论】:

    • 覆盖原来的 .vimrc 每次我必须这样做都会花费很多时间。
    【解决方案3】:

    您的更改怎么可能在您退出后没有保存?这样的机器有什么意义?机场的上网亭?您是否以没有“主”目录的用户身份登录?

    如果您有一个“主”目录,只需创建一个空白~/.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

    【讨论】:

    • 这些机器在我的大学里,重点是为每个人提供完全的权利,但你知道这些机器必须以某种方式生存,对吧?
    • @lekroif,如果您无法将任何内容写入磁盘,您会在这些机器上做什么工作?你有一个“家”文件夹吗?
    • 您拥有个人计算机所需的一切。唯一的问题是它在您注销后没有保存。我会告诉你它是如何在 Windows 上完成的,因为我昨天必须在它们上运行更新并且我被介绍了该技术。使用了一个名为 DeepFreeze 的程序。它为您提供管理员权限,并将您所做的所有更改存储在虚拟空间中。重新启动后,此虚拟空间被擦除,操作系统是全新的。在 mac 上它必须是类似的东西,但我不知道确切的软件。
    • 这很糟糕。但我想从 IT 的角度来看这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2015-12-15
    • 1970-01-01
    相关资源
    最近更新 更多