查看原文
其他

在 WebStorm 和其他 JetBrains IDE 中获得 Vim 的强大功能 | 实用技巧

IdeaVim JetBrains 2023-02-21


IdeaVim 插件已经存在了一段时间,帮助开发者利用 Vim 的强大功能扩展 JetBrains IDE。JetBrains 内部有一个专属团队维护此插件,这为您提供了两项优势:以键盘为中心的编辑器和 IDE 的支持


Vim 为文本中的跳转和修改带来了许多灵活性。移动操作使其成为最受开发者欢迎的文本编辑器之一。在 Vim 中编辑文本非常高效,无需鼠标即可快速导航。


在这篇博文中,我们将详细介绍 IdeaVim 插件、其主要功能以及上手方法



安装 IdeaVim 插件


要安装 IdeaVim 插件,首先转到 Preferences / Settings | Plugins(偏好设置 / 设置 | 插件)并在 Marketplace 选项卡下搜索 IdeaVim。从这里可以安装插件。


然后,就可以在 IDE 中使用 Vim 了。



使用 IdeaVim 时的主要不同


如果您已经使用过 Vim,那么对 IdeaVim 的操作一定不会感到陌生。如果没有使用过,可以参考以下基础知识更快入门。


初次使用 Vim


如果您不熟悉 Vim,请做好准备!这里的工作流体验可能与您习惯的完全不同。Vim 极度以键盘为中心,Vim 键盘绑定需要一些时间才能适应。关于 Vim,您首先需要了解的是它有不同的模式:普通插入可视命令


普通模式:Esc

普通模式是 Vim 的独特之处。在此模式下,按键不会更改文本。它们就像浏览编辑器所用的快捷键。普通模式下的文本光标会比平时更宽。


基本移动命令包括:

  • h– 将光标向左移动一个字符。

  • l– 将光标向右移动一个字符。

  • k– 将光标向上移动一行。

  • j– 将光标向下移动一行。

  • w 向前跳一个单词。

  • b – 向后跳一个单词。

  • 0 – 跳到行首。

  • $– 跳到行尾。

这不是移动命令的完整列表,但应该足够帮助您入门并突出一些最常见的光标移动选项。您也可以将移动命令与数字相结合。例如,8j 会将光标向下移动八行,6k 会将光标向后移动六行。


插入模式:i

插入模式是大多数人可能已经熟悉的行为。在插入模式下,字符将在您键入时添加,与常规文本编辑器相同。要切换到插入模式,您需要使用插入命令。插入模式下的文本光标较窄。


基本插入命令包括:

  • i – 将 vim 置于插入模式,无论光标在哪里。

  • a – 将光标移动到当前字符之后并进入插入模式。

  • o – 在当前行下方插入新行并在新行上进入插入模式。


使用大写变体时,这些命令的效果略有不同:

  • Shift+I – 将光标移动到行首并进入插入模式。

  • Shift+A – 将光标移动到行尾并进入插入模式。

  • Shift+O– 在上方插入新行并在新行上进入插入式。


可视模式:v

另一个主要模式类型是可视模式。在可视模式下,您可以使用移动命令调整选区,然后使用其他命令,如用于删除所选文本的 `d` 或用于复制高亮显示文本的 `y`(来自单词“yank”)。总之,此模式允许您选择文本并在文本上执行命令。


基本可视命令包括:

  • v– 高亮显示文本光标所在的字符。

  • Shift + V – 高亮显示整行。

  • d – 删除高亮显示文本。

  • y – 复制高亮显示文本。


命令模式::

您可以使用命令模式在代码中执行各种命令。按:可以进入命令模式这将在编辑器窗口底部打开一个命令框,可供输入命令。同样,您可以使用/在编辑器窗口底部打开一个搜索框,在其中搜索模式。


基本命令包括:

  • :w – 保存文件

  • :100 – 跳转到第 100 行

  • / – 搜索

这些只是 IdeaVim 中一些非常基本的按键映随着您对 Vim 式的移动越来越熟悉,文本编辑器导航也会变得更快。IdeaVim 支持许多其他可用于 Vim 的命令,在经过足够实践后您也可以有效利用。


初次使用 JetBrains IDE


IDE 上最特别的地方可能是重构、调试和测试功能。JetBrains IDE 不需要您为特定语言支持和快速搜索设置环境。您还可以使用实时模板建议和代码补全。


Vim 与 IdeaVim 之间的一个关键区别是,IdeaVim 默认不会在编辑器之外工作。如果您想要完整的 Vim 体验,可以使用几个插件来扩展 IdeaVim 并使体验更像 Vim。


额外 Vim 插件

EasyMotion

模拟 vim-easymotion,目标很简单:将跳转到代码中任何点所需的击键次数降至最低。


首先,您需要安装一个额外插件。然后,您需要将以下代码段添加到 .ideavimrc 文件中:

Plug 'easymotion/vim-easymotion'

NERDTree

