vi / vim альтернатива сублиметекста «Расширить выделение до объема»

13

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

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

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

palaniraja
источник

Ответы:

22

Если вы имели в виду, vimвы можете сделать это с visual-mode ( :help visual-mode) и text-objects ( :help text-objects).

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

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

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

  • a+ wозначает слово.
  • a+ sозначает предложение.
  • a+ pозначает абзац.
  • a+ <означает <>блок.
  • a+ 'означает строку в одинарных кавычках.
  • a+ "означает строку в двойных кавычках.

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

Тор
источник
Да, я имел в виду Vim. Спасибо. Есть ли способ продолжать расширять его, например, [[[event touchesForView: button] anyObject]если курсор находится рядом с touchesForViewдействием v+ a+ [выбирает, [event touchesForView: button]я хотел бы расширить еще один уровень? то есть,[[[event touchesForView: button] anyObject]
palaniraja
3
@palaniraja: да, вы можете добавить текстовый объект к числу, например: v+ 2+ a+ [.
Тор
6

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

Инго Каркат
источник