大家好,欢迎来到IT知识分享网。
普通模式是Vim 最自然放松的模式,和其他的编辑器不同,其他的编辑器大部分都是处于插入模式。
许多普通模式命令在执行的时候可以指定执行的次数,这样我们就可以将其执行许多次。
普通模式的命令的强大,很大程度上源于 {操作符 + 命令对象} 这样的操作方式。 (首先指定一个操作,然后在指定操作的对象!)
Pratical Vim 中讲的好,一个画家虽然直接在画布上画画的时间很多,但是他们做的最多的工作研究主题,调整光线,把颜料混合成新的色彩等等。
所以说画家在休息的时候不把画笔放在画布上。
和画家一样,程序员,也只会花一部分时间来编写代码,绝大部分的时间都是在思考,阅读,以及在代码中穿梭浏览。而且,当确实需要修改的时候,
谁说一定要进入插入模式? 我们可以在普通的模式下面,插入,移动,删除等。在普通模式下面,我们有很多工作可以做到
技巧8: 把撤销单元切成块。
—————————————————————————————————————————————————–
1. u 键可以触发撤销命令。
2. 在别的编辑器中 撤销可能指的是 撤销上一次最后输入的字符 ,或者单词(这样子很合理,因为同义词会输入很多的单词)。
3. 在 vim 中我们可以控制撤销修改的粒度。什么对应一次修改呢?
一次修改: 在普通模式,可视模式, 以及命令行模式中所处发的命令。
一次修改:在插入模式中输入或者删除的文本。 i{insert some text}<Esc> 是一次修改(而不是多次修改)
4. 从进入插入模式开始,到离开进入普通模式为止,期间进行的输入或者删除的任何内容都被当作一次修改。
因此只要我们控制好 <Esc>的使用,就可以使得撤销命令用于 单词,句子,或者段落。
5. 多久应该离开一次插入模式呢? 当你进行思考的时候,就可以离开了。
6. 在插入模式中按下<Enter>(也称为<CR>)可以另起一行,但是<Esc>+o(小写0)也可以另起一行,并且可以控制撤销粒度。
7. 如果在插入模式中使用了 <up> <Left> <right><down>这些光标键,将会产生一个新的撤销块。 (虽然没有退出插入模式)
(所以删除字符,一般都是在普通模式中的)
技巧9: 构造可重复的修改
——————————————————————————————————————————————————–
在vim 中完成一件事情,总是有不止一种方式,但是哪种方式最好呢?
1, 按键次数最少
2. 命令可以重复。 (点范式的用法哦)
文本。 The end is nigh.
方式一:
若现在光标在h上。需要删除整个单词 nigh。如何做?
命令:db, 删除从光标到单词开头的内容,但是却会元封不动的留下光标下的单词。
命令;x, 删除光标下的单词。
方式二:
命令: b , 将光标置于单词首部。
命令: dw, 删除从光标到单词尾部的内容。 (当前光标下的字符也会删除,并且会删除空格,光标停留在下一个单词的首字母)
方式三:
命令:daw (delete a word) 删除当前光标下的字符,并且会删除单词后面或者前面的空格(哪怕有多个空格,不会同时删除单词后面和前面的空格)
因此 运行命令 daw之后,光标会留在 s上,因为空格也被删除了。
这三种方式按键次数都是一样的,但是 最后一种方式却是可重复的。 因为按照点范式的用法,下一次我们按.的时候,就可以删除 is 了。
技巧10 用次数做简单的算数运算
————————————————————————————————————————————————————–
普通命令可以在执行的时候指定次数: 次数前缀。
<C-a> <C-x> 可以对数字左加法和减法操作。
如果当前光标不再数字上,那么可以跳转到该数字上,并且做加法和减法操作。
并且: vim 的默认数字表示是八进制的。
技巧11: 能够重复,就别用次数
————————————————————————————————————————————————————-
删除两个单词: 的方式
d2w: 其中 2w 表示动作的对象,『动作命令 +动作对象』
2dw: 2 表示命令前缀。 (将命令 dw 执行两次)
dw. : 使用点范式。
但是,如果接下来我想要删除一个单词的话,采用点范式可以更好的操作。
所以,只在必要的时候使用 次数。
技巧12: 操作符 + 动作对象 (双剑何壁,天下无敌)
————————————————————————————————————————————————————
d{motion} 命令可以删除一个字符:dl
删除一个完整的单词: daw
删除一个段落: dap
命令作用的范围由动作对象决定。
同理: c{motion}, y{motion}
g~, gu和 gU 操作符要按键两次才可以调用:称 g 为前缀字符。
学习新的动作对象 和操作符就像是在学习 vim 的词汇一样,当我们的词汇量增加的时候,就可以表达更多的想法。
daw: 删除一个单词
gUaw: 将一个单词转化为大写形式
dap : 删除一个段落
gUap: 将一个段落转化为大写形式。
例外: 当一个命令被连续调用两次的时候,作用与当前行。
dd: 删除当前行
gUU = gUgU
>> 缩进当前行
想法:c 命令 和 d 命令的区别:
c: 修改,删除之后进入插入模式,插入字符。
d: 删除 ,删除之后留在普通模式。
另外二者在删除一个单词的时候,对空格的处理是不同的。
我们可以扩展动作对象 和 操作符。
自定义的操作符 和已经存在的动作对象协同工作。
自定义的动作对象 和已经存在的操作符号协同工作。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128547.html