NERDTree 插件支持以 Vim 式按键绑定导航项目窗格。它模拟的是 NERDTree。


将以下代码段添加到您的 .ideavimrc 文件:

Plug 'preservim/nerdtree'
map <c-t> :NERDTree<CR>

您可以使用 .ideavimrc 文件为 NERDTree 添加更多命令


这些是可使体验更像 Vim 的插件扩展程序的一部分。此页面包含适用于 IdeaVim 的一些基本 Vim 插件的完整列表。



搭配使用 IdeaVim

和 JetBrains IDE


配置 ideavimrc 文件


IdeaVim 与 Vim 之间的一个关键区别是,JetBrains IDE 使用 ~/.ideavimrc配置文件而不是 ~/.vimrc


如果您已经是 Vim 用户并且已经根据自己的喜好设置了 vimrc 文件,也可以在 IdeaVim 中使用这些设置。将source ~/.vimrc添加到 ideavimrc 文件即可。


如果这是您第一次使用 Vim,您可能需要特别注意这一部分。在 Vim 中,通过 IdeaVim 扩展程序,您可以设置一个将在 IDE 启动时执行的配置文件。您可以向此文件添加命令集,这让您基本上能够配置设置。


您需要自己在主目录中创建此文件。


创建 ideavimrc 文件

在状态栏中,您可以找到一个 IdeaVim 图标。您只需要点击 IdeaVim 图标并选择 Create ~/.ideavimrc 。然后,您可以在 IDE 中修改此文件。查看此讨论中的示例了解其他人如何设置。


将 Vim 快捷键绑定到 IDE 操作


IdeaVim 可以充当 Vim 与 IDE 之间的桥梁,为您提供双重优势。您可以将 Vim 快捷键绑定到 IDE 操作,例如map \r <Action>(ReformatCode)这意味着当您使用 \r时,您可以在 IDE 中调用 Reformat code(重新格式化代码),它将使用 IDE 代码重新格式化功能。


IdeaVim 添加了各种命令,用于通过 :map 命令映射将 IDE 操作作为可执行命令列出和执行。


对于映射,您可以使用特殊的<Action>关键字。例如:map gh <Action>(ShowErrorDescription)


这将在您按下gh时执行悬停。


一些流行操作包括:

  • QuickJavaDoc – Quick Documentation(快速文档,适用于所有语言)。

  • ShowErrorDescription– 显示文本光标下(光标悬停)错误的描述。

  • QuickImplementations– 提供一个工具提示,包含有关文本光标下的符号的更多详细信息。


注意:如果您只想使用一次,也可以从命令框运行操作。


要运行操作,请使用以下序列 ::action {action_id}此命令将对代码运行相应操作。例如,:action ShowErrorDescription将从 IDE 运行 Show Error Description(显示错误描述)操作。


ideajoin

JetBrains IDE 具有 Smart Join(智能联接)功能,该功能可以理解代码上下文,并在联接时适当格式化代码。因此,使用标准 Vim 联接命令j时,IDE 仍将使用 Smart Join(智能联接)功能。要启用此功能,只需将set ideajoin添加到 ~/.ideavimrc 文件。此处包含 Smart Join(智能联接)处理代码的示例。


ideaput

最后要提到的一点是为剪贴板启用 ideaput。这将允许您使用 IDE 插入,让您可以从剪贴板正常粘贴内容。


学习 Vim 按键映射


熟练使用 Vim 需要大量练习。如果您想在 IDE 中熟练掌握 Vim 式编辑,最好完全代入并且只使用 Vim。但这样工作有时可能会妨碍您的工作效率。如果您想停止 Vim 模拟,可以随时点击状态栏中的 IdeaVim 图标并取消选择 Enabled(已启用)来执行此操作。


额外提示:如果您很难记住 Vim 操作,可以在网上找到一些 Vim 按键映射速查表图像。然后,在 IDE 中将找到的图像设为背景。打开 Preferences / Settings | Appearance & Behavior | Appearance(偏好设置 / 设置 | 外观与行为 | 外观),点击 Background Image(背景图像)按钮。


我们希望本文可以帮助所有想要将 Vim 与 WebStorm 或任何其他 JetBrains IDE 一起使用的人。如果您想分享提示或技巧,请给我们留言。如果您喜欢此类内容并希望了解有关 IdeaVim 的更高级指南,也请告诉我们。



本博文英文原作者:David Watson

更多阅读推荐

新发布

Fleet 公共预览版

代码质量平台Qodana | Kotlin 1.7.0

JetBrains IDE 和 .NET 工具2022.2更新

Space On-Premises(本地部署版)Beta


调研报告

Python开发者年度调查Go语言现状调查报告

Kotlin Multiplatform使用现状

代码审查工具报告2021开发者生态系统报告


IDE 使用技巧

IntelliJ IDEA代码注释 | 10个妙招解放鼠标

提高效率的5个GoLand快捷键

CLion调试器技巧10大必会WebStorm快捷键

⏬ 戳「阅读原文」了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存