posts - 297,  comments - 15,  trackbacks - 0
总结一下自己经常用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



转自:
posted on 2009-11-25 15:50 chatler 阅读(368) 评论(0)  编辑 收藏 引用 所属分类: vi

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(10)

随笔分类(307)

随笔档案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感觉这个博客还是不错,虽然做的东西和我不大相关,觉得看看还是有好处的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新评论

阅读排行榜

评论排行榜