编辑器:vim使用技巧实战(定位/查找/替换/删除/移动/复制)

 LINUX控制台环境可以用DOS窗口来代替,那VI呢?网上一找,有WINDOWS版VIM,哈哈,这下环境就有了,也正好有个实战VI的好机会。
    去VIM的官方网站
下载下来了GVIM,这是个类似记事本,UE类的界面的VIM,其实就是个带用户界面的VIM,可以用在桌面环境下,里面也包含DOS模式的VIM,另外网站上还有只针对XP/2000的DOS窗口的专门文件,不过下了这个就全包括了。
    安装过程略过,不过如果要用DOS模式下的VIM的话,在安装过程中有个选项要选中,好像是生成DOS模式下。BAT文件意思的一个选项,打上勾就行了。最后会在WINDOWS目录下建立一系列的BAT文件方便直接在DOS命令行上使用。
    下面就正式开始使用VIM了:
    1.定位/查找
    打开一个文件,在命令模式下用G命令可到文件最后一行,在命令模式下用行号+G可定位到指定的行上,在命令行模式下(:命令)输入:g/要找的词,可显示所有含有要找的词的行号和内容,有了这几个命令就可想找谁找谁,想定位在哪就定位在哪了。
   
2.查找/替换
    一般的全局替换语法是:%s/替换前/替换后/g,%代表整个文件,g代表全体,如果没%只替换当前行的,如果没g只替换找到的第一个。等同于:1,$s/替换前/替换后/g,都是全局替换。
    :行号1,行号2s/替换前/替换后/g,替换指定行号1和行号2之间的内容。
    如果替换时需确认那么在g后加个c参数。这样每一个替换前都需要确认。
    3.删除/移动/复制
    命令模式,无:输入。dd为删除光标行,d+数字 回车删除当前行开始的数字+1行。
    在:输入d数字,则为删除当前行开始的数字行。
    :m数字,把当前行移动到数字行处,只一行。
    :co数字,把当前行COPY到数字行之后,数字可以用+来表示位移几行。比如:co+2就是把当前行COPY到当前行号+2行后。
    :行号1,行号2 co行号3 ,把行号1到行号2之间的内容复制到行号3后面,co换成m就是移动多行。
    如果不是整行的比如把第5行的某个字符后到10行某个字符前的内复制到12行某个字符前,可以这样做:
    1, 光标移到第5行的你想复制的那个字符前。
    2, 按下 v.
    3, 按向下键(或J)到了第10行时, 按向左键,移到你想复制的字符后。然后按下 y
    4, 最后移光标到第12行的某个字符前按下p

 

在vim下可以使用常用的箭头键
但是 还有其它键可以让你更快的达到目标

hjkl 这是代替箭头键功能的
H M L 跳到屏幕的顶上 中间 下方

w 跳到下一个单词的开始
e 跳到单词的结束
b 向后跳

gg 跳到文件的开始
G 跳到文件的结束
10gg 或10G 跳到第10行


ta 跳到下一个a 前面
fa 跳到下一个a
大写的意思相反

 

另外还有%(跳到文件的%多少) 和|(跳到第几列) 不过我很少用


上面的都可以加上数字前缀 表示第几个匹配


另外看文件时 除了pageup pagedown外还有其它的快速键
如CTRL-F 向前一页 CTRL-B 向后一页

上面不是重要的
CTRL-D 向下半页 CTRL-U 向上半页我觉得更实用 这样看文章时就不会跳转出错
另外还有
CTRL-E 向下一行
CTRL-Y 向上一行


^ 行首
$行尾
0 第一个字符


另外上面也作为vim其它命令的定位符 如删除d

dt)
一直删除到这行的)

另外 懂了跳转键后 那删除或是复制时就不再是以行为单位了 可以指定到某个条件
我觉得这是新手成长的必要方法


另外还有ctrl-t ctrl-i ctrl-]

如果已经使用了ctags 或是cscope创建索引文件的话 那看代码时很是方便

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/unbutun/archive/2009/10/06/4635944.aspx

 

跳转到函数、变量定义处:
[+ctrl+i 跳转到函数、变量和#define
[+ctrl+d 跳转到#define处
ctrl+i 向前跳到前几次光标位置
ctrl+o 向后跳到后几次光标位置

函数体跳转:
[[
]]
[]
][
{}

2009-07-07 17:31 补充

如何选中括号中的内容 进行:
将光标移至括号内,按shift+v进入行选模式,然后

i{ - 选小括号中内容,不包括小括号
a{ - 选小括号中内容,包括小括号
ib - 选中括号中内容,不包括括号
ab - 选中括号中内容,包括括号
i{ - 选大括号中内容,不包括大括号
a{ - 选大括号中内容,包括大括号

:h text-objects

下面还有些相关的tips,未全部验证:
vi{ 选中{}中间的内容,不包括{}
va{ 选中{}中间内容,包括{}
vi( 选中()中间内容
vi< 选中<>中间内容
vi[ 选中[]中间内容
vit 选中中间的内容
vi” 选中”"中间内容
vi’ 选中”中间的内容
vis 选中一个句子
vib 选中一个block
viw选中一个单词
vip 选中一个段落

 

原文链接: http://c.chinaitlab.com/vc/84503...

你可能感兴趣的:(编辑器:vim使用技巧实战(定位/查找/替换/删除/移动/复制))