有关sysadmins .vimrc中条目的建议


21

至少我总是在/ etc / vim / vimrc中取消注释“ syntax on”


请注意,如果您经常编辑大文件,则始终启用语法可能不是一个主意。在大型文件(数十个或数百MB)上,语法高亮显示可能导致vim在几秒钟内变得不负责任,因为它占用了大量CPU。只需尝试编辑一个巨大的XML文件...当然,您总是可以:syn off(一旦vim恢复了...)。
sleske

Answers:


4

我们的CTO 在GitHub上具有漂亮的功能Vim配置

强调:

  • 语法高亮显示,2个空格制表符,扩展的制表符。
  • NERDtree,类似于TextMate项目抽屉的文件树视图。
  • FuzzyFileFinder,用于执行TextMate的cmd-T功能的插件。
  • 许多颜色主题,默认情况下(黄昏)。

我发现它非常适合Ruby编码,因为我们的系统管理工具是用Ruby编写的。


我刚刚玩过很多这样的游戏,您列出的vim配置还有很多要研究的内容,但它符合我对合理默认值和有用功能的期望。不知道社区Wiki如何让我投票为“已回答”,但可以接受。谢谢!
加雷斯

17

首先,如果你有超过你一起工作的一对夫妇的机器,可以考虑把你的~/.vim/~/.vimrc和其他有用的配置文件(screen在一个版本控制系统,您的外壳等)。我更喜欢使用darcs-它在Debian系统上很便宜(无需安装Haskell编译器,只需直接安装软件包),分布式且具有出色的交互模式。如果您知道/喜欢git,也可以坚持。

我当前的配置文件可在darcs存储库中找到http://repo.harnir.net/。以下是一些具体示例~/.vimrc。抱歉,没有脚本等的链接,因为我是新用户,但您可以在上找到所有这些链接http://vim.org/

系统管理员必备的ViM脚本

  • 编辑远程文件时,必须具有备份脚本。我使用cbackup.vim脚本,该脚本将每个已编辑文件的最后10个副本保留在中央目录中,并自动删除旧文件-只需将其放在~/.vim/plugins/目录中就可以了:-)

  • 通过TaskList,您可以快速搜索FIXMEXXXTODO当前文件中的标签,显示它们并仅需按一下键即可转到标签。如果您使用这些标签,请考虑安装此标签

  • dbext对于所有DBA都是必不可少的,对于使用数据库的程序员也非常有用。让我们运行查询,检查数据库结构等等。它本质上是对于像工具前端mysqlsqlite3sqlplus和其他人。如果您使用数据库,那是必须的!

语法文件

我没有在野外看到许多有用的语法,sysadmins使用的大多数文件都包含在配置文件中/etc,并且通常会突出显示它们。在我的书中,~/.vim/syntax/我目前有CSS颜色的语法,这很棒(对Web开发人员也很不错),但是其余的文字写得不太好,我也许会在业余时间更新它们。值得拥有的其他语法文件包括:dhcpd.conf,/ etc / network / interfacesnginx配置文件和SpamAssassin的local.cf。

有用的语法提示:如果无法识别配置文件(名称很奇怪,如/etc/apache2/sites-enabled/some.domain.com,则可以在其名称后附加正确的扩展名(在这种情况下.conf),也可以在其末尾添加ViM modeline:

#vim:filetype = apache

ViM配置选项

大多数配置选项都很受欢迎,例如set nocompatible ruler等等。拥有的非常好的选项是:

  • set gdefault:反转g模式s///g- /g默认情况下将使用该选项,因此您无需每次都添加它-只需添加即可将其关闭

  • set incsearch ignorecase smartcase hlsearch:对于搜索文件必不可少-增量,实时显示匹配项,搜索会忽略大小写,除非您使用大写字母

  • set pastetoggle=<F6>:或您喜欢的其他键,在pastenopaste模式之间切换,如果您从诸如ServerFault之类的网页中复制粘贴内容,则必须这样做:-)

  • set noerrorbells visualbell t_vb=:每次做某事时都摆脱烦人的铃声或视觉铃声;)

