Невозможно выполнить много команд в визуальном режиме Vim извне - PullRequest
0 голосов
/ 21 мая 2009

У меня есть следующие команды в файле README:

./Setup ...
./Setup ...
./Setup ...

Я хочу запустить их, выбрав коды визуально, а затем запустив их.

Я запускаю безуспешно

: '<,'> !

Текущий код после комментариев Люка в его ответе

Мой код в .vimrc, который мне не удалось заставить работать:

vmap <silent> <leader>v y:exe '!'.join(split(@", "\n"),';')<cr>

Я пытаюсь сделать комбинацию клавиатуры для

v yy

Как заставить работать вышеуказанную команду , чтобы вы могли запускать команды файла непосредственно в Vim?

Ответы [ 2 ]

5 голосов
/ 21 мая 2009
  • Сначала выберите ваш текст,
  • , затем скопируйте его с y,
  • и, наконец, вы можете выполнить:

    : exe '!'. Join (split (@ "," \ n "), ';')

1 голос
/ 29 июня 2009

Это может быть слишком упрощенно, но почему бы просто не сделать:

:e README
:%!bash

Это фильтрует текущий файл через bash, выполняя каждую строку как команду. Текущий буфер заменяется выводом всех команд в файле.

Может быть полезно сделать :w RESULTS, чтобы сначала сохранить его как другой файл, чтобы случайно не перезаписать оригинал:

:e README
:w RESULTS
:%!bash

Вы сказали, что хотите сделать это с помощью визуального выделения, которое будет работать точно так же. После выбора того, что вы хотите выполнить, введите :. '<,'> будет автоматически добавлен к текущей команде. '< - это отметка начала текущего выделения, тогда как '> - это отметка в конце текущего выделения. Вы можете просто запустить только те команды, которые вы выбрали, как указано выше:

:'<,'>!bash

Это заменит только выбранные команды с выходом выполнения этих команд.

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