至less我总是在/ etc / vim / vimrc中取消注释“syntax on”
我们的CTO 在GitHub上有一个漂亮的Vimconfiguration 。
强调:
我发现Ruby编码很棒,因为我们的系统pipe理工具是用Ruby编写的。
首先,如果你使用的机器不止一台,可以考虑把你的~/.vim/
, ~/.vimrc
和其他有用的configuration文件( screen
,shell等等)放在版本控制系统中。 我更喜欢使用darcs
– 在Debian系统上很便宜(不需要安装Haskell编译器,直接安装包),分布式的,并有很好的交互模式。 如果你知道/喜欢git
,你也可以坚持下去。
我目前的configuration文件可以在我的darcs仓库http://repo.harnir.net/
。 下面是我的~/.vimrc
一些具体示例。 对不起,没有脚本的链接等,因为我是一个新用户,但所有你可以findhttp://vim.org/
。
编辑远程文件时,必须备份脚本。 我使用cbackup.vim脚本,它将每个编辑过的文件的最后10个副本保存在一个中央目录中,并自动删除旧的文件 – 只需放入~/.vim/plugins/
目录,然后忘记它:-)
使用TaskList ,您可以快速search当前文件中的FIXME
, XXX
和TODO
标签,并显示它们,只需一次按键即可进入标签。 如果您使用这些标签,请考虑安装这个标签
dbext对于所有DBA都是必不可less的,对于使用数据库的程序员也是非常有用的。 让我们来运行查询,检查数据库的结构和什么。 它基本上是像mysql
, sqlite3
, sqlplus
等工具的前端。 如果你使用数据库,这是必须的!
我还没有看到很多有用的语法,系统pipe理员使用的大多数文件都是/etc
中的configuration文件,通常都是非常好的突出显示。 在我的~/.vim/syntax/
我目前有CSS颜色的语法,这对于Web开发人员来说也很棒,但是其余的写得不是很好,我可能会在业余时间更新它们。 值得拥有的其他语法文件是: dhcpd.conf ,/ etc / network / interfaces , nginxconfiguration文件和SpamAssassin的local.cf。
语法有用的提示:如果一个configuration文件不被识别(有一个奇怪的名字,像/etc/apache2/sites-enabled/some.domain.com
,你可以追加正确的扩展名到它的名字(在这种情况下.conf
)或者在它的结尾添加ViM模式行:
#vim:filetype = apache
大多数configuration选项是非常stream行的,如set nocompatible ruler
等非常好的select有:
set gdefault
:反转g
模式s///g
– 使用该选项/g
将被默认使用,所以你不需要每次都添加它 – 只需添加它就可以closures它
set incsearch ignorecase smartcase hlsearch
:通过文件search必不可less的 – 增量,实时显示匹配,search忽略情况,除非你使用大写字母
set pastetoggle=<F6>
:或者你喜欢的其他键,在paste
和nopaste
模式之间切换,如果你从一个网页如ServerFault复制粘贴 –
set noerrorbells visualbell t_vb=
: set noerrorbells visualbell t_vb=
摆脱恼人的钟声或视觉响铃;)
将你的用户名和当前date粘贴到一个文件中,如果你在一个团队中工作并在文件中添加关于谁在什么时候改变了某些东西的评论,那么这个文件就很有用。 只要写xxsig
并按空格键,就会变成像harnir 20090531
这样的东西。 为了使这个工作正确的根(即写你的用户名而不是root
),你需要使用sudo
login。
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#
是。 您将自动进入replace模式,以便您可以添加标题:
<Home> 4 <Right> R <Space> <R> <R> <R> <R>
您可以轻松修改其他评论系统( "
, //
等),或者只是检查我的configuration文件。
如果您在RCS系统中拥有您的configuration文件,您可能有时需要包含特定于某台机器的configuration选项。 为此,最好在configuration结束时自动包含~/.vimrc.local
文件(当然,如果存在的话)。
如果filereadable(展开(“〜/ .vimrc.local”)) 源〜/ .vimrc.local 万一
不太清楚这个系统pipe理员的哪一部分是相关的,但我的要点是:
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语法高亮文件 。
如果你通常在一个用户工作,比这可以“pipe”一个文件sudo所以可以保存。
cmap w!! %!sudo tee > /dev/null %
使用命令:
:w!!
启动sudo并保存文件。
你也可以看看这个问题: 什么在你的vimrc ?
无耻的插头。 这不是一个真正的.vimrc更改,而是一个VIM插件。 我在每个已安装版本的VIM上使用RCSVers。 基本上它使用RCS命令来保存你编辑的任何文件的版本。 你不知道有多less次我搞砸了一个configuration文件,让RCSVers通过向我展示我所做的更改来拯救我。
因为我知道很多VIM新手都会读这个,所以我最好的build议是:“不要懒惰,把地图条目放在你的.vimrc中”在VIM中学习非标准的做事方式会让你感觉像当你没有你的vimrc时,一个总的gimp。 vi的学习曲线是陡峭的,但是你select不学习就没有任何好处。
我的答案至less有一部分与我编程的.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>
如果至less有一些您正在编辑的文件不在RCS中,则应该是! 🙂
禁用所有“智能”缩进模式。 伟大的编程,地狱configuration文件。
我经常最终用strace来追查奇怪的问题。 因此,试图用语法突出显示某些行可能会导致大string的荒谬。 在这种情况下,我使用set synmaxcol = 2048将语法突出显示限制为2048列。
我也是使用旺盛标签的taglist插件的粉丝。 到目前为止,我已经能够推动编译的ctags二进制文件,并没有遇到任何库问题。 这很快就允许我在任何与我一起工作的代码之间进行导航。 那些一般是Perl,Python或者C.