Linux vi/vim以及三种模式常用快捷键

vi和vim

vivim 都是在 Linux 系统中的文本编辑器。vim 实际上是 vi 的增强版,提供了更多的功能和改进。

  1. vi

    • vi 是一个经典的文本编辑器,几乎在每个 Linux 发行版中都预装了。
    • vi 的使用可以分为三个主要模式:命令模式(Command mode)、插入模式(Insert mode)和底行模式(Ex mode)。
    • 命令模式下可以执行文件编辑、搜索、复制粘贴等操作。
    • 插入模式下可以直接输入和编辑文本内容。
    • 底行模式用于保存文件、退出 vi 等高级操作。
    • 例如,使用 vi filename 命令打开一个文件,在命令模式下按下 “i” 进入插入模式,进行文本编辑,然后按下 Esc 键回到命令模式,在命令模式下输入 “:wq” 并按回车键保存并退出。
  2. vim

    • vim(Vi IMproved)是对 vi 的增强版本,具有更多的功能和改进。
    • vim 拥有 vi 的所有功能,并添加了更多的功能和定制选项。
    • vim 提供了语法高亮、多级撤销、分屏编辑、代码补全等功能,以及大量的插件和扩展性。
    • vi 相比,vim 的学习曲线略高,但它为用户提供了更强大和灵活的编辑环境。
    • 使用 vim 的基本操作与 vi 类似,同时还有更多命令和选项可用。

vi 命令模式

在 vi 的命令模式下,常用的一些快捷键可以提高编辑效率。以下是几个常用的 vi 命令模式快捷键:

  1. 移动光标

    • h:将光标左移一个字符。
    • j:将光标下移一行。
    • k:将光标上移一行。
    • l:将光标右移一个字符。
  2. 文本编辑

    • i:在当前光标位置之前插入文本。
    • a:在当前光标位置之后插入文本。
    • o:在当前行之后插入新行,并进入插入模式。
    • dd:删除当前行。
    • yy:复制当前行。
    • p:粘贴已复制或删除的文本。
  3. 撤销和重做

    • u:撤销上一次操作。
    • Ctrl + r:重做被撤销的操作。
  4. 搜索与替换

    • /keyword:向后搜索指定关键字。
    • ?keyword:向前搜索指定关键字。
    • n:跳到下一个匹配项。
    • N:跳到上一个匹配项。
    • :s/old/new:在当前行替换第一个匹配项。
    • :s/old/new/g:在当前行替换所有匹配项。
    • :%s/old/new/g:在整个文件中替换所有匹配项。
  5. 保存和退出

    • :w:保存文件但不退出 vi。
    • :q:退出 vi(仅在没有修改的情况下)。
    • :wq:保存文件并退出 vi。
    • :q!:强制退出 vi,丢弃所有修改。

vi 插入模式

在vi中,输入模式用于插入和编辑文本。以下是进入输入模式的方法:

  1. 插入模式:在光标位置之前插入文本。

    • i:在当前光标位置之前开始插入文本。
    • a:在当前光标位置之后开始插入文本。
    • I:在当前行的第一个非空字符之前开始插入文本。
    • A:在当前行的末尾开始插入文本。
  2. 追加模式:在光标位置之后追加文本。

    • a:在当前光标位置之后开始追加文本。
    • A:在当前行的末尾开始追加文本。
  3. 打开新行

    • o:在当前行之后插入新行,并进入插入模式。
    • O:在当前行之前插入新行,并进入插入模式。
  4. 替换模式:替换光标所在位置的字符。

    • r:替换光标所在位置的字符。
    • R:一直处于替换模式,可以连续替换多个字符。
  5. 进入输入模式的其他方式

    • s:删除光标所在位置的字符并进入插入模式。
    • S:删除整行并进入插入模式。
    • C:删除从光标位置到行尾的内容并进入插入模式。

输入模式中可以进行文本编辑,并通过快捷键切换到命令模式或者执行保存退出等操作。要注意,在输入模式下,按下 Esc 键可以返回到命令模式。

vi 底行模式

Vi编辑器中的底行模式(Command-line Mode)用于执行一些命令和操作。在底行模式下,可以输入各种命令来执行编辑、搜索、保存和退出等操作。以下是一些常用的Vi底行模式命令:

  1. 保存和退出

    • :w:保存文件但不退出Vi。
    • :wq:保存文件并退出Vi。
    • :xZZ:保存文件并退出Vi(只有在文件有修改的情况下才会保存)。
    • :q:退出Vi(如果有未保存的修改,则无法退出)。
    • :q!:强制退出Vi,放弃所有未保存的修改。
  2. 搜索和替换

    • :/pattern:向后搜索指定的Pattern。
    • :?pattern:向前搜索指定的Pattern。
    • n:跳到下一个匹配项。
    • N:跳到上一个匹配项。
    • :s/old/new:在当前行替换第一个匹配项。
    • :s/old/new/g:在当前行替换所有匹配项。
    • :%s/old/new/g:在全文中替换所有匹配项。
  3. 文本编辑命令

    • :delete:d:删除当前行。
    • :copy:co:复制当前行或指定范围的行。
    • :move:m:移动当前行或指定范围的行。
    • :join:j:合并当前行与下一行。
  4. 显示和设置行号

    • :set number:set nu:显示行号。
    • :set nonumber:set nonu:不显示行号。
  5. 执行外部命令

    • :!command:执行Shell命令,并返回Vi编辑器。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值