用户工具

站点工具


侧边栏

linux:vim:move-change

VIM 移动和修改命令

在行内移动

我们可以用w命令向前移动一个单词,用b命令向后移动一个单词。我们也可以用数字做前缀组成新的命令,来快速的移动。例如4w就是向前移动4个单词,而5b则是向后移动5个单词。

利用$命令可以使光标移到一行的结尾处,而^命令可以使光标移到一行的开始处。

移动到指定行

使用G命令可以移动到指定的行。例如3G可以使我们快速的移到第3行。而1G则可以使我们移到文章的最顶端,而G则是定位到文章的最后一行。

那么又如何知道现在第几行呢?我们可以使用:set number命令使vi显示行号;而取消行号的命令为:set nonumber。即使没有显示行号,也可以使用ctrl+G命令显示总共有多少行,而当前在多少行,以及所占的百分比等信息。

使用J命令可以将本行和下一行合并为一行。我们也可以使用数字来使几行合并为一行。例如3J就可以将当前行下的三行(包括当前行)合并为一行。

除了在行间移动,我们还可以使用ctrl+U和ctrl+D命令进行向上和向下翻页,以快速移动到文章的不同部分。

删除和更改文本

我们可以使用dd来删除一行,使用dw来删除一个词。我们可以灵活组合命令来完成不同的删除操作。例如d3w一次删除3个词,而3dw则是指一次删除一个词,而这样的操作进行3次,即总的是也是删掉3个字符。命令d$则是删除从当前位置到本行结束的所有字符,命令D也能完成同样的工作。

与d命令相类似是的c更改命令,他在删除一个字符的同时进入插入状态。cw命令删除一个单词并进入插入状态。cc命令删除本行上的所有内容并进入插入状态,而且还会保持当前的行缩进。命令c$将删除从光标处到行尾的所有内容并进入插入状态。

命令s相当于命令cl的简写,它将删除光标右侧的一个字符并进入插入状态。而命令S相当于命令cc的简写,它将删除一行并进入插入状态。

我们可以使用r的命令来替换文本。例如rx就可以当前光标下的字符替换为x。当然也可以用数字来组合以形成新的命令来进行工作,例如5rd就是将当前光标以后的5个字符替换为d。

我们还可以用~命令进行大小写转换。

命令.可以重复执行刚才执行的命令,大提高操作的速度。

录制和执行宏

利用vi中的键盘宏,可以使我们实现多个命令的记录和执行。例如我们现在的文本是 stdio.h stdlib.h math.h 但是我们都知道在C语言中所需要的是 #include #include #include ,如何来做到?如果你有足够的耐心可以一句一句的加,但是也可以使用键盘宏来高效地完成这项工作。开始输入qa.其中的a是一个宏的名字,我们可以用任何我们喜欢的字母来代替,q是开始录制宏的命令标志。这样我们就可以开始宏的输入了:^移到一行的开始;在一行的开始插入#include;在结束处加入>;j移到下一行,q结束宏的录制。

当我们要使用宏时,就可以输入@a命令来执行宏了。我们还可以在执行命令前加上数字来告诉vi执行几次。这样就可以快速的完成工作了。

VIM移动修改命令小结

命令小结
w向前移动一个单词
b向后移动一个单词
$移动到一行的结尾
^移动到一行的开始
G移动到指定行
:set number显示行号
:set nonumber不显示行号
dd删除一行
dw删除一个单词
d$删除从当前位置到本行结束的所有字符
D
s删除光标右侧的一个字符并进入插入状态
S删除一行并进入插入状态
cc
cw删除一个单词并进入插入状态
c$删除从当前位置到本行结束的所有字符并进入插入状态
C
.重复执行刚才执行的命令
J将本行和下一行合并
r替换当前字符
~转换大小写
q录制宏
@执行宏

参考

linux/vim/move-change.txt · 最后更改: 2010/06/02 01:18 (外部编辑)