如何在Sublime中选择一个变量的所有实例并编辑变量名

如果我在我的代码中选择变量(而不是任意字符串),该变量的所有其他实例都会在它们周围得到一个笔画(白色轮廓):

enter image description here

有没有一个键盘快捷键可以让我选择变量的所有实例并一次性编辑它们?


我尝试过的事情:

DKU让我可以逐个选择它们,但我必须手动排除非变量字符串匹配:

enter image description here

并且使用CtrlG简单地选择字符串匹配的所有:

enter image description here

显然,Sublime能够区分变量和字符串匹配。是否没有办法只选择匹配的变量?

270567 次浏览

尽管做了很多努力,但我还没有找到一种内置或插件辅助的方法来完成您正在尝试做的事情。我完全同意它应该是可能的,因为当你第一次突出显示它时,程序可以区分foobuffoon,但似乎没有人知道如何做到这一点。


然而,以下是Sublime Text 2中一些有用的选择单词的关键组合:

CtrlG -选择当前单词的所有出现(在Windows/Linux上是AltF3)

D -选择当前单词的下一个实例(CtrlD)

  • KD -跳过当前实例并继续选择下一个实例(CtrlKCtrlD)
  • U - "软撤销",移动回之前的选择(CtrlU)

EH -使用当前选择作为查找和替换中的“查找”字段(CtrlECtrlH)

  1. 将光标放入变量中。

    注意:的关键是从一个空的选择开始。不突出;只要你的光标在那里。

text cursor on variable

  1. 根据需要按D。不是在Mac上?使用CtrlD

more instances of variable highlighted

没有工作吗?再试一次,确保从什么都没有选择开始

更多的命令:

找到所有: CtrlG一次选择所有出现。不是在Mac上?AltF3

取消选择: U后退。不是在Mac上?CtrlU

快速跳过下一步: KD跳过下一次出现。不是在Mac上?CtrlKCtrlD

Sublime Docs

对我有用。然后将光标放在要替换的单词的开头

__abc0__abc1, __abc0__abc3, __abc0__abc3…

这应该选择尽可能多的单词实例,然后您只需输入替换。

我知道这个问题是关于mac电脑的,但我来这里是为了搜索Ubuntu的答案,所以我想我的答案可能对某些人有用。

简单的方法:AltF3

神奇的是,你必须从一个空的选择开始,所以把你的光标放在你想要多选的单词/字符前面,然后按Ctrl+D

正如user1767754所说,这里的关键是一开始不要做任何选择。

只需将光标放在变量名内,不要双击选择它。对于单字符变量,将光标放置在变量的前面或末尾,以在开始时不进行任何选择。

现在继续按Cmd+D进行下一个变量选择或Ctrl+Cmd+G一次选择所有变量。它会神奇地只选择变量。

对我来说,这是Sublime最大的错误。Alt+F3很难到达/记住,而Ctrl+转变+G没有意义,因为Ctrl+D是“将下一个实例添加到选择”。

将此添加到你的用户密钥绑定(首选项>键绑定):

{ "keys": ["ctrl+shift+d"], "command": "find_all_under" },

现在你可以突出显示一些东西,按Ctrl+转变+D,它会将文件中的所有其他实例添加到选择中。

它是@watsonic提到过,在macOS上的Sublime Text 3中,以空的选择开始,简单地G(在Windows上是AltF3)起作用,而不是Sublime Text 2中的D + G

以防其他人在寻找跨多个文件替换字符串的方法时偶然发现这个问题,它是命令+转变+F

此时,2020-10-17,如果您选择一个文本元素并按CTRL+SHIFT+ALT+M,它将突出显示代码块中的每个实例。