vim 常用指令收集。
vim 列编辑
插入字符(可以实现快速多行注释、多行缩进)
- 将光标移动到要操作的位置;
ctrl-v
进入可视块模式;- 使用j或者k进行光标上下移动,选取待操作的行;
shift-i
进入插入模式,输入要插入的内容;esc
按两次,退出插入模式即可;- 最终会在选中的每行出现插入的内容;
删除列字符
- 光标定位到要操作的地方;
CTRL+v
进入可视块
模式,选取这一列操作多少行;d
删除。
vim单词间移动
w
- 跳到下一个单词的开头e
- 跳到这个单词的末尾%
- 跳到对应的()
,{}
,[]
处*
(#
) - 跳到当前光标的下一个(上一个) 相同单词的地方如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成。如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。
w
- 向后移动一个单词,将符号或标点当作单词处理W
- 向后移动一个单词,不把符号或标点当作单词处理b
- 向前移动一个单词,把符号或标点当作单词处理B
- 向前移动一个单词,不把符号或标点当作单词处理
移动光标
0
- 到行头^
- 到本行的第一个非blank字符$
- 到行尾g_
- 到本行最后一个不是blank字符的位置。fa
- 到下一个为a的字符处,你也可以fs到下一个为s的字符。t,
- 到逗号前的第一个字符。逗号可以变成其它字符。3fa
- 在当前行查找第三个出现的a。F
和T
和f
和t
一样,只不过是相反方向。行号+G
- 跳转到指定行n+
- 光标下移n行n-
- 光标上移n行Ctrl+g
- 查询当前行信息和当前文件信息
删除相关
dt"
- 删除所有的内容,直到遇到双引号"
,双引号可以变成其它字符。dd
- 删除一行dw
- 删除一个单词/光标之后的单词剩余部分ndw
- 删除以当前字符开始的n个字x
- 删除当前字符d$
- 删除至行尾,光标之后的该行部分d0
- 删除至行首ndd
- 删除以当前行开始的n行
插入模式
i
- 从光标前开始插入I
- 从行首开始插入a
- 从光标后开始插入A
- 从行尾开始插入o
- 在当前行之下另起一行,开始插入字符O
- 在当前行之上另起一行,开始插入字符s
- 删除当前字符,然后进入插入模式S
- 清空当前行,然后进入插入模式 (同cc)
替换
:%s/abc/123
- 替换每一行的第一个abc为123:%s/abc/123/g
- 替换每一行的所有abc为123:s/abc/123/g
- 替换当前行的第一个abc为123
其他
重复上一次动作
.
- 重复上次改变vim 粘贴时取消自动缩进
在vim里,粘贴代码之前最好进入粘贴模式,这样就会关闭自动缩进
1
set paste
将代码粘贴进去之后再关闭粘贴模式
1
set nopaste