Vim 好好玩
"GUI字体为“文泉驿等宽微米黑”,10号(NOI Linux没有gVim) "如果没有的话请 apt install fonts-wqy-microhei set guifont=WenQuanYi\ Micro\ Hei\ Mono\ 10 "以下的一段中在NOI Linux中自带,不需要写 set backspace=2 "退格键可以删除字符、缩进和换行 set showmatch "高亮显示配对的括号 set ruler "在右下角显示当前光标位置 syntax on "开启语法高亮 "设置界面的使用 set mouse=a "在任何模式下使用鼠标 set ts=4 "一个Tab为4个空格宽 set sw=4 "代码缩进一级4个空格宽 set autoindent "自动维持上一行的缩进高度 set cindent "设置为C/C++语言缩进模式 set smartindent "分析上下文的智能缩进 set nu "显示行号 "打出左括号时自动补上右括号 inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap " ""<ESC>i inoremap ' ''<ESC>i "自己的惯用快捷键 imap <C-h> <Left> imap <C-j> <Down> imap <C-k> <Up> imap <C-l> <Right> imap <C-q> <ESC> imap <C-p> <ESC>$o "瞄一眼当前行上有没有for,如果没有则到行的最后边放下分号 function ProcessSemicolon() let l=getline(".") if match(l,"for")!=-1 execute "normal! a;" else execute "normal! $a;" endif endfunction "按下分号的时候执行上面那个函数 imap ; <ESC>:call ProcessSemicolon()<CR>a "瞄一眼当前行上有没有[]、[&]等字符串,如果没有则到行的最后边放下一对带换行的大括号 "function ProcessOpeningCurlyBrace() "let l=getline(".") "if match(l,"[]")!=-1 || match(l,"[&]")!=-1 " execute "normal! a{\<CR>}\<ESC>" "else " execute "normal! $a{\<CR>}\<ESC>" "endif "endfunction "按下左大括号时执行上面那个函数 "imap { <ESC>:call ProcessOpeningCurlyBrace()<CR>O "或者你可以直接无条件地把大括号放到行最后 inoremap { <ESC>$a{<CR>}<ESC>O