---
title: Modes in Vim
localeTitle: Vim中的模式
---
# Vim模式

因为Vim专注于改变现有代码，就像编写新代码一样 代码，它被分成几种模式，每种模式都有不同的用途。

### 正常模式

默认情况下，Vim以“正常”模式启动。 按`Esc`或`<C-[>`可以从其他模式访问正常模式。

在正常模式下，按键操作无法正常工作。也就是说，它们不会在文档中插入文本;代替， 某些按键可以：

#### 移动光标

*   **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`或`<C-[>`

### 视觉模式

可视模式用于选择文本，类似于单击和拖动的方式 鼠标表现。选择文本允许命令仅应用于选择，例如复制， 删除，替换等。

要进行文本选择：

*   按`v`进入可视模式，这也将标记一个起始选择点
*   将光标移动到所需的结束选择点; vim将提供视觉效果 突出显示文本选择

可视模式还有以下变体：

*   `V`进入可视线模式，这将按行进行文本选择
*   `<CV>`进入可视块模式，这将按块进行文本选择;移动 光标将选择文本的矩形

要退出可视模式并返回正常模式，请按`Esc`或`<C-[>` 。

视觉模式实际上具有多种子类型： _视觉_ ， _块视觉_和_线性视觉_

*   _视觉_ ：如上所述。按`v`进入
*   _block-visual_ ：选择任何矩形区域。按`<ctrl>+v`进入
*   _linewise-visual_ ：始终选择实线。按`<shift>+v`进入

### 命令模式

命令模式具有各种命令，可以执行普通模式 不能轻易做到。要进入命令模式，请从正常模式键入'：'然后 键入应该出现在窗口底部的命令。 例如，要执行全局查找和替换类型`:%s/foo/bar/g`要替换 所有'foo'都带'bar'

*   `:`进入命令模式
*   `%`所有行
*   `s`意味着替代
*   `/foo`是正则表达式来寻找要替换的东西
*   `/bar/`是正则表达式来替换东西
*   `/g`表示全局，否则每行只执行一次

Vim有许多其他方法，您可以在帮助中阅读 文档， `:h`或`:help` 。

### 替换模式

替换模式允许您通过直接键入来替换现有文本。 在进入此模式之前，进入正常模式并放置光标 在您要替换的第一个字符的顶部。然后按'R'（大写R）来 进入替换模式。现在，无论您键入什么，都将替换现有文本。该 光标自动移动到下一个字符，就像在插入模式下一样。该 唯一的区别是您键入的每个字符都将替换现有字符。