如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用

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

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

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

安装 IdeaVim 插件

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_vim

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

使用 IdeaVim 时的主要不同

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

初次使用 Vim

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

普通模式:Esc

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_ide_02

基本移动命令包括:

  • h – 将光标向左移动一个字符。
  • l – 将光标向右移动一个字符。
  • k – 将光标向上移动一行。
  • j – 将光标向下移动一行。
  • w – 向前跳一个单词。
  • b – 向后跳一个单词。
  • 0 – 跳到行首。
  • $ – 跳到行尾。

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

插入模式:i

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_vim_03

基本插入命令包括:

  • i – 将 vim 置于插入模式,无论光标在哪里。
  • a – 将光标移动到当前字符之后并进入插入模式。
  • o – 在当前行下方插入新行并在新行上进入插入模式。

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

  • Shift+I – 将光标移动到行首并进入插入模式。
  • Shift+A – 将光标移动到行尾并进入插入模式。
  • Shift+O – 在上方插入新行并在新行上进入插入式。

可视模式:v

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_软件开发_04

基本可视命令包括:

  • v – 高亮显示文本光标所在的字符。
  • Shift + V – 高亮显示整行。
  • d – 删除高亮显示文本。
  • y – 复制高亮显示文本。

命令模式::

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_软件开发_05

基本命令包括:

  • :w – 保存文件
  • :100 – 跳转到第 100 行
  • / – 搜索

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

初次使用 JetBrains IDE

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

Vim 与 IdeaVim 之间的一个关键区别是,IdeaVim 默认不会在编辑器之外工作。如果您想要完整的 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 中修改此文件。

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_软件开发_06

将 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 文件。

ideaput

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

学习 Vim 按键映射

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

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

如何在使用JetBrains IDE时文本编辑更高效?这个IdeaVim好用_开发工具_07

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/316757.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最新靠谱可用的-Mac-环境下-FFmpeg-环境搭建

最近在尝试搭建 FFmpeg 开发环境时遇到一个蛋疼的事&#xff0c;Google 了 N 篇文章竟然没有一篇是可以跑起来的&#xff01; 少部分教程是给出了自我矛盾的配置&#xff08;是的&#xff0c;按照贴出来的代码和配置&#xff0c;他自己都跑不起来&#xff09;&#xff0c;大部…

[Altium Designer] AD PCB相同模块的布局步骤

针对原理图完全相同的模块布局布线很有帮助&#xff1b;一定要对应模块相同操作才具有可行性。 1、原理图中选取一路模块的元器件&#xff0c;快捷键【T→S】即可在对应的PCB中选取对应的元器件&#xff1b;跳转到PCB&#xff0c;快接方式改变右边属性&#xff0c;【ctrla】 …

代币合约 ERC20 Token接口

代币合约 在以太坊上发布代币就要遵守以太坊的规则&#xff0c;那么以太坊有什么规则呢?以太坊的精髓就是利用代码规定如何运作&#xff0c;由于在以太坊上发布智能合约是不能修改和删除的&#xff0c;所以智能合约一旦发布&#xff0c;就意味着永久有效&#xff0c;不可篡改…

【信号与系统】【北京航空航天大学】实验一、信号的MATLAB表示及信号运算

一、实验目的 1、初步掌握 MATLAB 仿真软件的使用&#xff1b; 2、学习使用 MATLAB 产生基本时域信号&#xff0c;并绘制信号波形&#xff1b; 3、学习利用 MATLAB 实现信号的基本运算&#xff1b; 4、利用 MATLAB 分析常用的连续时域信号。 二、实验内容 1、 生成连续信号 …

AI软件开发:探索原理、挑战与未来趋势

AI软件开发已经成为当前最热门和具有前景的技术领域之一。随着人工智能技术的快速发展&#xff0c;AI软件的应用范围也在不断扩大。本文将主要探讨AI软件开发的原理、挑战以及未来的趋势。 首先&#xff0c;AI软件开发的原理是基于机器学习和深度学习算法。机器学习是一种通过…

腾讯云免费云主机有哪些?2024年更新

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

GC6153步进电机驱动芯片——低噪声、低振动,应用于摄像机,机器人等产品上

GC6153是双通道5V低压步进电机驱动器具有低噪声、低振动的特点&#xff0c;特别适用于相机的变焦和对焦系统&#xff0c;万向节&#xff0c;摇头机和其他精密&#xff0c;低噪声扫描隧道显微镜控制系统。该芯片为每个通道集成了256微步驱动器通过SPI和I2C接口&#xff0c;用户可…

