【问题标题】:Editor (Sublime, Notepad++, etc.) Paste 'around' existing text编辑器(Sublime、Notepad++ 等)粘贴“围绕”现有文本
【发布时间】:2014-05-21 18:41:03
【问题描述】:

动机:我打算将从配置文件中读取的参数分配给函数中的变量,如下所示:

john = my_quest
terry = my_fav_color
eric = airspeed
ni = swallow_type
...

当我意识到这将需要传递很多参数时。因此,我决定将这些参数放在一个不错的字典中,grail,例如grail['my_quest'] 这样我唯一需要传递给函数的就是grail

问题:在 Sublime(或 Notepad++、Spyder、Pycharm 等)中是否有一种简单的方法可以一步将grails['variable'] 粘贴在这些变量周围,而不是需要正面和背面分开贴? (我知道 Sublime 中有多个游标,这确实有帮助,但我很想找到一个“highlight-variable-and-hit-ctrl-meta-shift-\”,它已经完成了。)

【问题讨论】:

  • Mayeb 看看 vim 和 surround.vim 插件。
  • vim, %s/= \(\w*\)$/= grails['\1']/gc
  • 我最近在使用emacs时有过一些非常痛苦的经历,而vi往往会引发同样的反应(他勇敢地逃跑了)。话虽如此,surround.vim 看起来很有趣。在任何更简单(我的意思是功能不那么强大)的编辑器中是否存在等价物?
  • @schodge 对于 ST,github.com/jcartledge/sublime-surround。不确定功能的完整性,但可能值得一看。
  • @schodge - 如果我可以推荐,我更愿意在使用单一用途插件之前学习正则表达式。从长远来看,它付出的代价要高得多 - 您只需学习一次(至少是基础知识),然后您就可以将它与许多应用程序一起使用以进行搜索或替换。

标签: python editor notepad++ sublimetext3 spyder


【解决方案1】:

根据您提供的示例,这是一个可以使用标准正则表达式查找/替换来解决的简单任务。

所以在记事本++中,记录这个宏(记录控制检查菜单):

  1. Ctrl+H 打开查找/替换对话框
  2. 查找内容:= (.*)$
  3. 替换为:= grail['\1']
  4. 选择正则表达式并按全部替换

如果您完成录制宏并选择保存它,则需要快捷键。分配你最喜欢的 ctrl-meta-shift-\ 就完成了。

【讨论】:

  • 为方便起见:在“查找内容”中:.=任何字符,*=重复前一个字符 0..N 次(取最大值),$=行尾, ()从里面的文本创建第一个组(从现在开始,它被称为\1),所以你可以在“替换为”中使用这个组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多