我使用的是windows ubuntu子系统,不同的系统可能有些键位无法使用,alt相关的我就是重新设置,我的ctrl tab无法切换buffer,难受>_<
以下是键位说明,适用模式中n为正常模式,v为可视模式,i为插入模式,c为命令行模式
常规键位
键位 | 功能 | 适用模式 | 备注 |
---|---|---|---|
ctrl a | 全选 | n | |
ctrl c | 复制 | v | |
ctrl v | 粘贴 | i | |
ctrl z | 撤销 | n,i | |
ctrl y | 重做 | n,i | |
ctrl g | 跳行 | n,i,v | |
ctrl s | 保存 | n.i.c.v | 需要将stty -ixon加入~/.bashrc |
ctrl q | 关闭当前文件 | n,i,v | 需要将stty -ixon加入~/.bashrc |
ctrl j | 光标下移 | i | |
ctrl k | 光标上移 | i | |
ctrl h | 光标左移 | i | |
ctrl l | 光标右移 | i | |
ctrl r | 返回正常模式 | n,i,v | |
shift up | 进入块可视模式 | n,i,v | |
shift down | 进入块可视模式 | n,i,v | |
shift left | 进入块可视模式 | n,i,v | |
shift right | 进入块可视模式 | n,i,v | |
F5 | 代码注释 | v | #号注释 |
F6 | 取消注释 | v | 从行头开始选中,行数不要多选、、 |
插件键位(插件列空白为同上)
键位 | 功能 | 适用模式 | 插件 | 备注 |
---|---|---|---|---|
F2 | 定位到下一个错误/结果 | all | quickfix | |
F3 | 定位到上一个错误/结果 | all | ||
F10 | 打开quickfix | all | 关闭得手动:cclose | |
F11 | 打开文件列表 | all | The-NERD-tree | 需要设置窗口 |
F12 | 打开函数列表 | all | taglist | 需要设置窗口 |
F8 | 高亮 | n,i | Mark | |
F9 | 取消高亮 | n,i | ||
alt s | 查找指定标识符的使用位置 | n | cscope | |
alt g | 查找指定标识符的定义位置 | n | ||
alt c | 查找该函数被调用的位置 | n | ||
alt t | 查找指定的文本字符串 | n | ||
alt e | 查找指定的正规表达式 | n | ||
alt f | 查找指定的文件 | n | ||
alt i | 查找该文件在哪些地方被包含 | n | ||
alt t | 查找该函数调用了哪些函数 | n | ||
[b | 切换到上一个buffer | n | vim自带插件 | |
]b | 切换到下一个buffer | n | ||
\ 1~9 | 切换到1~9buffer | n,i,v |
配置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <leader>w :w!<cr>
nmap <leader>f :fnind<cr>
"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O<TAB>
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
":inoremap " ""<ESC>i
":inoremap ' ''<ESC>i
"全选
nmap <c-a> ggVG
" 复制
vmap <c-c> Y
"撤销
nmap <c-z> <undo>
imap <c-z> <esc><undo>i
"vmap <c-z> <esc><undo>
"重做
imap <c-y> <esc>:redo<CR>i
nmap <c-y> :redo<CR>
"粘贴
imap <c-v> <esc>pi
imap <C-s> <esc>:w<CR>
nmap <C-s> <esc>:w<CR>
cmap <C-s> <esc>:w<CR>
vmap <C-s> <esc>:w<CR>
map <c-q> <esc>:q<cr>
nmap <c-g> :
imap <c-g> <esc>:
vmap <c-g> <esc>:
"esc映射成ctrl r
imap <c-r> <esc>
vmap <c-r> <esc>
nmap <c-r> <esc>
imap <C-j> <Up>
imap <C-k> <Down>
imap <C-h> <Left>
imap <C-l> <Right>
imap <s-up> <esc><c-v>
imap <s-down> <esc><c-v>
imap <s-left> <esc><c-v>
imap <s-right> <esc><c-v>
nmap <s-up> <esc><c-v>
nmap <s-down> <esc><c-v>
nmap <s-left> <esc><c-v>
nmap <s-right> <esc><c-v>
vmap <s-up> <c-v>
vmap <s-down> <c-v>
vmap <s-left> <c-v>
vmap <s-right> <c-v>
vmap <F5> <c-v><home>I#<esc>
vmap <F6> <c-v><home><del>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 插件键盘映射
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map <F2> :cn<CR>
map <F3> :cp<CR>
map <F10> :copen<CR>
map <F11> :NERDTreeToggle<CR>
map <F12> :TlistToggle<CR>
"高亮"
nmap <F8> <leader>m
imap <F8> <esc><leader>ma
nmap <F9> <leader>n
imap <F9> <esc><leader>na
" 映射切换buffer的键位
nnoremap [b :bp<CR>
nnoremap ]b :bn<CR>
nmap <c-tab> ]b
" 映射<leader>num到num buffer
map <leader>1 :b 1<CR>
map <leader>2 :b 2<CR>
map <leader>3 :b 3<CR>
map <leader>4 :b 4<CR>
map <leader>5 :b 5<CR>
map <leader>6 :b 6<CR>
map <leader>7 :b 7<CR>
map <leader>8 :b 8<CR>
map <leader>9 :b 9<CR>
"cspose快捷键设置
execute "set <m-s>=\es"
execute "set <m-g>=\eg"
execute "set <m-c>=\ec"
execute "set <m-t>=\et"
execute "set <m-e>=\ee"
execute "set <m-f>=\ef"
execute "set <m-i>=\ei"
execute "set <m-d>=\ed"
nmap <m-s> :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <m-g> :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <m-c> :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <m-t> :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <m-e> :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <m-f> :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <m-i> :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap <m-d> :cs find d <C-R>=expand("<cword>")<CR><CR>