Повторить последнюю команду с восклицательным знаком? напор - PullRequest
7 голосов
/ 01 ноября 2010

Когда я только что набрал огромную команду, например:

:e ~/Projects/foo/app/views/bar.rhtml

Vim неизбежно говорит мне, что я не сохранил текущий буфер.Есть ли быстрый способ повторить команду с восклицательным знаком, без необходимости перепечатывать все это?

Ответы [ 4 ]

8 голосов
/ 01 ноября 2010
:e! #

При указании файлов vim, % - это ярлык к текущему файлу, а # - это ярлык к «предыдущему» (действительно, больше похожему на «другой») файлу, который в вашем случае равен ~/.../bar.rhtml

3 голосов
/ 01 ноября 2010

q: вызовет историю, и вы можете отредактировать команды напрямую, а затем нажать Enter, чтобы запустить их снова, или вы можете сделать, как предложено zigdon и :<up><home><right>!

2 голосов
/ 01 ноября 2010

Самый простой способ, который я знаю, это нажать ESC :, а затем использовать историю (либо ^p, либо стрелку вверх), чтобы снова получить предыдущую команду.По иронии судьбы редактирование в этом буфере больше похоже на emacs, чем на vi.

На самом деле вы можете связать это с ключом с :map ! :^[OA^[[1~^[OC!^M (каждый из этих escape-символов и ^ M должны быть настоящими escape-символами -- вы можете получить их, набрав сначала ^V)

2 голосов
/ 01 ноября 2010

:<up><home><right>! * * 1002

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