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

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

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

相关推荐
Agent世界14 小时前
用 CDP 做发布自动化:四道机器闸门与产物验收
前端·javascript
FungLeo14 小时前
成为全栈·Vue 管理后台篇·编辑器图片上传:从文件选择到文章附件关联
前端·vue.js·编辑器·markdown·文件上传·formdata·附件管理
某哈压力大14 小时前
SSH 突然 Connection reset?不是密钥坏了,是 OpenSSL 把 sshd 干趴了
前端·node.js·命令行
程序员大阳14 小时前
副队长ES6+教程(3)--解构赋值
前端·javascript·es6·赋值·解构
神膘护体小月半15 小时前
css - 元素背景图由 hover 触发,初次加载时闪动的解决办法
前端·javascript·css
程序员大阳15 小时前
副队长ES6+教程(2)--let 与 const
前端·javascript·es6·const·let·var
deli00715 小时前
写满 200GB 后 SSD 为什么掉到 95MB/s?SLC 缓存模型实测
前端
曦樂~16 小时前
【Web Development】03JavaScript 基础和事件
开发语言·前端·javascript
deli00716 小时前
HTTPS 的锁是怎么挂上的?TLS 1.3 握手 6 步实测
前端
程序员大阳16 小时前
副队长ES6+教程(1)--ES6+初识
前端·ecmascript·es6