vim教程
从OS实验课学习的vim, 当时在ubuntu上对vim痛恨不已, 这学期决定好好学一下vim的技巧, 增加生产力!
vim的基本操作就不讲了
在命令模式下, HJKL控制光标左下上右的移动
让你的操作可重复
我们来举个例子,假设如下文本
one two three four five six
我希望改成
"one","two","four","five","six"
首先光标定位在该行的行首,可使用^。然后键入f␣(␣表示空格),此时光标定位在 one 和 two 之间的空格处,然后键入c␣","(修改空格,进入插入模式,然后增加","):
one","two three four five six
接着按;.,光标将先查找下一个空格,即重复f␣,这个空格位于 two 和 three 之间,然后.可以重复上一次的修改操作,即c␣","
one","two","three four five six
接着重复按若干次;.即可完成所有中间字符的修改:
one","two","three","four","five","six
最后应用I和A,添加开始和最后的双引号就可以了
高效移动
- e、b:按照单词进行前后光标跳转
- I、A:移动到行首或行末的第一个字符处,并进入插入模式
- H、M、L:光标分别跳转到可视区域的最上面、中间、最下面。
- Ctrl+D、Ctrl+U:有时,需要看的文本不在可视区域,通过这些组合进行上下翻页。
- ^、$:光标移动到行首和行尾
- f、F:通过上面的例子,我们知道,f是 find 的意思,可以在一行内查找某个字符出现的位置,并直接跳转过去。比如f<可以从当前光标开始向右,找到第一个<,并移动过去。F 是向左查找。
- ;:重复上一次的f查找操作
- .:重复上一次的修改操作,跟;可以说是好基友,经常用来实现一些简单的重复操作,比录制宏要简单很多。
高效修改
- r:替换模式,替换当前光标所在位置的一个字符。虽然你同样可以i进入插入模式,然后删掉那个字符,再输入需要的字符,但这种操作是鼠标流思维方式。替换是一个可重复操作,多用没坏处
- caw:change a word可以删除当前光标所在位置的单词。对于int count=0;的例子,如果此时光标在count中间某处,比如u处,直接键入caw可以达到同样的效果。所以caw更强大一些
- c、c^:举一反三,可以猜到c是从当前位置删除到行尾,并进入插入模式。
- ci":change inside "可以用于修改当前位置附近,在相同配对的"中的内容。比如对于const char *str="hello world";。当在双引号中间的任意位置键入ci"可以直接清空字符串,并继续输入新的希望的字符串。
- ci(、ci[:举一反三change inside ( change inside [
- yi":yank inside " 猜猜是啥意思?类似ci"只是把编辑操作编程复制操作,因为y是复制!是不是很强大
- yw、yaw、daw、d$…:好了,这些可以” 发明” 出来了
- o、O:向下向上增加空行
- u、Ctrl+r:undo 和 redo
- 比如要删除一个单词,我往往会用vwd,试图用vw选中一个单词,然后d删除
- d: 删除(剪切)
- y: 复制
- v 加方向键: 选中
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果