撸linux


GVIM设置类似gedit等普通编辑器快捷键的方法:Ctrl+S保存,Ctrl+Z撤销,Ctrl+C复制,Ctrl+V粘贴

用gvim编辑代码需要大量的重复劳动。比如复制、剪切、粘贴、保存、撤销,如果一个一个地输入诸如"+gP这样不规则的几个字符实在是蛋疼的无以复加,就算是用鼠标找到菜单里的命令然后去点击相应菜单项这样的步骤,也需要两次鼠标点击加上眼睛扫视,实在是繁琐,为什么就不用人性化的诸如Ctrl+S保存Ctrl+Z撤销Ctrl+C复制Ctrl+V粘贴这样人人熟知又非常快捷的组合键呢?其实步骤也蛮简单的,只需在~/.vimrc里加入下面这一句即可:

source $VIMRUNTIME/mswin.vim

我按照自己的需要修改并翻译了其中的相应代码,直接拷贝到~/.vimrc中了。如下所示:

"""""按照普通文本编辑器标准设置诸多快捷键"""""
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
finish
endif
"设置'cpoptions'到Vim默认
if 1 " only do this when compiled with expression evaluation
let s:save_cpo = &cpoptions
endif
set cpo&vim
"按照windows方式操作。例如Shift+向左箭头选择从右到左的文本,Shift+向由箭头选择从左到右的文本
behave mswin
" backspace and cursor keys wrap to previous/next line
set backspace=indent,eol,start whichwrap+=<,>,[,]
"按backspace键往前删除
vnoremap <BS> d
"按ctrl+X组合键剪切,但是我的ctrl+X键不能剪切,我将其改为Shift+X了
vnoremap <S-X> "+x
vnoremap <S-Del> "+x
"按ctrl+C组合键复制
vnoremap <C-C> "+y
vnoremap <C-Insert> "+y
"按ctrl+V或Shift+Insert组合键粘贴
map <C-V> "+gP
map <S-Insert> "+gP
cmap <C-V> <C-R>+
cmap <S-Insert> <C-R>+
exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
imap <S-Insert> <C-V>
vmap <S-Insert> <C-V>
"按ctrl+Q组合键退出
noremap <C-Q> <C-V>
"按ctrl+S组合键保存
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
if !has("unix")
set guioptions-=a
endif
"按ctrl+Z组合键撤销
noremap <C-Z> u
inoremap <C-Z> <C-O>u
"按ctrl+Y组合键重做
noremap <C-Y> <C-R>
inoremap <C-Y> <C-O><C-R>
"按ctrl+A组合键全选
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
"按ctrl+tab组合键切换窗口
noremap <C-Tab> <C-W>w
inoremap <C-Tab> <C-O><C-W>w
cnoremap <C-Tab> <C-C><C-W>w
onoremap <C-Tab> <C-C><C-W>w
"按ctrl+F组合键关闭窗口
noremap <C-F4> <C-W>c
inoremap <C-F4> <C-O><C-W>c
cnoremap <C-F4> <C-C><C-W>c
onoremap <C-F4> <C-C><C-W>c
"恢复'cpoptions'
set cpo&
if 1
let &cpoptions = s:save_cpo
unlet s:save_cpo
endif
"""""按ctrl+G键自动缩进美化代码"""""
noremap <C-G> <Esc>gg=G<CR>
inoremap <C-G> <C-O> <Esc>gg=G<CR>

要注意的是:以上组合键主要适用于gvim。如果要在终端或tty的vim使用这些组合键的话需要在~/.bashrc中加入stty -ixon(不推荐)。

相关博文



发表评论

电子邮件地址不会被公开。