用户唯一的.vimrc文件,用于root用户的服务器


4

我在办公室里陷入了一场IDE战争,那里有多个用户在我们的服务器上拥有root访问权限,并喜欢用自己的方式使用VIM。不幸的是,我们已将服务器锁定到足够的位置,如果您想要执行任何操作,则需要具有root访问权限。显然(虽然这显然不受欢迎),我们厌倦了在输入的每个命令之前键入sudo,这将要求我们不断地输入我们一遍又一遍强制要求的复杂密码,所以我们自然都会执行sudo su -登录时的命令以避免所有这些。

当然,当谈到VIM和自定义.vimrc文件时,我们经常踩到别人的自定义.vimrc文件,我们在这些文件中有一些重击功能,用户可能会覆盖我们不知道的功能更不用说有耐心去学习了。

当作为linux上的root用户时,有没有办法让我们所有人仍然维护我们的.vimrc文件而不必每次有人想要使用VIM时反复覆盖该文件?理想情况下,我们有许多虚拟机都安装了VIM,因此所有服务器上的通用解决方案都是最好的,我们确实在/ home / username下的服务器上安装了Microsoft Windows用户特定的主目录。

有什么建议适应这个?

Answers:


2

我可以想到3个选项。第一个可能是最简单的。

  1. 像下面的Man Entry一样调用vim vim -u /path/to/custom/.conifg fileToEdit

    -u {vimrc}  Use  the commands in the file {vimrc} for initializations. 
    

    所有其他初始化都被跳过。用它来编辑一种特殊的文件。它还可以通过给出名称“NONE”来跳过所有初始化。有关更多详细信息,请参阅vim中的“:help initialization”。

      -U {gvimrc} Use the commands in the file {gvimrc} for GUI
    

    初始化。将跳过所有其他GUI初始化。它还可以通过给出名称“NONE”来跳过所有GUI初始化。有关更多详细信息,请参阅vim中的“:help gui-init”。

  2. sudo -i由@knittl指定https://stackoverflow.com/questions/6471592/user-unique-vimrc-file-for-servers-as-root-user/6471766#6471766

  3. 最后,https: //stackoverflow.com/questions/1031396/how-to-share-one-vimrc-file-among-multiple-clients/1031624#1031624 建议保留一组个人配置文件git或其他版本控制系统。因此,每个用户都可以在登录时查看他们需要的内容。此外,您可以保留更改的历史记录。版本控制永远不是一个坏主意。

谢谢,sudo -i以及一些狡猾的bash脚本和svn做到了!
斯科特

5

用于sudo -i在仍加载当前用户环境的情况下访问root shell。

man sudo

-i(模拟初始登录)选项运行在运行命令的用户的passwd(5)条目中指定的shell。给shell的命令名参数以 - 开头 - 告诉shell作为登录shell运行。在运行shell之前,sudo尝试更改为该用户的主目录。它还初始化环境,保持TERM不变,设置HOME,SHELL,USER,LOGNAME和PATH,以及取消设置所有其他环境变量。请注意,因为要在解析sudoers文件之前确定要使用的shell,所以sudoers中的runas_default设置将指定用户运行shell,但不会影响实际运行的shell。


sudo -i ...提供+1 比维基百科链接到sudo要好得多。
matchew 2011年

2
如果问题是“多个用户如何以root身份运行vim并仍然使用他们独特的vimrc”,那么这个答案就是错误的。
sciurus

对不起,不小心贴出来了。'sudo -i'几乎完全等同于'su - '。它重置当前用户环境。在引用的联机帮助页的部分中,它明确指出'sudo -i'设置HOME,因此vim将读取/root/.vimrc。
sciurus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.