--- title: Modes in Vim localeTitle: Vim中的模式 --- # Vim模式 因为Vim专注于改变现有代码,就像编写新代码一样 代码,它被分成几种模式,每种模式都有不同的用途。 ### 正常模式 默认情况下,Vim以“正常”模式启动。 按`Esc`或``可以从其他模式访问正常模式。 在正常模式下,按键操作无法正常工作。也就是说,它们不会在文档中插入文本;代替, 某些按键可以: #### 移动光标 * **h**向左移动一个角色 * **j**向下移动一排 * **k**向上移动一排 * **l**向右移动一个角色 与许多vim命令一样,行移动可以用数字作为前缀来移动s 一次几条线: * **4j**向下移动4行 * **6k**向上移6行 基本单词动作: * **w**移动到下一个单词的开头 * **b**移到上一个单词的开头 * **e**移到单词结尾 * **W**移动到空格后的下一个单词的开头 * **B**在空格之前移动到前一个单词的开头 * **E**在空白之前移动到单词结尾 线路运动的开始/结束: * **0**移动到行的开头 * **$**移动到行尾 #### 操纵文本 #### 进入其他模式 **普通模式**是在使用Vim时应该花费大部分时间的地方。记得, 这就是让Vim与众不同的原因。 在正常模式下,有多种方法可以在打开的文件中移动。此外 要使用光标键四处移动,可以使用`h` (左), `j` (下), `k` (上)和`l` (右)移动。这特别有助于打字打字员 不喜欢在做出改变时离开主行。 您还可以在正常模式下更改单个字符。例如,到 替换单个字符,将光标移到它上面然后按`r` ,然后按 要替换它的角色。同样,您可以删除单个字符 将光标移到它上面然后按`x` 。 要执行撤消操作,请在正常模式下按`u` 。这个改变直到最后 你处于正常模式的时间。如果要重做( _即_撤消撤消),请按 在正常模式下`Ctrl+r` 。 ### 插入模式 这是第二种最常用的模式,也是最熟悉的行为 对大多数人来说进入插入模式后,键入插入字符就像常规字符一样 文本编辑器。您可以使用普通模式下的insert命令输入它。 插入命令包括: * `i`为' **我**插入',这立即将vim切换到插入模式 * `a`关于“ **一** PPEND”,这在当前字符之后将光标移动并进入插入模式 * `o`在当前行下方插入一个新行,并在新行上进入插入模式 这些命令也有大写的变化: * `I`将光标移动到行的开头并进入插入模式 * `A`将光标移动到行尾并进入插入模式 * `O`在当前行上方插入一个新行,并在新行上进入插入模式 在Vim中插入文本的方法还有很多,这里不能列出 但这些是最简单的。另外,请注意保持插入模式的时间过长; Vim是 不是设计用于插入模式的。 要退出插入模式并返回正常模式,请按`Esc`或`` ### 视觉模式 可视模式用于选择文本,类似于单击和拖动的方式 鼠标表现。选择文本允许命令仅应用于选择,例如复制, 删除,替换等。 要进行文本选择: * 按`v`进入可视模式,这也将标记一个起始选择点 * 将光标移动到所需的结束选择点; vim将提供视觉效果 突出显示文本选择 可视模式还有以下变体: * `V`进入可视线模式,这将按行进行文本选择 * ``进入可视块模式,这将按块进行文本选择;移动 光标将选择文本的矩形 要退出可视模式并返回正常模式,请按`Esc`或`` 。 视觉模式实际上具有多种子类型: _视觉_ , _块视觉_和_线性视觉_ * _视觉_ :如上所述。按`v`进入 * _block-visual_ :选择任何矩形区域。按`+v`进入 * _linewise-visual_ :始终选择实线。按`+v`进入 ### 命令模式 命令模式具有各种命令,可以执行普通模式 不能轻易做到。要进入命令模式,请从正常模式键入':'然后 键入应该出现在窗口底部的命令。 例如,要执行全局查找和替换类型`:%s/foo/bar/g`要替换 所有'foo'都带'bar' * `:`进入命令模式 * `%`所有行 * `s`意味着替代 * `/foo`是正则表达式来寻找要替换的东西 * `/bar/`是正则表达式来替换东西 * `/g`表示全局,否则每行只执行一次 Vim有许多其他方法,您可以在帮助中阅读 文档, `:h`或`:help` 。 ### 替换模式 替换模式允许您通过直接键入来替换现有文本。 在进入此模式之前,进入正常模式并放置光标 在您要替换的第一个字符的顶部。然后按'R'(大写R)来 进入替换模式。现在,无论您键入什么,都将替换现有文本。该 光标自动移动到下一个字符,就像在插入模式下一样。该 唯一的区别是您键入的每个字符都将替换现有字符。