vim tips

来源:互联网 发布:键盘弹钢琴软件 编辑:程序博客网 时间:2024/05/16 17:47

via:http://blog.csdn.net/gzion/article/details/9747477

推荐一个有关vi写的比较好的文章,总共有三部分,常用的操作都有介绍.

http://www.ibm.com/developerworks/cn/linux/l-tip-vim1/
http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html
http://www.ibm.com/developerworks/cn/linux/l-tip-vim3/index.html


1.当光标在一个单词的下方时,按下K键,可以查阅该单词的man pages


2.统计一个模式出现的次数

[plain] view plaincopy
  1. :%s/patten//gn  
需要注意的是s前边的%,意思是整篇文档范围内搜索,如果指定某两行之间,可以用如下的方式(统计第50行到第100行之间patten出现的次数)
[plain] view plaincopy
  1. :50,100s/patten//gn  

3.使用缩写快速输入长单词

[plain] view plaincopy
  1. ab cn China  

挡在文档中输入cn,并且空格时,vim自动把cn替换为China,在长单词比较多时非常有用


4.删除当前行

[plain] view plaincopy
  1. dd  
删除当前字符到行尾
[plain] view plaincopy
  1. d$或者D  
删除当前字符到行首
[plain] view plaincopy
  1. d0  
删除当前行到最后一行
[plain] view plaincopy
  1. dG  
删除当前行到第一行
[plain] view plaincopy
  1. dgg  
删除当前字符到该行第n个字符c
[plain] view plaincopy
  1. dnfc  

删除当前行以下n行

[plain] view plaincopy
  1. ndd  
5.查找下一个(上一个)与当前光标所在单词匹配的单词
[plain] view plaincopy
  1. *(#)  
可以利用:set ignorecase忽略大小写

如下两个命令同样可以匹配单词,不过条件放宽到字符串中有匹配的即可

[plain] view plaincopy
  1. g*(g#)  

定位到与当前括号匹配的另一个括号

[plain] view plaincopy
  1. %  
定位到当前代码块的起始处
[plain] view plaincopy
  1. [{  

6.录制宏

[plain] view plaincopy
  1. qa(a是宏的名字,当然可以是其它的字符)  
结束录制
[plain] view plaincopy
  1. q  
需要注意的是如果想要对多行进行操作,在结束录制前要执行向下一行(j)的操作,这样才可以正常的用:n@a重复多次宏操作

为多个要输出的字符串添加printf语句的方法如下:

[plain] view plaincopy
  1. qa  
  2. 0  
  3. i  
  4. printf("  
  5. $  
  6. ");  
  7. j  
  8. q  
然后用命令10@a,即可对当前行以下10行进行添加printf语句的操作


7.无条件退出(不保存)

[plain] view plaincopy
  1. ZQ  
存盘退出
[plain] view plaincopy
  1. ZZ  


8.跳转到最近修改过的位置

[plain] view plaincopy
  1. '.(单引号+句点)  


9.大小写转换

vi中大小写转换的命令是

[plain] view plaincopy
  1. gu 和 gU  
非常形象,gu是转换为小写,gU是转换为大写,以下只给出转换为大写的情况,小写的只需改为小写u即可

把当前光标所在单词转换为大写

[plain] view plaincopy
  1. gUw  
把当前光标所在行全部字符转换为大写
[plain] view plaincopy
  1. gUU  
把当前光标所在行全部字符转换为小写
[plain] view plaincopy
  1. guu  
把包括当前行在内的以下三行转换为大写(同样可以用在包括当前单词在内的以下三个单词)
[plain] view plaincopy
  1. 3gUU  

把整篇文章转换为大写

[plain] view plaincopy
  1. gggUG(相当于gg gU G)  

当前光标到行尾字符转换为大写

[plain] view plaincopy
  1. gU$  
当前光标到行首字符转换为大写
[plain] view plaincopy
  1. gU0  

当前光标到文档结尾转换为大写

[plain] view plaincopy
  1. gUG  
当前光标到文档首部转换为大写

[plain] view plaincopy
  1. gU1G  

当前光标所在字符大小写转换

[plain] view plaincopy
  1. ~  
在可视模式下把选中的内容转换为大写
[plain] view plaincopy
  1. U  

10.显示当前编辑文件的信息(包括路径,文件名,读取状态等)

[plain] view plaincopy
  1. 1 CTRL+G  

不加前边的数字,只会显示文件名字,不显示文件路径


11.同时打开多个文件,并且分屏显示

[plain] view plaincopy
  1. //横向显示,相当于split  
  2. vim -o file1 file2 file3  
  3.   
  4. //纵向显示,相当于vsplit  
  5. vim -O file1 file2 file3  

12.删除匹配行

下面的命令删除所有注释(每行注释都以#开头)

[cpp] view plaincopy
  1. g/^#/d  
原创粉丝点击