目录
1. vim 快捷键
1.1. 光标操作
gg: 移动到文件头部位置;G: 移动到文件末尾;nG: 移动到n行,10G即移动到文件第十行;$: 跳转到当前行末尾;^: 跳转到当前行开头;w: 向右移动一个单词;nw: 向右移动多个单词;b: 向左移动一个单词;nb: 向左移动多个单词;ggvG: 全选;
1.2. 文本操作
dd: 删除本行;dG: 清空整个文件内容;ndd: 删除n行;yy: 复制当前行;p: 粘贴;a: 进入编辑模式, 插入内容位置在光标的后面;
复制此文件所有内容: ggvG 全选 + y 复制 + p 粘贴。
复制多行:
- v 进入可视模式, 通过移动光标选择目标, 按 y 复制, p 粘贴。
- 输入
:进入命令行模式, 输入15 20 copy 21, 即将从第十五行到第二十行的内容从第二十一行开始复制。
1.3. 查找与替换
1.3.1. 查找
在普通模式下输入 /, 即可开始查找。
例如查找 root, 输入 /root 按下 enter 即可跳转至 root 第一次出现的位置, 同时, 输入 n 可跳转至下一个 root 的位置, 输入 N 跳转至上一个的位置。
1.3.2. 替换
: s/root/admin/将光标当前行第一个出现的root替换为admin, 没有则不替换;: s/root/admin/g将光标当前行的所有的root替换为admin;: 3,5 s/root/admin/g将第三至五行所有的root替换为admin;: %s/root/admin/g将所有行的root替换为admin;
1.4. 保存与退出
:q!不保存退出;:wq保存并退出;:x保存并退出;:w保存;:w b.txt另存为b.txt;
2. Linux 下 vi 的使用命令
2.1. 命令
- 编辑文件:
vi filename
在 vi 查看模式下:
- 编辑:
i键 - 退出插入模式:
Esc - 保存:
:wq或者Shift + ZZ - 不保存文件:
:q! - 整行操作:
dd删除,yy复制,p粘贴 - 将光标处的字符删除:
x - 在光标的下一行进行插入内容:
o - 撤销与重做:
u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做)
2.2. 进入 vi 的命令
vi filename: 打开或新建文件, 并将光标置于第一行首vi +n filename: 打开文件, 并将光标置于第 n 行首vi + filename: 打开文件, 并将光标置于最后一行首vi +/pattern filename: 打开文件, 并将光标置于第一个与 pattern 匹配的串处vi -r filename: 在上次正用 vi 编辑时发生系统崩溃, 恢复 filenamevi filename….filename: 打开多个文件, 依次进行编辑
2.3. 移动光标类命令
h: 光标左移一个字符l: 光标右移一个字符space: 光标右移一个字符Backspace: 光标左移一个字符k或Ctrl+p: 光标上移一行j或Ctrl+n: 光标下移一行Enter: 光标下移一行w或W: 光标右移一个字至字首b或B: 光标左移一个字至字首e或E: 光标右移一个字至字尾): 光标移至句尾(: 光标移至句首}: 光标移至段落开头{: 光标移至段落结尾nG: 光标移至第 n 行首n+: 光标下移 n 行n-: 光标上移 n 行n$: 光标移至第 n 行尾H: 光标移至屏幕顶行M: 光标移至屏幕中间行L: 光标移至屏幕最后行0: (注意是数字零)光标移至当前行首$: 光标移至当前行尾
2.4. 屏幕翻滚类命令
G: 翻到文本最后, 大写的 G, 即shift + gCtrl+u: 向文件首翻半屏Ctrl+d: 向文件尾翻半屏Ctrl+f: 向文件尾翻一屏Ctrl+b; 向文件首翻一屏nz: 将第 n 行滚至屏幕顶部, 不指定 n 时将当前行滚至屏幕顶部。
2.5. 插入文本类命令
i: 在光标前I: 在当前行首a: 光标后A: 在当前行尾o: 在当前行之下新开一行O: 在当前行之上新开一行r: 替换当前字符R: 替换当前字符及其后的字符, 直至按 ESC 键s: 从当前光标位置处开始, 以输入的文本替代指定数目的字符S: 删除指定数目的行, 并以所输入文本代替之ncw或nCW: 修改指定数目的字nCC: 修改指定数目的行
2.6. 删除命令
ndw或ndW: 删除光标处开始及其后的 n-1 个字do: 删至行首d$: 删至行尾ndd: 删除当前行及其后 n-1 行x或X: 删除一个字符, x 删除光标后的, 而 X 删除光标前的Ctrl+u: 删除输入方式下所输入的文本
2.7. 搜索及替换命令
/pattern: 从光标开始处向文件尾搜索 pattern?pattern: 从光标开始处向文件首搜索 patternn: 在同一方向重复上一次搜索命令N: 在反方向上重复上一次搜索命令- :
s/p1/p2/g: 将当前行中所有 p1 均用 p2 替代 - :
n1,n2s/p1/p2/g: 将第 n1 至 n2 行中所有 p1 均用 p2 替代 - :
g/p1/s//p2/g: 将文件中所有 p1 均用 p2 替换
2.8. 选项设置
- all: 列出所有选项设置情况
- term: 设置终端类型
- ignorance: 在搜索中忽略大小写
- list: 显示制表位 (Ctrl+I) 和行尾标志($)
- number: 显示行号
- report: 显示由面向行的命令修改过的数目
- terse: 显示简短的警告信息
- warn: 在转到别的文件时若没保存当前文件则显示 NO write 信息
- nomagic: 允许在搜索模式中, 使用前面不带 “” 的特殊字符
- nowrapscan: 禁止 vi 在搜索到达文件两端时, 又从另一端开始
- mesg: 允许 vi 显示其他用户用 write 写到自己终端上的信息
2.9. 最后行方式命令
: n1,n2 co n3: 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下: n1,n2 m n3: 将 n1 行到 n2 行之间的内容移至到第 n3 行下- : n1,n2 d : 将 n1 行到 n2 行之间的内容删除
- : w : 保存当前文件
- : e filename: 打开文件 filename 进行编辑
- : x: 保存当前文件并退出
- : q: 退出 vi
- : q!: 不保存文件并退出 vi
- : !command: 执行 shell 命令 command
- : n1,n2 w!command: 将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之, 若不指定 n1, n2, 则表示将整个文件内容作为 command 的输入
- : r!command: 将命令 command 的输出结果放到当前行
2.10. 寄存器操作
- "?nyy: 将当前行及其下 n 行的内容保存到寄存器? 中, 其中? 为一个字母, n 为一个数字
- "?nyw: 将当前行及其下 n 个字保存到寄存器? 中, 其中? 为一个字母, n 为一个数字
- "?nyl: 将当前行及其下 n 个字符保存到寄存器? 中, 其中? 为一个字母, n 为一个数字
- "?p: 取出寄存器? 中的内容并将其放到光标位置处。这里? 可以是一个字母, 也可以是一个数字
- ndd: 将当前行及其下共 n 行文本删除, 并将所删内容放到 1 号删除寄存器中。

本文详细介绍了Vim编辑器的常用快捷键,包括光标移动、文本删除与复制、查找与替换等操作,以及Linux下vi编辑器的各种命令,如进入与退出、移动光标、文本插入与删除、搜索替换等,旨在帮助用户提高编辑效率。


被折叠的 条评论
为什么被折叠?



