Как пропустить совпадение при использовании Ctrl + D для множественного выбора в Sublime Text 2?


180

У меня есть код, например:

testVar = { a: 1 };
testVariable1 = 2;
var c = testVar.a + testVariable2;
var d = testVar;

Я хочу переименовать переменную "testVar". Когда я устанавливаю несколько курсоров с помощью Ctrl+ Dи редактирую переменную, «testVariable» также выбирается и редактируется.

Есть ли способ пропустить некоторые выборы при установке нескольких курсоров с помощью Ctrl+ D?

Ответы:


257

Просто используйте Ctrl+ K, Ctrl+ D.

(для OS X: Cmd+ K, Cmd+ D)

Требуется немного практики, но работа сделана!


33
Это на самом деле не Ctrl + K + D, это Ctrl + K, Ctrl + D. Гораздо проще набирать их последовательно, а не параллельно!
Тим Китинг

4
@Qwerty: Alt + F3 Выбирает все вхождения.
Эмиль Стенстрём

16
@Romain написал "Нужно немного практики". Я думаю, что это означает, что это может быть более интуитивным. Не нажимайте комбинацию клавиш, пока то, что вы хотите пропустить, не будет выделено. Например, если у вас есть 3 совпадения, и вы хотите пропустить 2-е, сначала выделите 1-е, нажмите CTRL + D, чтобы выделить 2-е, ТО затем нажмите комбинацию клавиш, чтобы пропустить 2-е совпадение и выделить 3-е. Помогите?
Тайлер Коллиер

Добавьте это в таблицу ключей пользователя и сократите время тренировки почти до 0! { "keys": ["ctrl+alt+d"], "command": "find_under_expand_skip" }
Mrchief

здорово мой друг !!
Хуан

85

Вы можете нажать Ctrl+ Kи Ctrl+ Dодновременно, чтобы пропустить выбор. Если вы зашли слишком далеко со своим выбором, вы можете использовать Ctrl+, Uчтобы вернуться к предыдущему выбору.

Примечание : Заменить Ctrlс Cmdдля Mac OS X.

Конфигурацию по умолчанию для этого можно посмотреть, перейдя в Preferences> Key Bindings-Defaultв строке меню приложения, где вы увидите что-то вроде этого:

{ "keys": ["ctrl+d"], "command": "find_under_expand" },
{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" }

Если вы хотите, вы можете настроить ключи в соответствии со своими потребностями, перейдя к Preferences> Key Bindings-Userи скопируйте приведенный выше код, а затем измените ключи.


61

Если у вас есть курсор над словом и используйте Ctrl+, Dчтобы выбрать слово. При следующем нажатии Ctrl+ Dследует выбрать следующее выделенное слово.

Если дважды щелкнуть мышью, чтобы выбрать слово, Ctrl+ Dвыберет точную строку, а не только выделенные.

Другими словами, Ctrl+, если Dничего не выделено, выполняет поиск по всему слову . Если у вас уже что-то выделено, Ctrl+ Dвыполнит поиск по подстроке.

Я проверил, и он работает в Sublime Text 2 версии 2.0.1, сборка 2217.


11
На самом деле это единственное верное решение этой проблемы. Люди бездумно голосуют.
Qwerty

ctrl+ D С ничего не выбрано это Чувствительный тоже.
venkatvb

2
@vankatvb Я не считаю, что это правда ... Ctrl+, Dкогда ничего не выбрано, по-прежнему без учета регистра для меня. Он будет выделять только регистрозависимые совпадения, но на самом деле с помощью ярлыка или Alt+ F3выберет те, которые не соответствуют регистру .
Раскол

Кстати, вот тот же ответ в другом вопросе: stackoverflow.com/a/18422707/782045
интересно там

7

Поместите курсор перед переменной, не выбирайте переменную, нажмите Ctrl+Dдля выбора каждого вхождения переменной, а не шаблона.


1

Обновленный ответ для vscode в 2020 году на windows, в keybindings.json добавьте эту строку, чтобы легко пропустить следующий выбранный случай:

  {
    "key": "ctrl+alt+d",
    "command": "editor.action.moveSelectionToNextFindMatch",
    "when": "editorFocus"
  },

* да, я знаю, что вопрос касается возвышенного текста, но я нашел его, прибегая к гуглу с тем же вопросом + vscode, так что это может помочь кому-то, поскольку сопоставления идентичны.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.