vi/vim编辑器

举报
白茶加冰 发表于 2023/09/15 23:41:02 2023/09/15
【摘要】 vi和vim区别vi 和 vim 是常见的文本编辑器,以下是它们之间的区别:功能和特性:vi 是最早的版本,是在早期Unix系统中广泛使用的编辑器。vi 相对较简单,功能主要集中在基本的文本编辑操作上,如插入、删除、查找、替换等。它没有语法高亮、分屏编辑等一些现代编辑器常见的功能。vim(Vi IMproved)是 vi 的增强版本,它保留了 vi 的基本功能,同时添加了大量的高级特性和扩...

image.png

vi和vim区别

vivim 是常见的文本编辑器,以下是它们之间的区别:

  1. 功能和特性:

    • vi 是最早的版本,是在早期Unix系统中广泛使用的编辑器。vi 相对较简单,功能主要集中在基本的文本编辑操作上,如插入、删除、查找、替换等。它没有语法高亮、分屏编辑等一些现代编辑器常见的功能。
    • vim(Vi IMproved)是 vi 的增强版本,它保留了 vi 的基本功能,同时添加了大量的高级特性和扩展。vim 支持语法高亮、代码折叠、多窗口编辑、多级撤销、宏录制等,还有许多插件和定制选项可用。
  2. 用户界面:

    • vivim 都使用基于文本终端的字符界面。它们没有图形界面,而是在终端中使用命令和键盘快捷键来操作和编辑文本。
  3. 兼容性:

    • vi 通常是系统默认的编辑器,可以在几乎所有类Unix系统中使用,包括 Linux 和 macOS。
    • vim 是对 vi 的增强,并且是一个独立的项目。它也可以在类Unix系统中使用,并且可以在各种平台上进行编译和安装,如 Linux、macOS、Windows 等。因此,vim 是更广泛使用的版本。

总结来说,vi 是最初的版本,相对简单,并且几乎在所有类Unix系统中可用。而 vimvi 的增强版本,提供更多功能和特性,是更强大和广泛使用的文本编辑器。对于大多数用户来说,vim 是更好的选择,尤其是对于需要更复杂编辑任务的开发者和程序员。

vi和vim三种模式

三种模式转换

vivim 都具有三种基本模式,它们是普通模式(Normal Mode),插入模式(Insert Mode)和命令行模式(Command-Line Mode)。这些模式之间的切换如下:

  1. 普通模式(Normal Mode):这是 vivim 的默认模式,用于移动光标、复制、粘贴、删除等编辑操作。

    • 从插入模式(Insert Mode)切换到普通模式:按下 Esc 键。
    • 从命令行模式(Command-Line Mode)切换到普通模式:按下 Esc 键。
  2. 插入模式(Insert Mode):在这个模式下,你可以输入和编辑文本。

    • 从普通模式切换到插入模式:按下 i 键。这将光标放置在当前位置,以便开始在光标后插入文本。
    • 从普通模式切换到插入模式并在行首插入:按下 I 键。
    • 从普通模式切换到插入模式并在下一行插入:按下 o 键。
  3. 命令行模式(Command-Line Mode):在这个模式下,你可以执行一些编辑器的命令和操作。

    • 从普通模式切换到命令行模式:按下 :(冒号)键。
    • 从插入模式切换到命令行模式:按下 Esc 键,然后按下 :(冒号)键。

在命令行模式下,你可以输入各种命令,如保存文件、退出编辑器、查找替换等。例如:

  • 保存文件:在命令行模式下输入 :w,然后按下回车。
  • 退出编辑器:在命令行模式下输入 :q,然后按下回车。
  • 同时保存并退出:在命令行模式下输入 :wq,然后按下回车。

要注意,在 vim 中,还有一个可视模式(Visual Mode),用于高亮选择文本块。你可以使用 v 键从普通模式切换到可视模式。

通过合理的切换和使用这些模式,可以更高效地进行文本编辑和操作。

普通模式快捷键

当然,以下是普通模式下常用的一些快捷键列表:

  1. 光标移动:

    • h:左移一个字符。
    • j:下移一行。
    • k:上移一行。
    • l:右移一个字符。
    • 0:移动到行首。
    • ^:移动到行首第一个非空字符。
    • $:移动到行尾。
    • gg:移动到文档开头。
    • G:移动到文档末尾。
    • w:向前移动到下一个单词的开头。
    • b:向后移动到上一个单词的开头。
    • %:在括号之间进行跳转。
  2. 文本编辑:

    • i:在当前光标位置之前插入文本。
    • a:在当前光标位置之后插入文本。
    • o:在当前行之后打开新行并进入插入模式。
    • O:在当前行之前打开新行并进入插入模式。
    • x:删除光标处的字符。
    • r:替换光标处的字符。
    • u:撤销上一次操作。
    • Ctrl+r:恢复上一次被撤销的操作。
  3. 复制粘贴与删除:

    • yy:复制当前行。
    • dd:删除当前行。
    • p:粘贴剪贴板内容到光标后。
    • P:粘贴剪贴板内容到光标前。
    • yw:复制从光标处到单词结尾的字符。
    • y$:复制从光标处到行尾的字符。
    • dw:删除从光标处到下一个单词开头的字符。
    • d$:删除从光标处到行尾的字符。
    • x:删除光标处的字符。
  4. 查找与替换:

    • /keyword:向前查找关键字。
    • ?keyword:向后查找关键字。
    • n:跳转到下一个匹配项。
    • N:跳转到上一个匹配项。
    • :s/old/new:替换当前行第一个匹配项。
    • :s/old/new/g:替换当前行所有匹配项。
    • :%s/old/new/g:替换整个文档中的所有匹配项。

命令行模式快捷键

  • :w:保存当前文档。
  • :w <filename>:另存为指定的文件名。
  • :r <filename>:读取指定文件名的文档插入到当前位置。
  • :q :退出编辑器,前提是文档未做任何修改。
  • :q!:不保存修改直接退出编辑器。
  • :wq:保存修改并退出编辑器。
  • :set nu:在行首显示行号。
  • :set nonu:不显示行号。
  • :set hlsearch:设置搜索结果高亮显示。
  • !command:回到终端窗口,执行command命令,按回车键可切回vim。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。