Заменить выделение vim выводом команды оболочки - PullRequest
15 голосов
/ 03 августа 2011

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

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

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

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

Ответы [ 4 ]

16 голосов
/ 04 августа 2011

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

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

:'<,'>!curl -sSd css="`cat`" http://prefixr.com/api/index.php
1 голос
/ 04 августа 2011

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

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

B

C

A

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

1 голос
/ 03 августа 2011

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

esc , затем

:r ! curl -sSd="`cat`" http://prefixr.com/api/index.php`
0 голосов
/ 10 июля 2016

Пропуск слов без безвозмездного перевода строки приведен в следующем примере для выделенного текста в верхнем регистре:

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

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

...