448

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

在此处输入图像描述

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


我尝试过的事情:

⌘</kbd>D, ⌘</kbd>K, and ⌘</kbd>U lets me select them one-by-one, but I have to manually exclude the non-variable string matches:

在此处输入图像描述

并使用Ctrl⌘</kbd>G simply selects all the string matches:

在此处输入图像描述

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

4

10 回答 10

640
  1. 将光标放在变量中。

    注意:关键是从空选择开始。不要突出显示;只需光标放在那里。

变量上的文本光标

  1. ⌘</kbd>D as needed. Not on a Mac? Use CtrlD.

变量的更多实例突出显示

没用?再试一次,确保从没有选择任何内容开始

更多命令:

找到所有: Ctrl⌘</kbd>G selects all occurences at once. Not on a Mac? AltF3

撤消选择: ⌘</kbd>U steps backwards. Not on a Mac? CtrlU

快速跳过下一步: ⌘</kbd>K⌘</kbd>D skips the next occurence. Not on a Mac? CtrlKCtrlD

崇高的文档

于 2013-08-24T20:13:26.150 回答
138

我知道这个问题是关于 Mac 的,但我来这里是为了寻找 Ubuntu 的答案,所以我想我的答案可能对某人有用。

简单的方法:AltF3

于 2013-11-11T18:36:08.080 回答
50

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


但是,这里有一些在 Sublime Text 2 中选择单词的有用组合键:

Ctrl⌘</kbd>G - selects all occurrences of the current word (AltF3 on Windows/Linux)

⌘</kbd>D - selects the next instance of the current word (CtrlD)

  • ⌘</kbd>K,⌘</kbd>D - skips the current instance and goes on to select the next one (CtrlK,CtrlD)
  • ⌘</kbd>U - "soft undo", moves back to the previous selection (CtrlU)

⌘</kbd>E, ⌘</kbd>H - uses the current selection as the "Find" field in Find and Replace (CtrlE,CtrlH)

于 2013-05-30T20:01:06.417 回答
21

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

CtrlK, CtrlD, CtrlD...

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

于 2013-09-23T21:13:18.860 回答
12

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

于 2015-06-02T01:45:41.747 回答
10

对我来说,这是 Sublime 最大的错误。Alt+F3很难到达/记住,考虑到 +是“将下一个实例添加到选择中” , Ctrl++毫无意义。ShiftGCtrlD

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

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

现在您可以突出显示某些内容,按Ctrl+ Shift+ D,它会将文件中的所有其他实例添加到选择中。

于 2017-03-13T16:05:33.417 回答
6

正如 user1767754 所说,这里的关键是最初不要进行任何选择。

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

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

于 2016-08-06T22:04:07.757 回答
5

@watsonic提到在 macOS 上的 Sublime Text 3 中,从一个空的 selection开始,只是⌃</kbd>⌘</kbd>G (AltF3 on Windows) does the trick, instead of ⌘</kbd>D + ⌃</kbd>⌘</kbd>G in Sublime Text 2.

于 2017-05-12T07:52:09.613 回答
0

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

于 2020-10-17T23:08:20.840 回答
-1

以防万一其他人在寻找跨多个文件替换字符串的方法时偶然发现了这个问题,它是Command++ShiftF

于 2018-08-30T18:29:18.710 回答