vim奇技淫巧

vim奇技淫巧
总结一下自己经常用vim的一些技巧和操作,很基本的就不写了,很高深的还有待以后补充:
  • 替换
:%s/abc/abcc/gc
c表示询问
:$s/abc/abcc/ge
e表示即使整个文件没找到一个匹配的目标也不要报错
:.,$s/yes/no
.表示当前行,$表示最后一行。总体的语句表示从当前行到最后一样进行匹配
:s+one/two+one or two+g
用+替换/
:s/good\|nice/handsome/g  
把good或nice替换成handsome
:s/aaa/bbb/g4    
只替换4行
:4,9s/\d\+/\=submatch(0)+1/
第4到9行的数字加一
:%s/^\w/\=toupper(submatch(0))/g
首字母大写
:%s/^/\=line(".").". "/g
加行号
  • 跳转
/^abc 
转到以abc开始的行
ctrl+-> /  ctrl + <-  
一次移动一个单词
30+ /  30-  
向前/向后移动30行
ctrl+o / ctrl_i  
跳到更老的位置/跳到更新的位置

跳到上一段     
} 跳到下一段
‘“ 
跳到上次关闭文件时,在NOMAL模式下的光标所在行
’^ 
跳到上次关闭文件时,在INSERT模式下的光标所在行
qa 
开始记录宏(这里的a可以用任意一个字母代替)
q  
结束宏记录
@a 
执行名字为a的宏
  • 标记
ma   
标记此行为a
‘a   
移到标记为a的行
mA/'A  
可以跨文件进行标记
  • 补全
Insert模式下,ctrl+n  / ctrl+p  
补全
ctrl+a         
重复上次在Insert模式下的动作
Insert模式下,ctrl+y / ctrl+e  
重复上一行/下一行光标处的字符
:iab xl xulei 
当键入xl(空格)时,会被替换成xulei
ctrl+x ctrl+n
在文件中补全以前出现过的单词
ctrl+x ctrl+p
在文件中补全以前出现过的单词
ctrl+x ctrl+l
在文件中补全以前出现过的一行
ctrl+x ctrl+f
补全文件名
ctrl+x ctrl+k
单词补全
ctrl+x ctrl+t
同义词补全
  • 其他
用v选中多行, 然后 !sort         
可以实现排序
g ctrl+G(先按g然后按ctrl+G)     
统计字数(或先用v选中部分需要统计的文字)
将光标移到一个函数上,K(大写)    
将自动man此函数
在一个vim文件中:grep abc *      
将匹配到所有包好abc的文件 :cn下一个  :cp上一个  :cl文件列表
vim `grep -l abc *`           
打开包含abc的所有文件
ctrl+c=esc
:history                      
命令记录
q:                            
打开命令行历史窗口
q/                            
打开查找历史窗口
:w filename                   
另存为
:1,3w filename              
1-3行另存为
Insert模式下,ctrl+w  
删除前一个单词
Insert模式下,ctrl+u  
删除此行光标前所有单词
:set showmatch  
当键入if(i>0)的)的时候,光标会跳到(处停留1/10秒,再回来
:set cindent shiftwidth=4   
设置缩进
=a{     
调整{}之间的缩进格式
gu  
变小写  
gU 
变大写
光标定位在数字上ctrl+a 
增1



转自:
http://blog.chinaunix.net/u2/86590/showart.php?id=2087339

你可能感兴趣的:(vim奇技淫巧)