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

news2024/11/16 20:29:42

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

获取JetBrains IDE新版下载

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

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

安装 IdeaVim 插件

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

IdeaVim插件图集

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

使用 IdeaVim 时的主要不同

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

初次使用 Vim

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

普通模式:Esc

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

IdeaVim插件图集

基本移动命令包括:

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

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

插入模式:i

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

IdeaVim插件图集

基本插入命令包括:

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

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

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

可视模式:v

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

IdeaVim插件图集

基本可视命令包括:

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

命令模式::

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

IdeaVim插件图集

基本命令包括:

  • :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 中修改此文件。

IdeaVim插件图集

将 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(背景图像)按钮。

IdeaVim插件图集

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

伦敦金的交易时间究竟多长?

接触过伦敦金交易的投资者&#xff0c;应该都知道自己根本不用担心市场上没有交易的机会&#xff0c;因为它全天的交易时间长达20多个小时&#xff0c;也就是在每一个正常的交易日&#xff0c;除去交易平台中途短暂的系统维护时间&#xff0c;投资者几乎全天都可以做盘。 伦敦金…

银河麒麟 ARM 架构 离线安装Docker

1. 下载对应的安装包 进入此地址下载对应的docker 离线安装包 下载地址 将文件上传到服务器 解压此文件 tar zxf docker-18.09.1.tgz将 docker 相关命令拷贝到 /usr/bin&#xff0c;方便直接运行命令 cp docker/* /usr/bin/启动Docker守护程序 dockerd &验证是否安装成…

苹果ipad触控笔哪个好?ipad手写笔推荐

在现在&#xff0c;电容笔已经成为了iPad的一个重要配件&#xff0c;随着其的功能变得更加强大&#xff0c;更多的人开始使用电容笔。因此&#xff0c;如何挑选出一款性价比高、功能优秀的电容笔&#xff0c;是大家最关心的事情。那么&#xff0c;哪一款电容笔更实惠&#xff0…

应对广告虚假流量,app广告变现该如何风控?

移动广告市场中的虚假流量一直是困扰各移动应用厂商的难题&#xff0c;广告作为app商业化变现最为直接快捷的途径&#xff0c;也引申出了流量作弊与反作弊的纷争。 根据《2021中国异常流量报告》&#xff0c;2021年中国品牌广告市场因异常流量造成的损失约为326亿人民币&#…

计算机网络传输层知识总结·

传输层提供的服务 传输层的功能 ●传输层提供进程之间的逻辑通信&#xff0c;即端到端的通信 ●复用和分用 ●差错检测&#xff08;首部和数据部分&#xff09; ●面向连接的TCP和无连接的UDP 端口的作用 ●端口标识的是主机中的进程 ●硬件端口是不同…

早安问候语早安心语,别把人生想太难,人生需要鼓励

1、别把人生想的太难&#xff0c;人生需要几分自我的鼓励&#xff0c;不管在什么时候&#xff0c;要有几分信念和信心&#xff0c;生活少不了哭哭笑笑。青山绿水依然在&#xff0c;来来往往人不同&#xff0c;要学会看得惯&#xff0c;还要学会看得开&#xff0c;你内心的平坦是…

开源酒店预订订房小程序源码系统+多元商户 前端+后端完整搭建教程 可二次开发

大家好啊&#xff0c;罗峰今天来给大家分享一款酒店预订订房小程序源码系统&#xff0c;这款系统进行了全新的升级&#xff0c;从原来的单门店升级成了多门店&#xff0c;可以自由切换账号&#xff0c;统一管理。功能强大。以下是部分代码截图&#xff1a; 酒店预订订房小程序源…

性价比高的学生用台灯?这些Led台灯适合学生用

想要选好护眼台灯首先我们要知道什么是护眼台灯&#xff0c;大的方向来看&#xff0c;护眼台灯就是可以保护视力的台灯&#xff0c;深入些讲就是具备让灯发出接近自然光特性的光线&#xff0c;同时光线不会伤害人眼而出现造成眼部不适甚至是视力降低的照明设备。 从细节上看就…

人物——高会军