大语言模型向量数据库

大语言模型&向量数据库 LARGE LANGUAGE MODELSA. Vector Database & LLM WorkflowB. Vector Database for LLMC. Potential Applications for Vector Database on LLMD. Potential Applications for LLM on Vector DatabaseE. Retrieval-Based LLMF. Synergized Exampl…

20240112-确定字符串的两半是否相似

题目要求 给定一个偶数长度的字符串s。把这个字符串分成长度相等的两半&#xff0c;前半部分a&#xff0c;后半部分b。 如果两个字符串的元音字母数目相同&#xff08;a、e、i、o、u、A、E、I、O、U&#xff09;&#xff0c;那么它们就是相同的。区分大小写。 如果a和b相同&…

github新建仓库提交代码(本地命令行)

网页在home页面新建一个仓库之后&#xff0c;复制该仓库的URL&#xff0c;待会要用到在本地打开gitbash 进行初始化并将仓库克隆到本地git init git clone <刚刚复制的仓库URL>进入文件夹&#xff0c;创建文件&#xff0c;可以将要提交的内容写入文档cd <克隆下来的文…

多区域isis配置实验

一、预习&#xff1a; IS-IS&#xff1a;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff0c;是ISO为它的CLNP&#xff08;ConnectionLess Network Protocol&#xff09;设计的一种动态路由协议&#xff0c;后来为了提供对IP路由的支持&…

InternLM第4次课笔记

XTuner 大模型单卡低成本微调实战 1 Finetune介绍 2 XTuner介绍 XTuner中微调的技术&#xff1a; 3 8GB显卡玩转LLM 4 动手实战环节

怎么理解接口幂等,项目中如何保证的接口幂等

都 2024 年了&#xff0c;竟然还有人不知道接口幂等是什么东西。 hi&#xff0c;大家好&#xff0c;我是 浮生 今天正好有空&#xff0c;给大家分享一下 幂等的实现。 什么是幂等&#xff1f; 一、问题解析 简单来说&#xff0c;就是一个接口&#xff0c;使用相同的参数重复执…

【Databend】行列转化:数据透视和逆透视

文章目录 数据准备数据透视数据逆透视总结 数据准备 学生学科得分等级测试数据如下&#xff1a; drop table if exists fact_suject_data; create table if not exists fact_suject_data (student_id int null comment 编号,subject_level varchar null comment …

AI副业拆解:人像卡通化,赋予你的形象全新生命力

大家好我是在看&#xff0c;记录普通人学习探索AI之路。 &#x1f525;让你的形象瞬间穿越二次元&#xff01;&#x1f680;人像卡通化&#xff0c;捕捉你的独特魅力&#xff0c;让真实与梦幻在此刻交融。&#x1f3a8; 今天为大家介绍如何免费把人像卡通化--漫画风 https://w…

视频监控平台的管理员账号在所有客户端都无法登录的问题解决

目 录 一、问题描述 二、问题排查 1、看问题提示 2、看日志信息 3、问题定位 三、问题解决 1. 添加权限角色 2、添加操作用户 3、验证 一、问题描述 AS-V1000视频监控平台安装部署完成后&#xff0c;发现管理员admin不能到web客户端&#xff0c;觉…

C语言变量与函数

目录 变量函数 变量 变量&#xff1a;计算机里的一块内存空间int a 0; 表示定义一个整型 int 变量&#xff1b;这个变量名字叫做 a “” 表示赋值&#xff1b;即将右边的 0 赋值给左边的整型变量 a 现在这一块空间 a 存放了一个值 0 这个过程也叫做整型变量 a 的初始化初始化…

深入剖析开源大模型+Langchain框架,智能问答系统性能下降原因

大模型&#xff08;LLM&#xff09;相关理论研究与工程实践随着 GPT3 的发布&#xff0c;在学术界、工业界大爆发&#xff0c;备受各行各业关注&#xff0c;并涌现出一些赋能行业、促进生产力、生产关系变革的实践。GPT3 [1] 以及斯坦福计算机学院近 100 教授联名论文 [2] 将大…

【origin】负载牵引的Smith圆图

【origin】负载牵引的Smith圆图 1.从ADS导入数据到origin2.smith圆图3.扩展到多组线4.参考资料 1.从ADS导入数据到origin export导出为txt&#xff0c;得到的是幅相值&#xff0c;复制到excel如下图&#xff0c;有多根类似格式的线&#xff0c;只需要复制DE列到origin中 复制到…

基于微信小程序的音乐平台 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台&#xff0c;包含了音乐…