vi/vim编辑器

2023年 9月 26日 105.4k 0

vi和vim区别

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

  • 功能和特性:

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

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

    • 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)。这些模式之间的切换如下:

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

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

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

    • 从普通模式切换到命令行模式:按下 :(冒号)键。
    • 从插入模式切换到命令行模式:按下 Esc 键,然后按下 :(冒号)键。
  • 在命令行模式下,你可以输入各种命令,如保存文件、退出编辑器、查找替换等。例如:

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

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

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

    普通模式快捷键

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

  • 光标移动:

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

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

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

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

    • :w:保存当前文档。
    • :w :另存为指定的文件名。
    • :r :读取指定文件名的文档插入到当前位置。
    • :q :退出编辑器,前提是文档未做任何修改。
    • :q!:不保存修改直接退出编辑器。
    • :wq:保存修改并退出编辑器。
    • :set nu:在行首显示行号。
    • :set nonu:不显示行号。
    • :set hlsearch:设置搜索结果高亮显示。
    • !command:回到终端窗口,执行command命令,按回车键可切回vim。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论