这里无意展开Vim vs Emacs之类的工具优越感的论战,我个人也不认为Vim是最好的、万能的编辑器,但是由于早年开始接触Linux的时候,一些前辈、老师都是使用Vi/Vim,所以我也只能学习它,然后我便一直在使用它。
个人认为Vim真正让人无法割舍的原因是它既可以十分简单、又可以及其复杂,完全看使用的人如何选择,我个人是偏向简单、够用就好的。这篇文章可能会不断更新,当我需要的时候才会增加/改动Vim的配置,我只会把Vim当作比较灵活的、带语法着色的纯文本编辑器,不会把它当作全能的集成开发环境(IDE)。
语法着色主题
Vim内置本来就有很多套主题,但是这些主题都略显土。TextMate是Mac OSX的一款十分出色、知名的文本编辑器,它内置的monokai主题我是十分喜欢的。而在Vim下面,有一款叫molokai的主题,就是monokai的翻版,于是便安装这款主题(安装过程也适用于其他主题):
#!/bin/bash
# 创建并进入这个colors目录
mkdir -p ~/.vim/colors
cd ~/.vim/colors
# 下载主题
wget -O molokai.vim http://www.vim.org/scripts/download_script.php?src_id=9750
然后在Vim里面使用:colorscheme molokai
命令就可以显示该主题。由于molokai使用了256色的着色,所以在一些Shell终端上可能会无法正常显示,因为Linux Shell终端大多默认使用16色,你可以通过set t_Co=256
命令强制Vim使用256色。
~/.vimrc配置
~/.vimrc
配置文件在一开始可能不存在,没有便创建一个。我的这份配置文件内容如下:
" file: ~/.vimrc "
" 关闭与Vi的兼容模式 "
set nocompatible
" 开启语法着色 "
syntax on
" 选择molokai主题 "
colorscheme molokai
" 强制256色 "
set t_Co=256
" 高亮显示当前行 "
set cursorline
" 高亮显示正在查找的内容 "
set hlsearch
" 显示括号匹配 "
set showmatch
" 显示Vim下方的状态栏,可以显示光标目前所在的行与列 "
set ruler
" 在插入模式下,按F2进入粘贴模式,这样要粘贴的内容就不会受智能缩进、tab转换影响排版 "
set pastetoggle=<F2>
" 文件已有的tab字符显示为8个空格的宽度 "
set tabstop=8
" 输入tab字符时扩展为空格 "
set expandtab
" 扩展为4个空格 "
set shiftwidth=4
" 在一行文本的中间或结尾处,输入tab字符时,按4个字符为一列进行补齐空格 "
set softtabstop=4
" 在一行的开头输入tab字符时,使用shiftwidth指定的空格数目作为替代,按入退格键时,按softtabstop的配置删除空格 "
set smarttab
" 新建一行时,自动按前一行进行缩进 "
set autoindent
" 按类似C语言的语法在括号后的新的一行添加一个额外的缩进。可以选择cindent替代这个配置,它对内容的语法更严格 "
" *注意:按照Vim的官方说明,如果你有根据文件选择缩进方式的配置,请不要开启smartindent或cindent "
set smartindent
" 显示tab、空格等空白字符 "
set list
" 将tab字符显示为【_...】,将一行末尾的空白字符显示为【....】 "
set listchars=tab:_.,trail:.
Vim的set命令其实是可以通过空格隔开同时设置多个配置的,例如:set number ruler
,这里为了方便阅读便一个配置一行单独写出来。
另外有人喜欢让Vim显示行号:set number
,但其实在使用SSH客户端时、有时为了方便还是会使用鼠标选取内容,如果默认显示行号就会不方便、连上行号也当成内容复制了。所以我会选择:set ruler
显示标尺而不选择显示行号。
…待续 To Be Continued
打赏作者由 bruce 于 2017-08-27 3:40 更新
推荐一个网站,可以“所见即所得”地编辑Vim主题,并且提供下载:http://bytefluent.com/vivify/。
十分有趣。喜欢折腾Vim语法着色主题的人应该会十分喜欢。