Vim ex знающий номер, набранный ранее - PullRequest
3 голосов
/ 17 августа 2010

Я делаю ярлык, который ставит # в начале каждой строки, в следующих x строках. x - это число, которое я набираю перед вводом ярлыка, например, при наборе 11dd удаляются следующие одиннадцать строк.

Команда: .,+10 s/^/#/g.Здесь число десять должно быть действительно тем, что было напечатано перед ярлыком.Как я могу изменить ярлык в соответствии с номером, который был напечатан перед ним?

Добавлено после ответа на вопрос:

Так что теперь у меня есть следующее в .vimrc:

nmap c1 :s/^/#/g<esc>``
nmap c0 :s/^#//g<esc>``

, что позволяет мне набрать 13ac, добавить # в начале следующих 13 строк и 13dc, чтобы удалить любой # в начале следующих 13 строк.

Это лучше, чем =pod и =cut, поскольку они вызывают ошибки при вложении.
c1 = добавление комментария,
c0 = удаление комментария.
# используется в Perl.

1 Ответ

3 голосов
/ 17 августа 2010

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

s/^/#/count

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

5s/^/#/3

добавит «#» перед строками 5, 6 и 7.

Редактировать

В режиме ex вы можете использовать команду map, чтобы создать ярлык для команды двоеточия, которую затем можно использовать с префиксом:

map CC :s/^/#/g

Теперь вы можете использовать 'xCC' в режиме vi, чтобы добавить '#' к следующим x строкам.

...