考试用 C++ IDE 向的 Vim 启动设置文件(~/.vimrc)

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注