Sublime Text 3 - поведение быстрого добавления / поиска соответствия

14

Предположим, я работаю с файлом в Sublime Text 3, который содержит несколько вхождений одной символьной переменной c, которую я хочу переименовать в другое имя.

Когда я выбираю один экземпляр этой переменной с помощью курсора, Sublime Text автоматически выделяет для меня другие экземпляры этой переменной:

Эта визуальная подсветка активируется параметром: "match_selection": trueи ясно показывает, что возвышенный достаточно умен, чтобы выделять только другие экземпляры этого символа, если он имеет значение в качестве переменной.

Однако, несмотря на это выделение, указывающее, что это должно быть возможно, кажется, что сейчас нет простого способа автоматически выбрать только эти выделенные cпеременные.

Если я хочу быстро переименовать все экземпляры переменной, cиспользуя несколько курсоров, либо с помощью Quick Add Next ( cmd+D) или Quick Find All ( ctrl+cmd+G) вместо выбора только этой переменной c, я получаю каждый выбранный экземпляр символа «c»:

Это, очевидно, бесполезно, поскольку не имеет отношения к фактической переменной; Он просто слепо выбирает все буквы «с», независимо от того, являются ли они выбранной переменной или нет.

Есть ли способ заставить Quick Add Next и Quick Find All вести себя как правила подсветки, которые match_selectionиспользует параметр? Это было бы гораздо полезнее в этом случае, чем просто слепо выбирать каждый экземпляр выбранного символа (ов).

Я что-то пропустил? Я не могу найти параметры быстрого поиска всех экземпляров или переменную быстрого добавления следующего , или какой-либо способ настроить поведение по умолчанию быстрого поиска всех и быстрого добавления следующего . Насколько я могу судить, мои единственные варианты - либо вручную переименовать каждый экземпляр c, либо написать некоторое пользовательское регулярное выражение для достижения того же результата, что и исходный алгоритм выделения.

Johannes
источник

Ответы:

23

Хитрость заключается в том, чтобы начать с пустого выделения, когда курсор находится слева от слова, которое вы хотите выделить. Затем нажмите CtrlG(или AltF3в Windows / Linux), чтобы выбрать все вхождения этого слова:

код Луа

или нажмите D( CtrlDна Win / Lin), чтобы начать выбирать их по одному.

MattDMo
источник
1
В основном именно то, что я искал, ура :) -
Йоханнес
Это работает, если вы хотите, чтобы все они были в файле; Я просто хочу, чтобы все они были рядом, как вы получаете с помощью Ctrl + D.
Бен Дилтс
@BenDilts Я не уверен, что вы спрашиваете. Что ты пытаешься сделать?
MattDMo
Допустим, у вас есть файл с десятью различными методами, каждый из которых имеет локальную переменную с именем «c». Я просто хочу быстро выбрать те, которые находятся в меньшей области, чем весь файл.
Бен Дилтс
2
@BenDilts Поместите курсор слева от первого и выберите те, которые вы хотите использовать Ctrl-D, как я и сказал в своем ответе.
MattDMo
0

При выборе и переименовании всех вхождений переменной это не означает, что все строки должны быть переименованы. Например, «с» может встречаться во многих словах, не являясь переменными. Чтобы ТОЛЬКО переименовать вхождения, которые являются переменными, можно использовать дополнение anaconda:

Щелкните правой кнопкой мыши переменную

Выберите Anaconda -> Переименовать объект под курсором.

Ps. Можно дважды щелкнуть по переменной, чтобы проверить, какой выбор будет сделан перед выполнением переименования.

Лео
источник