9

У возвышенного текста есть классная функция под названием « Расширить выделение до области » SHIFT+CMD+SPACE, которая выделяет все в области.

Он выбирает все в области, работает отлично () или [] или {}, повторяя это, расширяет область до своего родителя.

Я хочу добиться того же с Vim.

2 ответа2

16

Если вы имели в виду vim вы можете сделать это с визуальным режимом (:help visual-mode) и текстовыми объектами (:help text-objects).

Чтобы выбрать фигурный блок, выполните: v+a+{, чтобы выбрать вмещающий блок, повторите a+{. Обратите внимание, что вы можете выбрать только содержимое скобок, используя i вместо a.

Эти команды, как и многие другие в vim, создаются действием, за которым следует текстовый объект, где к текстовому объекту может предшествовать число, чтобы включить больше объектов, затронутых действием. Таким образом, вы также можете удалить объект, заменив v на d или исправив его на c и т.д.

Есть текстовые объекты для множества других вещей, кроме () , {} и [] , например:

  • а+ш означает слово.
  • а+с означает наказание.
  • а+р означает пункт.
  • а+<означает <> блок.
  • «+» означает строку в одинарных кавычках.
  • «+» означает строку в двойных кавычках.

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

3

Плагин vim-expand-region позволяет расширять / уменьшать визуально выбранную область до (настраиваемого) набора текстовых объектов. Т.е. вы можете начать с выбора переменной, затем назначения, затем блока, затем функции и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .