ST3 - Расширение выделения до Word и быстрый поиск Далее - Двойное назначение cmd + d в Mac OS в Sublime Text 3.1.1 (B3176) - PullRequest
0 голосов
/ 25 апреля 2019

Заранее извиняюсь, если это неправильный форум по этому вопросу - я абсолютный новичок в программировании любого рода.

Кажется, что Expand Selection to Word (Функциям Menu> Selection> Expand Selection to Word) в ST3 был назначен тот же ярлык клавиатуры, что и для Quick Add Next (Menu> Find> Quick Add Next).

Однако , даже если нажать один разэти параметры вручную (, т. е. без использования сочетаний клавиш), эффект тот же : нажатие «Развернуть выделение до слова» просто находит следующее сильное совпадение идобавляет его к текущему выбору.

Так что теперь я задаюсь вопросом, просто неправильно ли я понял предназначенную цель, хотя язык кажется однозначным.

  1. Может ли кто-нибудь подтвердить, что эти функции должны работать по-разному, и

  2. Если это так, как я могуисправить поведение, чтобы я мог использовать функциональность expand selection to word?

Заранее спасибо за ваше время и помощь!

1 Ответ

2 голосов
/ 26 апреля 2019

Короткий ответ на ваш вопрос заключается в том, что оба эти элемента - это одно и то же, они расположены в двух разных местах и ​​связаны с одним и тем же ключом. Причина в том, что команда делает несколько вещей, в зависимости от ситуации, в которой вы ее используете, что делает ее подходящей для обоих мест.

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

Для проверки, что это та же команда;

  • Используйте Preferences > Key Bindings, чтобы открыть окно привязок клавиш; в левой панели найдите find_under_expand; Вы видите эту конкретную привязку ключа (в MacOS он использует super вместо ctrl):

    { "keys": ["ctrl+d"], "command": "find_under_expand" },
    
  • Используйте View Package File из палитры команд, затем откройте Default/Main.sublime-menu и выполните тот же поиск; в одной и той же команде есть несколько совпадений для одной и той же команды:

    { "command": "find_under_expand", "caption": "Expand Selection to Word" },
    
    { "command": "find_under_expand", "caption": "Quick Add Next" },
    

Вы также можете открыть консоль с помощью View > Show Console, ввести sublime.log_commands(True), затем запустить команды и увидеть в консоли, что одна и та же команда выполняется независимо от того, какую комбинацию клавиш или команды меню вы используете.


Возвращаясь к началу, команда find_under_expand часто является камнем преткновения для новых пользователей Sublime, потому что она делает разные вещи в зависимости от ситуации. Это делает его довольно мощным и полезным, но изначально может застать вас врасплох.

В частности, команда может сделать несколько вещей:

  1. Если есть хотя бы одна каретка , у которой нет выбора, и все символы без выбора находятся внутри слова, выбор на каждая «пустая» каретка расширяется, чтобы охватить слово под этой кареткой. Таким образом, эта команда работает как Expand Selection to Word в меню.

  2. Если не все «каретки» не «пустые» , и все выборы содержат один и тот же текст, команда ищет следующее вхождение выделенный текст и добавляет его к выделению, добавив туда новую каретку и выделив ее. Таким образом, эта команда работает как Quick Add Next.

Например, вот содержание стандартного lorem фрагмента:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Если вы поместите курсор в первый dolor в строке 1 и нажмете клавишу, будет выбран текст dolor. Это # 1 срабатывание; каретка не имеет выбора и находится одним словом, поэтому выбор расширяется. При повторном нажатии клавиши dolor в строке 4 добавляется к выбору. Это # 2 срабатывание; следующее вхождение текста найдено и выделено.

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

Теперь вставьте каретку в dolor и нажмите клавишу, чтобы выбрать ее снова, как и раньше. На этот раз используйте Ctrl + клик на слове amet, чтобы добавить второй каретку в этом месте. Теперь у нас есть две каретки, одна из которых выделяет текст dolor, а другая внутри amet. Если вы нажмете клавишу сейчас, вы получите № 1; amet добавляется к выделению, но независимо от того, сколько раз вы его нажимаете, dolor в строке 4 не добавляется к выделению. Элемент # 2 выше срабатывает только тогда, когда все выделенные фрагменты содержат одинаковый текст.

Снова выполните сброс, как указано выше, и на этот раз вручную выберите слово dolor в строке 1, используя Shift вместе с клавишами со стрелками. Нажатие клавиши сейчас может преподнести вам сюрприз; часть слова dolore в строке 2 выделена и добавлена ​​к выделению. Нажатие в третий раз выбирает dolor в строке 4, и еще одно нажатие дает вам часть dolore в строке 5.

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

Часть этого, которая часто путается с головами людей, - это последний пример. Как мы видели в первом случае, когда мы позволяем Sublime выбирать для нас слово с помощью нажатия клавиши, длительное нажатие гарантирует, что только этот точный текст будет найден и добавлен. Однако, если вы сначала выделите текст вручную, команда выберет все вхождения текста, даже если это не целое слово.

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

...