命令格式
vim的命令采用下面的格式。
[OPERATOR][NUMBER][MOTION]
Operator是动词。
- d – Delete (等同于cut命令)
- c – Change
- y – Yank
- p – Insert last deleted text after cursor (put command)
- r – Replace
- v - 可视化选择
Motion表示操作的上下文。
- w – 直到下一个单词的起始位置前面。
- s - sentence
- p - paragraph
- t - tag
- b - block
- e – 直到当前单词的最后一个位置。
- $ – 直到当前行的最后一个位置。
- ) – 下一个句子的开始。
- ( – 当前句子的开始。
- } – 下一段的开始。
- { – 当前段的开始。
- ] – 下一段部分(section)的开始
- [ – 当前部分(section)的开始
- H – 当前屏幕的顶部行
- L – 当前屏幕的最后一行
Count是可选的,表示command和motion的重复次数。
- i - inside
- a - around
NUM: number (e.g.: 1, 2, 10)
实例
- dw 删除一个词
- d4w 删除四个词
- d$ 删除当前行
- dd 删除当前行(d$的快捷方式)
- d2$ 删除两行
- cis - Change inside sentence,删除当前句子,并进入insert模式
- yip - yank inside paragrah 复制当前段落
撤销命令
- u 撤销上个命令
移动光标
- h – Left
- k – Up
- l – Right
- j – Down
- G 移动到文件最后一行
- 123 + G 跳到指定行
- gg 移动到文件第一行
- ctrl + g 查看当前文件总行数
- % 移动到当前代码区块的开始/结尾(匹配(),[],{})
插入文字
- i 当前位置前面
- a 当前位置后面
- o 当前行下方新增一行
- O 当前行上方新增一行
删除
- x 删除当前字符
搜索,替换
- :/cat 搜索光标位置后面
- :?dogs 搜索光标位置前面
- n 移动到下一个匹配
- N 移动到上一个匹配
- :s/cat/dog 只替换下一个
- :s/cat/dog/g 替换所有
- 执行shell命令
- :!ls -al
复制,粘贴,剪切
选择文本
- v+光标移动 (按字符选择)高亮选中所要的文本,然后进行各种操作(比如,d表示删除)。
- V (按行选择)
- v+选中的内容+c 更改选中的文字
复制:y(ank)
- y 用v命令选中文本后,用y进行复制
- yy 复制当前行,然后用p进行复制
- 5yy 复制从当前行开始的5行
- y_ 等同于yy
- Y 等同于yy
- yw 复制当前单词
- y$ 从当前位置复制到行尾
- y0 从当前位置复制到行首
- y^ 从当前位置复制到第一个非空白字符
- yG 从当前行复制到文件结束
- y20G 从当前行复制到第20行
- y?bar 复制至上一个出现bar的位置
粘贴
- p 在光标位置之后粘贴
- P 在光标位置之前粘贴
剪切
- v + 选中的内容 + d 剪切
- 全部删除:按esc后,然后
dG
- 全部复制:按esc后,然后
ggyG
- 全选高亮显示:按esc后,然后
ggVG
“*yy复制一行
“*y2w复制二个词
“ 表示使用寄存器
“* 表示使用当前选择区
gg
:是让光标移到首行,在vim才有效,vi中无效v
: 是进入Visual(可视)模式G
:光标移到最后一行选中内容以后就可以其他的操作了,比如:
d
删除选中内容y
复制选中内容到0号寄存器"+y
复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
来源Vim操作