文章目录
- 更多常用命令:应对稍复杂的编辑任务
- 光标移动
- 文本修改
- 文本对象选择
更多常用命令:应对稍复杂的编辑任务
几个基本的命令已经了解了,可以操作简单的任务,但一些很复杂的命令,并没有了解到,只知道几个简单的命令并不一定会提高效率,要想提高效率还需要后面的更多命令。
光标移动
光标移动可以通过h、j、k、l 四个键实现,之所以用这几个键因为Bill Joy 开发vi的时候没有独立的光标键,现在光标键也是可以移动的。
Lear Siegler ADM-3A 终端键盘的排布(图片源自维基百科)
之前的咱就不说了,现在我们来感受一些快捷的操作和按键吧
移动超过一个字符的情况使用b/w和B/W
- b/B words Backward向后跳转
- w/W Words forward向前跳转
- 0 移动到该行的行头
- ( 和 ) 移到上一句和下一句
- { 和 } 移到上一段和下一段
- gg 跳转到开头
- G 跳转到结尾行
b/w的大小写区别在于
小写的跟编程语言里的标识符的规则相似,认为一个单词是由字母、数字、下划线组成的(不严格的说法),而大写的命令则认为非空格字符都是单词
找段文字快来试试神奇的效果吧,奥,对了这个是在普通模式下操作的。
文本修改
- d 加动作来进行删除(dd 删除整行);D 则相当于 d$,删除到行尾。
- c 加动作来进行修改(cc 修改整行);C 则相当于 c$,删除到行尾然后进入插入模式。
- s 相当于 cl,删除一个字符然后进入插入模式;S 相当于 cc,替换整行的内容。
- i 在当前字符前面进入插入模式;I 则相当于 ^i,把光标移到行首非空白字符上然后进入插入模式。
- a 在当前字符后面进入插入模式;A 相当于 $a,把光标移到行尾然后进入插入模式。
- o 在当前行下方插入一个新行,然后在这行进入插入模式;O 在当前行上方插入一个新行,然后在这行进入插入模式。
- r 替换光标下的字符;R 则进入替换模式,每次按键(直到 )替换一个字符。
- u 撤销最近的一个修改动作;U 撤销当前行上的所有修改。
以上命令是要熟记于心的,并进行实际操作,否则过一段时间就会忘掉了。
文本对象选择
以以下文本为例
if (message == "sesame open")
- dw(理解为 delete word)会删除 ame␣,结果是 if (message == “sesopen”)
- diw(理解为 delete inside word)会删除 sesame,结果是 if (message == " open")
- daw(理解为 delete a word)会删除 sesame␣,结果是 if (message == “open”)
- diW 会删除 “sesame,结果是 if (message == open”)
- daW 会删除 “sesame␣,结果是 if (message == open”)
- di" 会删除 sesame open,结果是 if (message == “”)
- da" 会删除 “sesame open”,结果是 if (message ==)
- di( 或 di) 会删除 message == “sesame open”,结果是 if ()
- da( 或 da) 会删除 (message == “sesame open”),结果是 if␣
<C-B>
和<C-F>
,分别代表 Backward 和 Forward。
这章节讲述的很多,还有一部分是适合使用vim编写代码的,vim的博大精深,还需认真实操和记忆。
注:此文章为11月Day14学习笔记,内容来源于极客时间《Vim 实用技巧必知必会》