Заменить выбор vim с помощью команды оболочки

Мне нужно передать выделенный текст в vim команде curl в качестве значения параметра. Например. Мне нужно иметь возможность запускать

curl -sSd css="body { border-radius: 5px; }" http://prefixr.com/api/index.php

из vim. Очевидно, что часть "body {border-radius: 5px;}" будет динамической. Обычно, выбор визуального режима в vim.

Как получить выделенный текст и передать его как параметр для завивки?

Ответ 1

Вы можете использовать команду :! для фильтрации выбранного текста через внешнюю программу. Текст передается в stdin и заменяется результатами из stdout.

В этом случае вам придется использовать подстановку cat и command для подачи строк в качестве параметра для завивки, например:

:'<,'>!curl -sSd css="`cat`" http://prefixr.com/api/index.php

Ответ 2

Не могу проверить это прямо сейчас, поэтому не на 100% уверен, что он будет работать

esc, а затем

:r ! curl -sSd="`cat`" http://prefixr.com/api/index.php`

Ответ 3

Выбрав одну или несколько строк и используя:! вы можете передать эти строки команде, например:

Итак, сортируйте весь файл с помощью команды sort, попробуйте: ggVG! sort, который должен выглядеть так, как в вашем редакторе:

В

С

А

: '<' > сортировки

Ответ 4

Для сообщений о трубопроводах без безвозвратных строк, см. этот пример в верхнем регистре выделенного текста:

select-region c Control-r = system("perl -pe '$=uc($)'", @")

Объяснение: выберите область, c - (сменить выбор), C-r для выполнения выражения. Примечание: доллар подчеркивает доллар, но подчеркивание не видно после публикации.