浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VIM 奇技淫巧_八月初十_百度空间

VIM 奇技淫巧

常用技巧

1. 如果想不退出vi而查看UNIX系统的有关信息,输入“:shell ”即可进入vi以前的shell环境,“exit”退回到vi编辑状态。


2. shift+ZZ 保存后自动退 和 :wq 是一样的


3. 直接运行命令,不退出VI :! 命令  Demo::! ls


4. 将其他文件内容导入当前编辑文件中,:r 文件名 Demo::r /etc/hosts
   结合第3条可以这样插入日期  Demo::r !date


5. 像UltraEdit一样的列选功能,在VI也能用,按Ctrl + V,用向下或向上键选择行,再按Shift+I,然后输入要输入的符号,最后ESC。(Gvim下用Ctrl+Q,不然变成黏贴了)
   我们常用这个方式加注释,还有更简单的方法 :起始行,终止行s/要替换字符/替换为新字符/g Demo::1,20s/^/#/g


6. 重复上次操作,有的时候我们经常做重复操作,先在第一行上操作例如删除第一个字母,然后到你要重复的行,然后 . (就是有>号的键)


7. 如果想把一个字母进行大小写变换,可以在字母上按SHIFT+~.

 

8. :global可以简写为:g :g! :vg
    :g/^/m 0 #倒序文件行
    :g/^$/d #vi中删除空行
    :g/^/+1 d #删除偶数行 也可以用normal命令 :%norm jdd
    :g/^/d|m. #删除奇数行

 


屏幕翻滚类命令


Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部(这里要敲回车)


插入文本类命令


i:在光标前
I:在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行


删除命令


ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本


搜索及替换命令


/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
:%s/p1/p2/g 将在全文中把所有p1无用p2替代
如果你是在写程序,你可能只想替换那些出现在注释中的"four",代 码中的留下。这可有点为难,"c"标志可以让每个目标被替换之前询问你的意见:
Demo:%s/\<four\>/4/gc

 

文本相关操作
 
J表示,其功能是把光标所在行与下面一行合并为一行
nJ表示,其功能是把光标所在行与下面n行合并为一行
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d:将n1行到n2行之间的内容删除

posted on 2012-11-12 16:10  lexus  阅读(360)  评论(0编辑  收藏  举报