Как конвертировать блок текста в маркеры в VIM? - PullRequest
0 голосов
/ 11 мая 2018

В VIM, есть ли способ выделить блок текста и преобразовать его в маркеры или список?

Учитывая этот текст:

abc
def
ghi

Я хочу иметь возможностьвизуально выберите их и преобразуйте в список:

* abc
* def
* ghi

Я делал это вручную, используя режим визуального блока <C-v> в первом столбце всего текста, а затем выполнял вставку (то есть <C-v>jjjI* <esc>).Тем не менее, это очень громоздко, и я хотел бы сделать эту операцию проще для выполнения.

Бонус: Было бы здорово переключаться между пунктами с маркером и обычным текстом.Также было бы здорово иметь возможность создавать нумерованный список вместо списка маркеров (но это может быть еще один вопрос SO).

Ответы [ 3 ]

0 голосов
/ 12 мая 2018
nnoremap bip vip:s/^/* /<cr>

Это отображение может сделать его быстрее.

В обычном режиме вы набираете bip абзац, который вы находите, будет преобразован в маркеры.

bip -> «Пуля в абзаце»

0 голосов
/ 12 мая 2018

Вы можете определить следующие карты:

nnoremap <m-n> vip:s/^/* /<cr>
nnoremap <m-u> vip:s/^/\=(line('.')-line("'<")+1).' '/<cr>                                                             

Первая карта (предоставленная Кентом в предыдущем ответе) поместит * перед каждой строкой текущего абзаца.Вторая карта составит нумерованный список.

0 голосов
/ 11 мая 2018

Ограничение здесь действительно знать, где начинается и заканчивается содержимое вашего списка.Как только вы выделите его, я не уверен, что вы можете получить намного быстрее, чем I* <esc>.

Если у вас длинный список и вы знаете, что сразу после списка есть пустая строка с каждым элементом на егособственной строкой, вы можете перейти к началу списка, затем <C-V>)bI* <esc>, что будет быстрее, если ваш список будет особенно длинным.) перемещает вас в конец текущего абзаца.

Если ваш список заканчивается в конце файла, <C-v>GI* <esc> будет работать.

Вы можете повторить предыдущий набор командс ., поэтому, если перейти к началу списка и запустить I* <esc>, тогда j.j.j.j. будет работать, но я не думаю, что это намного лучше, чем то, что вы уже делаете.

ВВообще, если вы можете найти более быстрый способ перехода в конец списка, I* <esc>, вероятно, достаточно быстро.Если бы вы хотели, вы могли бы создать отображение ключей в вашем .vimrc, чтобы сделать это быстрее, если вам нужно много чего сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...