# IntelliJ IDEA 中的 Vim

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

[IdeaVim](https://plugins.jetbrains.com/plugin/164-ideavim) 是 IntelliJ IDEA 编辑器的 Vim 引擎。 它支持普通模式、插入模式和可视模式，命令行模式和 Ex 模式，Vim 正则表达式和配置，以及其他功能。

Procedure: 安装 IdeaVim 插件

1. 在   设置  对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）中，选择   插件  。

2. 找到   IdeaVim   插件并点击   安装  。

3. 重启 IntelliJ IDEA。

重启 IntelliJ IDEA 后，Vim 将被启用，编辑器开始以 Vim 模式运行。 若要禁用它，请在主菜单中取消选择  `工具 | Vim` 。

Procedure: 配置快捷键

Vim 和 IntelliJ IDEA 都是以键盘为中心的。 您的 IntelliJ IDEA 中的键映射可能与 Vim 的组合键冲突。 要解决此问题，请选择您喜欢用于不同操作的快捷方式。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `编辑器 | Vim` 。

2. 查找快捷键及对应的 IDE 操作，然后选择在使用 Vim 时的处理方式：

![Vim 设置](https://resources.jetbrains.com/help/img/idea/2026.3/vim_shortcut.png)

* 未定义 ：显示弹出通知，建议重新定义 IDE 快捷键或在设置中配置处理程序。 ![快捷键通知](https://resources.jetbrains.com/help/img/idea/2026.3/vim_banner.png)

* IDE ：执行与此快捷键关联的 IDE 操作。

* Vim ：将其作为 Vim 快捷键处理。

## 编辑模式

在 Vim 中，当处于 [Normal mode](http://vimdoc.sourceforge.net/htmldoc/intro.html#Normal)时，文本光标为块状。

![Vim Normal 模式](https://resources.jetbrains.com/help/img/idea/2026.3/ij_vim_normal.png)

要切换到 [Insert mode](http://vimdoc.sourceforge.net/htmldoc/insert.html#Insert)，请按  `i` ，光标会变成一条线。

![Vim 插入模式](https://resources.jetbrains.com/help/img/idea/2026.3/ij_vim_insert.png)

在此模式下，您可以编写新代码或修改现有代码。 您还可以进入其他 Vim 模式：例如，按  `R`  切换到 [替换模式](http://vimdoc.sourceforge.net/htmldoc/insert.html#Replace)。

要返回到正常模式，请按 `Escape` (Windows), `⎋` (macOS), `⎋` (IntelliJ IDEA Classic (macOS)), `⎋` (macOS System Shortcuts), `Escape` (XWin), `Escape` (GNOME), `Escape` (KDE), `Escape, Escape` (Emacs), `Escape` (Sublime Text), `⎋` (Sublime Text (macOS)), `Escape` (Visual Studio), `⎋` (Visual Studio (macOS)), `Escape` (NetBeans), `Escape` (Eclipse), `⎋` (Eclipse (macOS))。

## Vim 配置

Vim 使用  `vimrc`  文件进行配置。 同样，该   IdeaVim   插件使用具有相同语法的  `ideavimrc`  文件。

Procedure: 创建一个 .ideavimrc 文件

* 在 IDE 窗口底部的状态栏中，点击   IdeaVim   小部件并选择   创建 ~/.ideavimrc  。

![在组件中创建 .ideavimrc 文件](https://resources.jetbrains.com/help/img/idea/2026.3/ideavim_widget.png)

IntelliJ IDEA 创建文件并在编辑器中打开。 您可以稍后使用此小部件快速访问您的  `ideavimrc` 文件。

> **Tip:**
> 您可以在此 [GitHub 讨论](https://jb.gg/share-ideavimrc)中找到  `ideavimrc`  文件的示例。

配置文件将根据操作系统在以下位置之一创建：

Windows:
`%HOMEPATH%\_ideavimrc`

macOS:
`~/.ideavimrc`

Unix / Linux:
`~/.ideavimrc`

> **Note:**
> IntelliJ IDEA 查找  `ideavimrc`  的位置取决于  `user.home`  JVM 选项，默认设置为用户的主目录。 如需更多信息，请参阅 [JVM 选项](tuning-the-ide.html#configure-jvm-options)。

Procedure: 如果配置已存在

如果您已经有一个  `vimrc`  文件包含您的配置，您可以执行以下操作之一：

* 在您的  `ideavimrc`  文件中使用  `source`  命令包含来自  `vimrc`  的配置：

```PLAINTEXT
source ~/.vimrc

```

这样，您还可以在  `ideavimrc`  文件中包含其他命令，这些命令将仅应用于 IntelliJ IDEA 中的 Vim，而不会影响实际的 Vim 配置。

* 如果您不想使用您的 Vim 配置，您可以将  `.vimrc`  重命名为  `.ideavimrc` 。

* 如果您不想修改 IntelliJ IDEA 中的 Vim 配置，可以创建  `ideavimrc`  作为  `vimrc`  的符号链接：

Windows:

```SHELL
mklink _ideavimrc _vimrc

```

macOS:

```SHELL
ln -s "$HOME/.vimrc" "$HOME/.ideavimrc"

```

Unix / Linux:

```SHELL
ln -s "$HOME/.vimrc" "$HOME/.ideavimrc"

```

## IDE 操作

IdeaVim  允许您使用 action ID 映射 IDE 功能。

Procedure: 了解操作 ID

1. 按 `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS)) 并输入  `IdeaVim: Track Action Ids` 。

2. 使用右侧的切换开关启用该功能。

![启用 Track Action Ids 功能](https://resources.jetbrains.com/help/img/idea/2026.3/ij_ideavim_track_id.png)

现在，IDE 将在屏幕底部的弹出通知和   [通知](notifications.html)   工具窗口中显示您用鼠标点击的操作的 ID。 请注意，有些操作没有 ID。

![操作 ID 已显示](https://resources.jetbrains.com/help/img/idea/2026.3/ij_ideavim_ids_displayed.png)

3. 点击   复制操作 ID   复制 ID 或   停止跟踪   禁用跟踪模式。

Procedure: 在 ideavimrc 中映射一个 action

1. 在  `ideavimrc` 文件中，使用  `map` 命令和  `<Action>` 关键字映射一个操作，例如：  `map \r <Action>(ReformatCode)`

2. 按 `Ctrl+Shift+O` (Windows), `Ctrl+Shift+O` (macOS), `Ctrl+Shift+O` (IntelliJ IDEA Classic (macOS)), `Ctrl+Shift+O` (macOS System Shortcuts), `Ctrl+Shift+O` (XWin), `Ctrl+Shift+O` (GNOME), `Ctrl+Shift+O` (KDE), `Ctrl+Shift+O` (Emacs), `Ctrl+Shift+O` (Sublime Text), `Ctrl+Shift+O` (Sublime Text (macOS)), `Ctrl+Shift+O` (Visual Studio), `Ctrl+Shift+O` (Visual Studio (macOS)), `Ctrl+Shift+O` (NetBeans), `Ctrl+Shift+O` (Eclipse), `Ctrl+Shift+O` (Eclipse (macOS)) 重新加载更改。

> **Tip:**
> 您还可以将操作作为 Ex 命令执行。 如需更多信息，请参考 [IdeaVim 文档](https://jb.gg/abva4t)。

## See also

### 外部链接

[IdeaVim documentation](https://jb.gg/abva4t) [Examples of ideavimrc](https://jb.gg/share-ideavimrc)

