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


13

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

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

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

Ответы:


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+ [.
Тор

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