vim常用命令合集
单词移动
vim支持以单词为单位的光标移动
- w : 光标移动到下一个单词的开头
- b : 光标移动到上一个单词的开头
行移动
vim支持行粒度的光标移动, 当我们的光标需要在一行进行移动时可以使用以下命令
- $ : 将光标移动到当前行的行尾
- 0 : 将光标移动到当前行的行首
- ^ : 将光标移动到当前行的第一个非空字符
- 2| : 将光标移动到当前行的第2列
- fx : 将光标移动到当前行的第一个字符x上
- 3fx : 将光标移动到当前行的第三个字符x上
- % : 符号间的移动,在( ), [ ], { }, 或 #之间跳跃
屏幕移动
当我们进行长距离,大范围的光标移动时,使用上面的命令可能比较麻烦,要不停按某个键若干次, vim提供了大范围的光标移动命令
- nG : 光标跳转到指定的第n行
- gg/G : 光标跳转到文件的开头/末尾
- L : 光标移动到当前屏幕的末尾
- M : 光标移动到当前屏幕的中间
- Ctrl+g : 查看当前光标的位置状态
- Ctrl+u/d : 光标向前 / 后半屏滚动
- Page Up/Down : 光标向前 / 后全屏滚动
文本的基本操作
- i / a : 在当前光标的前或后面插入字符
- I / A : 在当前光标所在行的行首或行尾插入字符
- o : 在当前光标所在行的下一行插入字符
- x : 删除当前光标所在处的字符
- X : 删除当前光标左边的字符
- dw : 删除光标后面的一个单词
- dd : 删除光标所在处的一整行
- 2dd : 删除当前光标往下的两行(包括光标所在当前行)
- yw : 复制当前光标之后的一个单词
- yy : 复制光标所在处的一整行
- p : 粘贴,注意是粘贴到光标所在处的下一行
- J : 删除一个分行符,将当前行与下一行合并
文本的查找
- /string : 在vim的普通模式下输入/string即可正向查找字符串string
- ?string : 反向查找字符串string
- set hls : 高亮显示光标出的单词, 敲击n浏览下一个
- s/old/new : 将当前行的第一个字符串old替换为new
- s/old/new/g : 将当前行的所有字符串old替换为new
- %s/old/new/g : 将文本中所有字符串old替换为new
- %s/^old/new/g : 将文本中所有以old开头的字符串替换为new
文本的保存与退出
- u : 撤销上一步的操作
- q : 若文件没有修改,则直接退出
- q! : 若文件已修改,则放弃修改,退出
- wq : 若文件已修改,则保存修改,退出
- e! : 若文件已修改,则放弃修改,回复文件打开时的状态
- w !sudo tee % : 在shell的普通用户模式下保存root读写权限的文件
以上内容参考自《嵌入式C语言自我修养》
|