立即删除开盘和收盘报价(或方括号、大括号等)

问题描述 投票:0回答:2

开始和结束引号(或方括号、大括号等)在 PyCharm(和其他编辑器)中突出显示。所以这意味着它可以识别这一对。

现在,有没有一种方法可以在删除左引号或右引号时一次删除两个引号(或方括号、大括号等),因为它标识了一对?

例如。我希望通过一个键盘操作完成此操作(无论是删除左方括号还是右方括号):
从此:

[[a for a in l1 if a!=0]]

对此:
[a for a in l1 if a!=0]

我用谷歌搜索并搜索了SO但找不到它。

python python-2.7 pycharm
2个回答
0
投票

我知道两种快速方法,但都不够快。

1:使用 AceJump 插件,您只需跳转到一个括号,点击删除,然后跳转到另一个括号,然后点击删除...自然,这有一个缺点,即在这种情况下使用括号:([{(([ ]))}) 会更难跳到。

2:有一个命令称为“将插入符移动到匹配的大括号”。然后,使用 AceJump 直接跳转到第一个大括号(或只是以任何方式导航到它),激活“将插入符移动到匹配大括号 2 次”功能。移动插入符号两次后,您可以删除第一个匹配的括号,然后使用该操作向后导航(“后退”),然后删除第二个大括号。

3:解决方案 2 不适用于报价。对于他们来说,您可以使用增量选择,并跳转到两个引号中最方便的一个,而不是执行“移动到匹配的大括号”操作...但是,这不允许您导航回上一个(或下)引用并删除那个。因此,对于引号,我没有解决方案,但是这种“增量选择”可以在某些情况下起作用(当其中一个引号位于行的开头或结尾时)


0
投票

我会用宏来做到这一点。

  1. 将光标置于右括号之后:
  [[a for a in l1 if a!=0]]
#                          ^ - place cursor here
  1. 转到编辑|宏 |开始宏录制

按以下键:

  1. CtrlShiftM - “将插入符移动到匹配大括号”操作。
  [[a for a in l1 if a!=0]]
#^ - it will jump here
  1. Del 或选择操作“删除到词尾”。
  [a for a in l1 if a!=0]]
#^ - the first bracket was deleted
  1. CtrlShiftBackspace - “上次编辑位置”(假设您在那里编辑过)。
  [a for a in l1 if a!=0]]
#                         ^ - will jump here
  1. 退格键或“删除到Word开头”
  [a for a in l1 if a!=0]
#                        ^ - deleted the paired closing bracket

现在需要停止宏录制。

  1. 转到编辑|宏 |开始宏录制
  2. 为您的宏命名
  3. (可选)为其分配快捷方式。

链接:
文档。
源代码导航文档。
其他建议使用代码|展开/删除。在某些情况下它不起作用。例如,如果您的代码不正确,IDE 无法将其包装。

© www.soinside.com 2019 - 2024. All rights reserved.