近日&#xff0c;美国电气与电子工程师协会&#xff08;英文简称IEEE&#xff09;系统、人与控制论学会在美国夏威夷公布2023年诺伯特维纳奖&#xff08;Norbert Wiener Award&#xff09;获奖者&#xff0c;中国自动化学会会士、副秘书长&#xff0c;欧洲科学院院士&#xff0…

施耐德PLC之间的的无线MODBUS通信实例

本文主要介绍施耐德&#xff08;睿易&#xff09;PLC之间的MODBUS通讯的具体操作和各参数的意义&#xff0c;此方案可以作为施耐德&#xff08;睿易&#xff09;PLC之间的的无线MODBUS 通信实例。在本方案中采用了西门子、施耐德等欧美系PLC专用无线通讯终端DTD434M&#xff0c…

【python】求多变量/样本(矩阵)之间的相关性系数

创作日志&#xff1a; Pearson或Spearson代表的是两个变量之间的相关性&#xff0c;因此一般输入是两个向量(vector)&#xff0c;那么当我们有多个变量时&#xff0c;怎样计算他们两两之间的相关性系数呢&#xff1f;得到的correlation matrix各元素代表的又是什么意思呢&#…

1800*C. Table Decorations(贪心 || 二分)

Problem - 478C - Codeforces 解析&#xff1a; 做法一&#xff1a;二分&#xff0c;显然左右边界为 0 和 总数量除以3。check时mid&#xff0c;任意两项之和都不能小于mid 做法二&#xff1a;贪心&#xff0c;当数量最大的气球数量的一半小于另外两种颜色气球的数量之和&#…

2021年09月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 有如下Python程序段&#xff1a; x,y12,5 if x % y0:zx/yprint(x,"/",y,"",z) else:zy*xprint(x,&qu…

Allegro模块化布局的操作方法

用Allegro模块化布局的方法,可以大大提高PCB布局的效率。具体操作方法如下: (1)首先,在PCB界面激活MOVE命令,选择菜单Edit→Move 或点击快捷菜单,如下图。 (2)在Find选项卡只选择Symbols(器件) (3)在Optio

东芝Z750的画质真实吗?适合看纪录片吗?

东芝Z750显示的画面更加真实、细腻、有层次感,就感觉电视中的画面像真实世界一般呈现在眼前,东芝电视拥有70余年的原色调校技术,每款产品都有专属的日本调校工程师匠心打造,可以真实还原画面色彩,若是观看类似《航拍中国》这样的旅游记录片时,东芝电视将会营造出万里山河的壮阔…

云LIS系统源码 B/S架构,SaaS模式,可扩展性强

基于B/S架构的医学实验室LIS检验系统源码&#xff0c;整个系统的运行基于WEB层面&#xff0c;只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式&#xff0c;部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js…

WSL2下的Docker配置和使用

在Windows的Linux子系统&#xff08;Windows Subsystem for Linux&#xff09;WSL2中安装、配置和使用 Docker&#xff0c;可以参考官方教程&#xff1a;WSL上的Docker远程容器入门. 重要步骤总结如下&#xff1a; 先决条件 确保你的计算机运行的是 Windows 10&#xff08;更…

[Python]图片转字符画——这就是我的表情!!!!!!

背景 偶尔看到一些视频&#xff0c;他们把图片转字符画&#xff0c;平常也没有去关注&#xff0c;今天来捣鼓一下。 研究了一下还超级简单的&#xff0c;都是调用别人写好的框架。 网上也有很多教学。 代码实现 from PIL import Image # 表示字符颜色&#xff0c;由深到浅&am…

ppt录屏没有声音?超实用教程来了!

随着信息技术的发展&#xff0c;ppt已经成为工作中必不可少的工具。无论是工作报告、项目展示还是学术交流&#xff0c;都离不开ppt的辅助。屏幕录制功能是ppt的一个重要特性&#xff0c;可以帮助用户方便地录制幻灯片演示&#xff0c;但在使用过程中&#xff0c;有时会遇到ppt…

算法进阶——字符串的排列

题目 输入一个长度为 n 字符串&#xff0c;打印出该字符串中字符的所有排列&#xff0c;你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围&#xff1a;n<10 要求&#xff1a;空间复…