VIM 基本命令查找和替换
VIM 简单的命令用着还好. 比如插入, 删除, 查询. 但替换就用的比较少. 所以, 还是需要用的时候拿出来对照者看.
使用 VIM 编辑文件:
VIM xxx
进入之后的界面叫做命令模式界面. 可以修改文件编辑的时候叫做插入模式.
(命令模式)冒号 + 指令
在 VIM 命令模式界面想要退出, 需要输入冒号和指令
:wq 保存并退出
:q 维修改退出
:q! 强制退出并不保存
(命令模式)移动光标
在 VIM 界面, 命令模式下光标移动方法
1, 使用上下左右方向键
2, 命令模式下:
h 向左
j 向下
k 向上
l 向右
空格键 向右
Backspace 向左
Enter 移动到下一行首
- 移动到上一行首.
- :set nu // 显示行号
- :set nonu // 取消显示行号
- n+ // 向下跳 n 行
- n- // 向上跳 n 行
- nG // 跳到行号为 n 的行
- G // 跳至文件的底部
- g // 跳转到文件头部
(插入模式)编辑模式
以下按键进入编辑插入模式
- a // 在当前光标位置的右边添加文本
- i // 在当前光标位置的左边添加文本
- A // 在当前行的末尾位置添加文本
- I // 在当前行的开始处添加文本(非空字符的行首)
- O // 在当前行的上面新建一行
- o // 在当前行的下面新建一行
- R // 替换 (覆盖) 当前光标位置及后面的若干文本
- J // 合并光标所在行及下一行为一行(依然在命令模式)
ESC 可以退出编辑模式
(命令模式)删除和复制
在 VIM 中, 除了在编辑模式下修改文件, 命令模式的时候可以删除和复制
- x // 删除当前字符
- nx // 删除从光标开始的 n 个字符
- dd // 删除当前行
- ndd // 向下删除当前行在内的 n 行
- u // 撤销上一步操作
- U // 撤销对当前行的所有操作
- yy // 将当前行复制到缓存区, 也可以用 "ayy 复制,"a 为缓冲区, a 也可以替换为 a 到 z 的任意字母, 可以完成多个复制任务.
- nyy // 将当前行向下 n 行复制到缓冲区, 也可以用 "anyy 复制,"a 为缓冲区, a 也可以替换为 a 到 z 的任意字母, 可以完成多个复制任务.
- yw // 复制从光标开始到词尾的字符.
- nyw // 复制从光标开始的 n 个单词.
- y^ // 复制从光标到行首的内容. VPS 侦探
- y$ // 复制从光标到行尾的内容.
- p // 粘贴剪切板里的内容在光标后, 如果使用了前面的自定义缓冲区, 建议使用 "ap 进行粘贴.
- P // 粘贴剪切板里的内容在光标前, 如果使用了前面的自定义缓冲区, 建议使用 "aP 进行粘贴.
(命令模式)搜索和替换
命令模式下(esc 退出插入模式)
- /keyword // 向光标下搜索 keyword 字符串, keyword 可以是正则表达式
- ?keyword // 向光标上搜索 keyword 字符串
- n // 向下搜索前一个搜素动作
- N // 向上搜索前一个搜索动作
- *(#) // 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下 (上) 一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.
- g*(g#) // 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串.
- :s/old/new // 用 new 替换行中首次出现的 old
- :s/old/new/g // 用 new 替换行中所有的 old
- :n,m s/old/new/g // 用 new 替换从 n 到 m 行里所有的 old
- :%s/old/new/g // 用 new 替换当前文件里所有的 old
来源: https://www.cnblogs.com/woshimrf/p/vim.html