vim常用指令
- i 在当前位置插入
- a 在当前字符后插入
- o 在当前行后插入新行
- O 在当前行前插入新行
- s 删除当前字符,再插入
- x 删除当前字符
- dd 删除当前行 删除的内容会被放在默认的剪切板里
- yy 复制当前行
- :w 存盘
- :saveas + path 另存为
- p 在当前位置后粘贴
- P 在当前位置前面粘贴
- :q 退出vim
- cw 替换当前word并进行插入
- hjkl 对应光标的左、下、上、右移动
- 0 → 数字零,到行头
- ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
- $ → 到本行行尾
- g_ → 到本行最后一个不是blank字符的位置。
- /pattern → 搜索 pattern的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
- 50G 到第50行
- :50 到第50行
- gg 到首行
- G 到尾行
- 关于tab的使用tab wiki
- :split 上下分屏
- :vsplit 左右分屏
- w 到下一个单词的开头
- e 到下一个单词的结尾
- W 到下一个单词的开头 由blank分隔
- E 到下一个单词的结尾 由blank分隔
- % 匹配括号移动,包括 ( [ {
- 星号与井号 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:
fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。 t, → 到逗号前的第一个字符。逗号可以变成其它字符。 3fa → 在当前行查找第三个出现的a。 F 和 T → 和 f 和 t 一样,只不过是相反方向。 还有一个很有用的命令是 dt" → 删除所有的内容,直到遇到双引号—— "。
前面,我们看到了
宏录制: qa 操作序列 q, @a, @@
qa 把你的操作记录在寄存器 a。
于是 @a 会replay被录制的宏。
@@ 是一个快捷键用来replay最新录制的宏。
示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
qaYp
区域选择
在visual 模式下,这些命令很强大,其命令格式为