功能,键盘映射

  • 将您的用户名和当前日期粘贴到文件中,如果您在团队中工作,并在文件中添加有关谁何时更改了内容的注释,则很有用。只需写xxsig并按空格,它将更改为harnir 20090531。为了使此命令可以与root一起正常使用(即,输入您的用户名而不是root),您需要使用登录sudo

    iabbrev xxsig <Esc>:r![-n“ $ SUDO_USER”] && echo“ $ SUDO_USER`date'+ \%Y \%m \%d'`”“ \ | \ | echo“ $ USER`date'+ \%Y \%m \%d'`” <CR> I <BS> <Esc> A
    
  • 插入注释“行”,例如# -- Some title -------------------{{{1,长度为78个字符- \com#在普通模式下按即可。您将自动进入“替换”模式,因此可以添加标题:

    nmap \ com#O#<Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <Home> 4 <Right> R <Space>
    

您可以轻松地修改它为其他评论系统("//,等),或只检查我的配置文件。

结束触摸

如果您的配置文件位于RCS系统中,则有时可能需要包括特定于特定计算机的配置选项。为此,最好~/.vimrc.local在配置末尾自动包含文件(如果有的话)。

如果文件可读(expand(“〜/ .vimrc.local”))
        源〜/ .vimrc.local
万一

最后一个技巧(虽然可能很好)在具有NFS挂载的主目录时不起作用:无论您使用的是哪台计算机,您的主目录都将相同。还要注意,该技巧取决于“〜”的定义-有些shell不支持该速记。

作为系统管理员,您可能以“ root”帐户在服务器上工作,该帐户应该是本地帐户,而不是通过NFS挂载的。在这种情况下,/root/.vimrc.local应该可以正常工作。
drybjed

6

不太确定这部分内容与sysadmin具体相关,但我的基本要领是:

syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
  filetype plugin indent on
endif
set showcmd             " Show (partial) command in status line.
set showmatch           " Show matching brackets.
set ignorecase          " Do case insensitive matching
set smartcase           " Do smart case matching
set incsearch           " Incremental search

我还始终确保机器可以访问nginx语法突出显示文件


我只是这样说,以分隔可能与.vimrc相关的特定“编程”内容,我应该改变这个问题吗?
加雷斯

不,不说了,我敢肯定有些人拥有与sysadmin相关的东西,不是我。
亚当·吉本斯

通常对此表示同意。但是制表符为8个空格。其他方面,它在vim中的表现与在less / tail / cat中的表现不同。虽然可能是那些宗教的事情之一。
Alexandre Carmel-Veilleux 09年

4

如果您通常是在用户处工作,则可以将文件“管道”到sudo,以便将其保存。

cmap w!! %!sudo tee > /dev/null %

使用命令:

:w!!

调用sudo并保存文件。


有趣。为什么用tee代替cat
David Schmitt,2009年

1
因为cat不会将任何内容写入文件;它只是写到标准输出。
克里斯·杰斯特·杨

cat->%效果一样好。
欧莱


2

无耻的插头。这实际上不是.vimrc更改,而是VIM插件。我在每个已安装的VIM版本上使用RCSVers。基本上,它使用RCS命令保存您编辑的任何文件的版本。您不知道我搞砸了几次配置文件,只是为了让RCSVers通过向我展示所做的更改来保存我。

http://www.vim.org/scripts/script.php?script_id=563


2

不要使用.vimrc来避免学习VIM

既然我知道很多VIM的新手都会读到这篇文章,所以我的最佳建议是:“不要懒惰,不要在.vimrc中放入映射项。”学习在VIM中做事的非标准方式会让您感到当您没有vimrc时,您将获得总的收益。vi的学习曲线很陡峭,但是您选择不学习并不会给自己带来任何好处。


1
Vim具有不错的功能。为什么不使用它?当您必须切换到vi时,这是暂时的。如果您认为必须在未安装vim的地方进行大量工作,那么值得安装它。
Luc M

0

我的答案至少有一部分与我的编程.vimrc相同:

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

如果您要编辑的文件中至少有一部分不在RCS中,则应该存在!:)



0

我经常最终使用strace来跟踪奇怪的问题。结果,尝试对某些行进行语法高亮显示可能会使大型字符串变得荒谬。在这种情况下,我使用set synmaxcol = 2048将语法突出显示限制为2048列。

我也非常喜欢使用旺盛标签的标签列表插件。到目前为止,我已经能够将编译过的ctags二进制文件推到位,并且还没有遇到任何库问题。这使我可以快速浏览所使用的任何代码。这些通常是Perl,Python或C。

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.