vim快捷键
1 minute read
0x00 vim
0>link
https://groups.google.com/forum/#!forum/Vim-cn
http://www.newsmth.net/nForum/#!board/VIM
1>函数折叠与打开(需要在vim中设置set foldmethod=indent)
zM函数全部折叠
zR折叠全部打开
在可折叠处:
zc:折叠
zC:对所在范围内所有嵌套的折叠点进行折叠
zo:展开折叠
zO:对所在范围内所有嵌套的折叠点展开
[z:到当前打开的折叠的开始处
]z:到当前打开的折叠的末尾处
zj:向下移动,到下一个折叠的开始处.关闭的折叠也被计入
zk:向上移动,到前一个折叠的结束处.关闭的折叠也被计入
创建和删除折叠:
zf:创建折叠.
eg:
zf56G:从当前行到56行创建折叠
10zf:从当前行到后10行创建折叠
10zf-:从当前行到前10行创建折叠
zd:删除光标下的折叠,仅当foldermethod设为manual或marker时有效
zD:循环删除光标下的折叠,即嵌套删除折叠,仅当foldermethod设为manual或marker时有效
zE:删除窗口里的所有折叠,仅当foldermethod设为manual或marker时有效
2>代码自动规范缩进
ggvG
=
(python效果不好,有可能让代码不再对齐而出错)
代码块缩进<C+v>+(选择块)+<>
<表示代码块向左缩进,>表示代码块向右缩进
3>easymotion插件可3键定位到当前可见屏幕任意字符
4>vim写中文自动换行的处理
https://wiki.archlinux.org/index.php/Vim_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E8.87.AA.E5.8A.A8.E6.8D.A2.E8.A1.8C.E6.98.BE.E7.A4.BA
http://www.cnblogs.com/ayanmw/p/3432005.html
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=53564&id=2098815
http://blog.csdn.net/auwzb/article/details/11609363
最后为实现写md文件可以在textwidth的值处自动换行,在vimrc中加入如下:
autocmd FileType * setlocal textwidth=111 formatoptions=tcqmM
(其中的textwidth=111为github pages的博客每行长度,且安装vim13后,上面的*只对md文件有效,如果写成FileType md setlocal...则没有效果,惑不解)
or
find ~ -name ftplugin
vi /root/.vim/bundle/vim-markdown/ftplugin
修改对应项
5>插入模式下的快捷键
<c-w>:删除前一个word
<c-u>:删除当前行光标位置之前的所有字符
<c-o>D:删除当前行光标位置之后的所有字符
<c-t>:缩进当前行
<c-d>:删除当前行缩进
下面是插入模式的3个字符内移动的快捷键,结合vim-hardtime在vim-hardtime中设置去除Left,Down,Up,Right的禁用
超过当前光标所在位置的移动用f+j+s+字符+hint,或者f+j+w|b的方法移动(f+j为esc的map)
需要先查看是否有插件与<c-h>冲突,检查方法为:verbose imap <c-h>,发现auto-pairs插件有关于<c-h>的设置,注释掉就可以
默认情况下插入模式下<c-h>是backspace功能,参考解决方法:
http://www.skywind.me/blog/archives/1857
noremap <c-h> <left>
noremap <c-j> <down>
noremap <c-k> <up>
noremap <c-l> <right>
inoremap <c-h> <left>
inoremap <c-j> <down>
inoremap <c-k> <up>
inoremap <c-l> <right>
cnoremap <c-h> <left>
cnoremap <c-j> <down>
cnoremap <c-k> <up>
cnoremap <c-l> <right>
6>命令模式下的快捷键
<c-b>跳转到最前面
<c-e>跳转到最后面
<c-w>删除前一个word
<c-u>删除光标前所有
<c-f>打开命令行窗口
7>多行操作
多行移动
a)ma+target_line_num+G+3(缩进数)+<+'+a
b)<c-v>+move_to_target_position+3(缩进数)+<
c)2(行数)+<<
多行粘贴
p:完全相同的粘贴
]p:在光标处对齐粘贴
8>向上向下滚动
<c-e>向下滚动
<c-y>向上滚动
<c-d>向下半屏
<c-u>向上半屏
9>caps键当esc键和ctrl键一起用
caps在单独按下时被修改成esc键效果
caps在按住时被修改成ctrl键效果
http://askubuntu.com/questions/177824/remapping-caps-lock-to-control-and-escape-not-the-usual-way
detail:
first way:
[!要先安装xcape]
vim ~/.zshrc and + below command
setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Caps_Lock=Escape' &
another way:
[!要先安装xcape]
1)caps lock as control from gnome-tweak-tool
2)xcape -e 'Control_L=Escape'
10>改变不良习惯
I=0i
g_=$h[当前行最后有空白字符时]
cw=dwi
0x01 vimperator
"3.14.0 (created: 2016/06/07 23:58:16)
imap jf <Esc>
imap fj <Esc>
cmap jf <Esc>
cmap fj <Esc>
" noremap ; <S-;>无效
nmap mm ZZ
noremap J gT
noremap K gt
noremap h <S-Left>
noremap l <S-Right>
source! /root/.vimperatorrc.local
" vim: set ft=vimperator:
set nextpattern=\s*下一页|下一张|下一篇|下页|后页\s*,^\bnext\b,\\bnext\\b,^>$,^(>& gt;|»)$,^(>|»),(>|»)$,\\bmore\\b
set previouspattern=\s*上一页|上一张|上一篇|上页|前页\s*,^\bprev|previous\b, \\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$
nmap [ [[
nmap ] ]]
noremap bl :tabopen http://3xp10it.github.io <CR>
noremap gi :tabopen http://www.github.com/3xp10it <CR>
noremap li :tabopen http://3xp10it.github.io/bookmarks.html <CR>
noremap wo :tabopen http://192.168.3.13:1235/webinfos <CR>