2009-05-20 3 views
0

У меня есть следующие команды в файле README:Невозможно запустить множество команд в визуальном режиме Vim в внешне

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

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

Я бегу безуспешно

: '<,'> ! 

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

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

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

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

v yy 

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

ответ

1

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

 
:e README 
:%!bash 

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

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

 
:e README 
:w RESULTS 
:%!bash 

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

 
:'<,'>!bash 

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

+0

@Compiler: Спасибо за ваш ответ! –

5
  • Сначала выберите текст,
  • затем скопировать его с y,
  • и, наконец, вы можете выполнить:

    : '!'. Ех присоединиться (раскол (@ "" \ п "), ';')

+0

Ваша команда работает! Спасибо. Интересно, есть ли более короткий способ сделать то же самое. Мне трудно запомнить эту команду. –

+1

Вы можете определить отображение: ->: vnoremap anycombo y: exe '!'. Join (split (@ "," \ n "), ';')

+0

@Luc: Не могли бы вы привести пример комбо. Я новичок в их создании. Я положил неудачно как комбо, то есть нажать TAB и A, чтобы получить последнюю часть. –

Смежные вопросы