Skip to content

vi 和 vim 基本使用方法

vi(Visual Editor)和vim(Vi IMproved) 都是基于模式的文本编辑器,这意味着你在编辑文本时需要在不同的模式之间切换。以下是 vivim 的一些基本使用方法,主要集中在命令模式、插入模式和末行模式上。

vi 和 vim 的区别

vi(Visual Editor)和vim(Vi IMproved)都是文本编辑器,用于在 UNIX 和类 UNIX 系统中编辑文本文件。它们有许多共同点,但也有一些关键的区别:

  1. 功能性

    • vi:是最初 UNIX 系统上的标准文本编辑器,功能较为基本。
    • vim:是在 vi 的基础上增强的版本,包含了很多额外的功能,比如代码补全、语法高亮、可撤销/重做、多窗口、多标签等。
  2. 可定制性

    • vi:定制性较弱,只提供基本的文本编辑功能。
    • vim:支持广泛的定制,包括宏、插件、综合的脚本语言等。
  3. 用户界面

    • vi:通常只有一种工作模式,界面简洁。
    • vim:可以通过各种插件和设置调整界面,提供了更多的视觉辅助功能,如代码折叠、颜色方案等。
  4. 兼容性和可用性

    • vi:几乎在所有 UNIX 和 Linux 系统上都是预装的,确保即使在最基础的系统安装中也能使用。
    • vim:虽然现在也很普遍,但在某些基础系统中可能需要单独安装。
  5. 命令和使用方法

    • 在基本的文本编辑命令上,vim 完全兼容 vi。但是,vim 添加了很多扩展命令和快捷方式,使得编辑工作更加高效。

简而言之,vim 提供了比 vi 更强大、更灵活的功能,是一个更现代化的版本。对于需要高级文本编辑功能的用户来说,vim 是更好的选择。对于习惯使用基本功能的用户或在非常受限的环境中工作的用户,vi 可能是更合适的选择。

进入和退出编辑器

  • 打开文件:在命令行中,输入 vi filename 或 vim filename 来打开文件。
  • 退出编辑器
    • :q —— 退出编辑器(如果没有做修改)。
    • :q! —— 强制退出(不保存修改)。
    • :wq:x —— 保存文件并退出。
    • ZZ —— 如果文件被修改过,保存并退出。

命令模式

当你启动 vivim 时,默认处于命令模式。在命令模式下,你可以执行各种命令来移动光标、删除文本、复制粘贴等,但不能直接编辑文本。

  • 移动光标
    • h:向左移动光标。
    • j:向下移动光标。
    • k:向上移动光标。
    • l:向右移动光标。
    • w:移动到下一个单词的开头。
    • e:移动到当前或下一个单词的末尾。
    • b:移动到上一个单词的开头。
    • 0(零):移动到当前行的开头。
    • ^:移动到当前行的第一个非空白字符。
    • $:移动到当前行的末尾。
    • G:移动到文件的最后一行。
    • gg:移动到文件的第一行。
  • 编辑命令
    • x:删除当前光标位置的字符。
    • dd:删除当前行。
    • dw:删除从当前光标到下一个单词的开头。
    • d$:删除从当前光标到行末。
    • yy:复制当前行。
    • p:在光标之后粘贴。
    • P:在光标之前粘贴。
    • u:撤销最后一次更改。
    • Ctrl + r:重做最后一次撤销。
  • 搜索和替换
    • /word:从当前光标位置向下搜索 word
    • ?word:从当前光标位置向上搜索 word
    • n:重复上一次搜索。
    • N:反向重复上一次搜索。
    • :%s/old/new/g:在全文中替换 oldnew

插入模式

在命令模式下,按 i 键可以进入插入模式,此时你可以开始输入文本。

  • i:在光标位置之前开始插入文本。
  • a:在光标位置之后开始插入文本。
  • o:在当前行的下一行开始插入新行。
  • O:在当前行的上一行开始插入新行。
  • Esc:退出插入模式回到命令模式。

末行模式

在命令模式下,按 : 键可以进入末行模式,此时你可以输入命令来保存文件、退出编辑器、执行搜索和替换等。

  • :w:保存文件。
  • :q:退出编辑器。
  • :wq:x:保存并退出编辑器。
  • :q!:强制退出编辑器,不保存更改。
  • :set number:显示行号。
  • :set nonumber:隐藏行号。
  • :help:显示帮助文档。

这些是 vivim 的基本使用方法。vim 还有很多高级功能,如多文件编辑、宏录制、插件支持等,但这些基本命令足以让你开始使用这两个编辑器。