vim常用设置
.vimrc文件
我们已经知道vim的配置文件为vimrc文件,而且知道vimrc文件分为系统vimrc文件和用户vimrc文件。在通常情况下,我们不进行系统vimrc文件的修改,而是各个用户针对自己的需求对用户vimrc文件进行配置。
• vimrc文件的路径
打开vim并输入":version"命令,就可以看到关于vimrc的路径设置规则:
▶ Linux系统
▶ Windows系统
• 用户vimrc文件
通常在用户家目录下会有一个默认的vimrc文件,如果不存在则创建一个名为".vimrc"的普通文本文件即可。
vim常用配置
• 缩进设置
set smarttab " 设置tab符长度为4个空格 set tabstop=4 " 设置换行自动缩进长度为4个空格 set shiftwidth=4 " 设置tab符自动转换为空格 set expandtab " 设置智能缩进,其他可选缩进方式:autoindent, cindent, indentexpr set smartindent
• 字体设置
" 在Windows系统中为:set guifont=Courier_New:h12:cANSI set guifont=Courier\ New\ 10
• 显示行号
" 设置显示行号,关闭行号显示命令:set nonumber set number
• 配色方案
" 设置配色方案 colorscheme desert
• 折叠设置
▶ 折叠种类
http://man.lupaworld.com/content/manage/vi/doc/fold.html
manual :手工定义折叠。当退出文件编辑时,手工折叠会被遗弃。如果要保存折叠,则使用:mkview命令;恢复折叠,则使用:loadview命令。创建折叠的方法参见下面的折叠操作。
indent :更多缩进表示更高级别的折叠。当打开文本时,vim将自动根据缩进进行文本折叠。具体使用效果图如下:
expr : 用表达式来定义折叠。这种折叠的规则类似indent折叠,将由表达式计算的值做为折叠级别判定。该折叠方式下,选项foldexpr的值将被计算并作为一行的折叠级别。譬如我们如果想要折叠空行分开的段落,那么我们需要设置选项:
set fdm=expr set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
设置完成之后效果图如下,可以访问上面链接地址进一步了解表达式折叠。
syntax : 用语法高亮来定义折叠。具体使用效果图如下:
diff : 对没有改动的文本或靠近改动的文本自动定义折叠,这个方法仅适用于当前窗口设定diff选项来显示不同之处时才有效。具体使用效果图如下:
marker : 对文中的标志折叠。当使用这种方式折叠时,需要根据特定的文本标记来标识代码折叠,系统默认文本标记是{{{和}}}。当设置为marker方式的折叠,打开文本时,vim将自动根据标记折叠。具体使用效果图如下:
▶ 折叠配置
" 折叠设置
set foldmethod=marker
▶ 折叠操作
• zi : 关闭所有折叠/打开所有折叠。
• zc : 关闭当前打开的折叠。
• zC : 对所在范围内所有嵌套的折叠点进行折叠。
• zo : 打开当前关闭的折叠。
• zO : 对所在范围内所有嵌套的折叠点进行展开。
• zm : 关闭当前折叠。
• zM : 关闭所有折叠。
• zr : 打开当前折叠。
• zR : 打开所有折叠。
• [z : 到当前打开的折叠的开始处。
• ]z : 到当前打开的折叠的末尾处。
• zj : 到下一个折叠的开始处。
• zk : 到前一个折叠的末尾处。
• zd : 删除当前光标下的折叠,仅当foldmethod为manual和marker时有效。
• zD : 对所在范围内所有嵌套的折叠点进行删除,仅当foldmethod为manual和marker时有效。
• zE : 删除所有折叠,仅当foldmethod为manual和marker时有效。
• [n]zfG : 创建从当前行到第n行之间的代码折叠。
• [n]zf[Enter] or [n]zf+ or [n]zf↓ : 创建从当前行开始到后n行之间的代码折叠。
• [n]zf- or [n]zf↑ : 创建从当前行开始到前n行之间的代码折叠。
• zf% : 在括号处创建到对应匹配的括号的折叠。
• 备份文件
" 如果想关闭备份文件,使用:set nobackup set backup set backupext=.bak
• 空白符显示
" 设置显示空白符 set list set listchars=tab:\>\ ,trail:. " 设置行尾空格高亮显示 highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/