利用IDEA/WebStorm/pycharm的【多光标输入】提高开发效率

通过本文,我们将学会如何在jetbrains 系列的编辑器中添加多光标,从而提高开发效率。

本文提供了基础知识 与实战案例,帮助读者更好地理解和掌握这些方法。

基础知识

使用鼠标添加多光标

按住Alt键,点击想要插入光标的位置即可在该处添加光标

同样,点击已添加的光标可以删除该光标

使用键盘在当前光标上方或下方添加多光标

双击Ctrl键,之后按住Ctrl键不松手,然后按上下箭头,即可在当前光标上方或下方添加光标

列选择模式

按快捷键Shift+Alt+Insert可切换为列选择模式 ,在该模式下按Shift+上/下箭头可在当前光标的上方或下方添加光标。

再次按Shift+Alt+Insert可取消列选择模式。而在正常情况下,按Shift+上/下箭头是选择文本功能。

将光标移动到行首或行尾

  • 按键盘的Home键,可以将所有光标定位到每行第一个字符的位置
  • 按键盘的End键,可以将所有光标定位到每行的最后一个字符的位置

取消多个光标

之前我们已经提到过按住Alt键点击光标可取消指定的光标,而,按ESC键或者点击任意位置可以取消所有光标。

选择多次出现的文本内容

首先我们使用鼠标框选一段文本,之后按Alt+J键,可以选择下方出现的相同文本内容,并添加光标。按Shift+Alt+J可以取消上一次选中的文本。

如果想要跳过某个文本内容,可以在按Alt+J键出现多光标之后,按F3键,同样Shift+F3键可以跳回到上一个匹配的内容

鼠标中键(滚轮键)

按住鼠标滚轮键拖动选择区域可以快速在该区域中插入多光标

实战案例

批量添加前缀

假设我们需要在一份代码中的多处相同变量名前添加一个统一的前缀,比如给以下CSS类选择器添加前缀 .theme-:

css 复制代码
.button {
  /* ... */
}

.container {
  /* ... */
}

.footer {
  /* ... */
}

我们可以通过以下步骤批量操作:

  1. 使用鼠标点击.button类选择器行的任意位置。
  2. 按下Alt键,依次点击其它类选择器的任意位置添加光标。
  3. 按Home键,将多个光标定位在每行的起始位置
  4. 删除.,键入前缀.theme-,之后按ESC取消多光标。

同时编辑多行

假定我们有一个列表项的HTML代码,我们想要给所有列表项添加class="item"属性。

tsx 复制代码
export const Test = () => {
  return (
    <div>
      <li>辰火流光</li>
      <li>辰火流光</li>
      <li>辰火流光</li>
      <li>辰火流光</li>
    </div>
  )
}

可以这样操作:

  1. 将光标放在第一个<li>标签的末尾。
  2. 双击Ctrl键,然后不放开Ctrl键,同时按下向下的箭头键,将会在下方相同位置的<li>标签末尾各添加一个光标。
  3. 输入 className="item"。

总结

在本文中,我们详细学习了如何在jetbrains 系列编辑器中有效地使用多光标 功能,这一强大功能无疑能够显著提升编程和编辑工作的效率。我们探索了从基本的鼠标和键盘操作,到高级的列选择和文本选择技巧。通过具体的实战案例,我们展示了如何将这些技术应用到日常的开发任务中。

无论你是在重构代码,编辑配置文件,还是寻求批量处理文本的方法,多光标技术都能为你节省宝贵的时间。希望通过这篇文章的详解和示例操作,你已经能够熟练地将多光标功能应用在实际编码过程中,做到事半功倍。

最后,不要忘记练习是掌握任何一项新技能的关键。建议读者在阅读完本文之后,立即在自己的项目中尝试使用多光标,以便更好地掌握和巩固所学知识。实践出真知,愿你在编程的路上越走越远,效率越来越高。

相关推荐
lpfasd1236 小时前
node-sass 停止维护!老项目迁移 Dart Sass 完整教程
前端·rust·sass
Data analyse4568 小时前
rnweb 回放数据量太大怎么办?分片存储与断点续传的实现思路
前端·网络·算法·数据分析
xiaogai_gai8 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
环境栈笔记9 小时前
指纹浏览器 WebRTC 怎么设置?从 ICE 候选、代理出口到功能验证
前端·人工智能·后端·自动化
赵大仁9 小时前
官网性能优化实战:LCP 3.2s → 2.1s、CLS 0.107 → 0,以及被我推翻的 6 个判断
前端·性能优化·cls·lcp·core web vitals
xiancai_xianyu9 小时前
Text2SQL落地生产库前,SQL要过哪三道闸
前端·数据库·sql·sql注入·text2sql·ai agent开发·企业级ai框架
小羊没烦恼!10 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
史瓦辛格10 小时前
给 DeepSeek Harness 写费用插件:把「这次会话花了多少钱」算准
前端·deepseek
星光不问赶路人10 小时前
Vue 3 + TypeScript 中 enum 的使用实践
前端·vue.js
鸥梨菌Honevid10 小时前
UVM 中 REQ 和 RSP 类型详解:从通信模型到 item_done 与 put_response
java·前端·servlet