vim 快捷键

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

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 编辑时发生系统崩溃, 恢复 filename
  • vi filename….filename: 打开多个文件, 依次进行编辑

2.3. 移动光标类命令

  • h : 光标左移一个字符
  • l : 光标右移一个字符
  • space: 光标右移一个字符
  • Backspace: 光标左移一个字符
  • kCtrl+p: 光标上移一行
  • jCtrl+n : 光标下移一行
  • Enter : 光标下移一行
  • wW : 光标右移一个字至字首
  • bB : 光标左移一个字至字首
  • eE : 光标右移一个字至字尾
  • ) : 光标移至句尾
  • ( : 光标移至句首
  • }: 光标移至段落开头
  • {: 光标移至段落结尾
  • nG: 光标移至第 n 行首
  • n+: 光标下移 n 行
  • n-: 光标上移 n 行
  • n$: 光标移至第 n 行尾
  • H : 光标移至屏幕顶行
  • M : 光标移至屏幕中间行
  • L : 光标移至屏幕最后行
  • 0: (注意是数字零)光标移至当前行首
  • $: 光标移至当前行尾

2.4. 屏幕翻滚类命令

  • G: 翻到文本最后, 大写的 G, 即 shift + g
  • Ctrl+u: 向文件首翻半屏
  • Ctrl+d: 向文件尾翻半屏
  • Ctrl+f: 向文件尾翻一屏
  • Ctrl+b; 向文件首翻一屏
  • nz: 将第 n 行滚至屏幕顶部, 不指定 n 时将当前行滚至屏幕顶部。

2.5. 插入文本类命令

  • i : 在光标前
  • I : 在当前行首
  • a: 光标后
  • A: 在当前行尾
  • o: 在当前行之下新开一行
  • O: 在当前行之上新开一行
  • r: 替换当前字符
  • R: 替换当前字符及其后的字符, 直至按 ESC 键
  • s: 从当前光标位置处开始, 以输入的文本替代指定数目的字符
  • S: 删除指定数目的行, 并以所输入文本代替之
  • ncwnCW: 修改指定数目的字
  • nCC: 修改指定数目的行

2.6. 删除命令

  • ndwndW: 删除光标处开始及其后的 n-1 个字
  • do: 删至行首
  • d$: 删至行尾
  • ndd: 删除当前行及其后 n-1 行
  • xX: 删除一个字符, x 删除光标后的, 而 X 删除光标前的
  • Ctrl+u: 删除输入方式下所输入的文本

2.7. 搜索及替换命令

  • /pattern: 从光标开始处向文件尾搜索 pattern
  • ?pattern: 从光标开始处向文件首搜索 pattern
  • n: 在同一方向重复上一次搜索命令
  • 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 号删除寄存器中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值