用户工具

站点工具


linux:vim:move-change

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

linux:vim:move-change [2010/06/02 01:18] (当前版本)
行 1: 行 1:
 +====== 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移动修改命令小结 =====
 +<​html>​
 +<table summary="​Commands"​ border="​2"​ cellpadding="​3"​ cellspacing="​0"​ frame="​hsides"​ rules="​all"><​caption>​命令小结</​caption><​tbody><​tr><​td><​code class="​inset">​w</​code></​td><​td>​向前移动一个单词</​td></​tr><​tr><​td><​code class="​inset">​b</​code></​td><​td>​向后移动一个单词</​td></​tr><​tr><​td><​code class="​inset">​$</​code></​td><​td>​移动到一行的结尾</​td></​tr><​tr><​td><​code class="​inset">​^</​code></​td><​td>​移动到一行的开始</​td></​tr><​tr><​td><​code class="​inset">​G</​code></​td><​td>​移动到指定行</​td></​tr><​tr><​td><​code class="​inset">:​set number</​code></​td><​td>​显示行号</​td></​tr><​tr><​td><​code class="​inset">:​set nonumber</​code></​td><​td>​不显示行号</​td></​tr><​tr><​td><​code class="​inset">​dd</​code></​td><​td>​删除一行</​td></​tr><​tr><​td><​code class="​inset">​dw</​code></​td><​td>​删除一个单词</​td></​tr><​tr><​td><​code class="​inset">​d$</​code></​td><​td rowspan="​2">​删除从当前位置到本行结束的所有字符</​td></​tr><​tr><​td><​code class="​inset">​D</​code></​td></​tr><​tr><​td><​code class="​inset">​s</​code></​td><​td>​删除光标右侧的一个字符并进入插入状态</​td></​tr><​tr><​td><​code class="​inset">​S</​code></​td><​td rowspan="​2">​删除一行并进入插入状态</​td></​tr><​tr><​td><​code class="​inset">​cc</​code></​td></​tr><​tr><​td><​code class="​inset">​cw</​code></​td><​td>​删除一个单词并进入插入状态</​td></​tr><​tr><​td><​code class="​inset">​c$</​code></​td><​td rowspan="​2">​删除从当前位置到本行结束的所有字符并进入插入状态</​td></​tr><​tr><​td><​code class="​inset">​C</​code></​td></​tr><​tr><​td><​code class="​inset">​.</​code></​td><​td>​重复执行刚才执行的命令</​td></​tr><​tr><​td><​code class="​inset">​J</​code></​td><​td>​将本行和下一行合并</​td></​tr><​tr><​td><​code class="​inset">​r</​code></​td><​td>​替换当前字符</​td></​tr><​tr><​td><​code class="​inset">​~</​code></​td><​td>​转换大小写</​td></​tr><​tr><​td><​code class="​inset">​q</​code></​td><​td>​录制宏</​td></​tr><​tr><​td><​code class="​inset">​@</​code></​td><​td>​执行宏</​td></​tr></​tbody></​table>​
 +</​html>​
 +
 +===== 参考 =====
 +https://​yyq123.blogspot.com/​2009/​02/​vim_23.html
 + 
 + 
  
linux/vim/move-change.txt · 最后更改: 2010/06/02 01:18 (外部编辑)