Sublime Text: выберите все экземпляры переменной и измените имя переменной

Я новичок в Sublime, и я просто обнаружил, что если я выберу в моем коде переменную (а не только любую строку), все остальные экземпляры этой переменной получат штрих (белый контур) вокруг них:

enter image description here

Есть ли комбинация клавиш, которая позволит мне выбрать все эти экземпляры переменной и отредактировать их все сразу?


Вещи, которые я пробовал:

Используя D, K, а U позволяет мне выбирать их по одному, но мне нужно вручную исключить совпадение строк без переменной:

enter image description here

И используя Ctrl G просто выбирает все совпадения строк:

enter image description here

Ясно, что Sublime может различать переменные и строки. Невозможно выбрать только совпадение переменных?

Ответ 1

1. Поставьте курсор в переменную

⚠️ ключ должен начинаться с пустого выделения ⚠️ - не выделять; просто переместите свой курсор туда.

text cursor on variable

2. НАЖМИТЕ D по мере необходимости. Не на Mac? Ctrl D

more instances of variable highlighted

Work не работал? Попробуйте еще раз, убедившись, что вы начали с пустого выбора.

Commands больше команд:

Найти все: Ctrl G Выбирает все события одновременно. Не на Mac? Alt F3

Отмена выбора: U Шаги назад. Не на Mac? Ctrl U

Быстрый переход Далее: K D Пропускает следующий случай. Не на Mac? Ctrl K Ctrl D

📙 возвышенные документы


ч/т адзенит.

Ответ 2

Я знаю, что вопрос касается компьютеров Mac, но я нашел здесь ответ для Ubuntu, поэтому, я думаю, мой ответ может быть полезен кому-то.

Простой способ сделать это: Alt F3.

Ответ 3

Несмотря на много усилий, я не нашел встроенный или подключенный к плагину способ сделать то, что вы пытаетесь сделать. Я полностью согласен с тем, что это должно быть возможно, так как программа может отличить foo от buffoon, когда вы впервые выделите ее, но никто не знает, как это сделать.


Однако, вот некоторые полезные комбинации клавиш для выбора слов в Sublime Text 2:

Ctrl G - выбирает все вхождения текущего слова (Alt F3 в Windows/Linux)

D - выбирает следующий экземпляр текущего слова (Ctrl D)

  • K, D - пропускает текущий экземпляр и переходит к выбору следующего (Ctrl K, Ctrl D)
  • U - "soft undo", возвращается к предыдущему выбору (Ctrl U)

E, H - использует текущий выбор в качестве поля "Найти" в Find и Replace (Ctrl E, Ctrl H)

Ответ 5

"Магия", вы должны начать с пустого выделения, поэтому поместите курсор внутрь символа/символа, который вы хотите выбрать, и нажмите Ctrl + D

Ответ 6

Для меня это самая большая ошибка в Sublime. alt + f3 трудно достичь/запомнить, и ctrl + shift + g не имеет смысла, учитывая, что ctrl + d - это "добавить следующий экземпляр к выделению".

Добавьте это к своим привязкам клавиш пользователя ("Настройки"> "Привязки клавиш"):

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

Теперь вы можете выделить что-то, нажмите Ctrl + Shift + d, и это добавит каждый второй экземпляр в файле к выделению.

Ответ 7

Он упомянутый @watsonic, что: в Sublime Text 3 на macOS, начиная с пустого выделения, просто G (Alt F3 в Windows) делает трюк вместо D + G в Sublime Text 2.

Ответ 8

Как сказал пользователь1767754, ключ здесь состоит в том, чтобы не делать какой-либо выбор изначально. Просто поместите курсор внутри имени переменной, дважды щелкните его, чтобы выделить его. Для одиночных символьных переменных поместите курсор в начале или конце переменной, чтобы не делать какой-либо выбор изначально. Теперь продолжайте нажимать Cmd + D для выбора следующей переменной или Ctrl + Cmd + G для одновременного выбора всех переменных. Он волшебным образом выбирает только переменные.

Ответ 9

На тот случай, если кто-то еще наткнулся на этот вопрос, ища способ заменить строку в нескольких файлах, это Command + Shift + F