在使用vim的时候我们可以输入:set nu 显示行号,但每次都输一遍操作就显得冗余。将这段命令写入vimrc就可以避免重复操作。
在linux环境下,配置文件一般都叫*rc,rc是 run command 的首字母简写。vimrc一个在/etc/vimrc(系统的vim配置文件)。还有一个是~/.vimrc(用户的vim配置文件,也是我们要修改的文件),刚装上vim的时候是没有这个文件的,我们创建一个就行了。
只需要 vim ~/.vimrc 再将以下内容复制粘贴就可以啦。
"行注释
"括号,引号自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
"采用vim自己的命令,不与vi兼容:
set nocompatible
"不创建备份文件:
set nobackup
"使能语法高亮,自动识别代码,用不同颜色显示:
syntax on
"使用编码格式 utf-8 :
set encoding=utf-8
"区分大小写:
set infercase
"不许文件自动折叠:
set nofoldenable
"换行显示时不把一个单词拆开,遇到指定的符号(比如空格,连词号和其他标点符号)才换行:
set linebreak
"在左侧显示行号:
set number
"显示光标当前行
set cursorline
"在状态栏显示光标当前位置,哪一行哪一列:
set ruler
"高亮显示搜索的匹配结果,输入结束时才显示:
set hlsearch
"高亮显示搜索的匹配过程,每输入一个字符,就自动跳到第一个匹配的结果:
set incsearch
"遇到括号(小括号,中括号,大括号)时,自动高亮匹配的括号:
set showmatch
"命令模式下,显示输入的命令:
set showcmd
"自动缩进,按下回车键后,下一行会自动跟上一行的缩进保持一致:
set autoindent
"智能缩进
set smartindent
"复制粘贴时保留原有的缩进
set copyindent
"自动缩进的空格数
set shiftwidth=4
"按下 tab 键时的空格数
set tabstop=4
"按下 tab 键时自动转为空格
set expandtab
"tab 转换为多少个空格
set softtabstop=4
"将tab键和多余的空格显示出来
set list
set listchars=tab:>>,trail:.
"在命令模式下,按下 tab 键可以自动补全命令
set wildmenu
set wildmode=longest,list,full
"Insert模式下,使退格键可以删掉任何东西
set backspace=indent,eol,start
"即使发生换行时,也逐行移动
map j gj
map k gk
"重新打开文件时,跳到上次的位置
au BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
"自动切换到当前文件的目录
set autochdir
"记录历史命令的条数
set history=1000
"撤销的次数
set undolevels=1000
"发生错误时,视觉提示,通常是屏幕闪烁:
set visualbell
"支持使用鼠标
set mouse=a
这里有一个小技巧,当光标在一个括号处时,按下%键即可跳转到与其对应的括号处。如果是在可视模式下就可以选中括号里的内容:)