, Таким образом, любой выделенный текст внутри gvim в визуальном режиме вставляется в буфер обмена.

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

Ответы на вопрос(2)

set guioptions+=a, Таким образом, любой выделенный текст внутри gvim в визуальном режиме вставляется в буфер обмена.

Решение Вопроса
Предполагая, что вы имеете в виду командную строку Vim:

(если вы имеете в виду командную строку ОС, см..

Для частей строк (т.е. без символа конца строки) вы можете сделать что-то вроде этого:

" Visually select lines, then:
y:<C-R>"<ENTER>

где<C-R> значит нажатьCtrl+R,y «дергает» выделенный текст,: входит в командный режим,<C-R>" тянет содержимое" (последний набранный текст) зарегистрируйтесь в командной строке и<ENTER> (очевидно) запускает команду.

Если вы хотите сделать что-то построчное, это немного сложнее (поскольку командной строке не нравится^Mв команде). Я бы порекомендовал что-то подобное в вашем vimrc:

function! RunCommands()
    exe getline('.')
endfunction
command -range RunCommands <line1>,<line2>call RunCommands()
vmap ,r :RunCommands<CR>

Выберите строки (после перезапуска vim) и нажмите,r.

Еще один способ, который может оказаться полезным, - скопировать нужные строки, нажатьq: чтобы открыть окно командной строки и вставить туда нужные строки, затем наведите курсор на нужную строку и нажмитеВОЙТИ, Преимущество в том, что вы можете редактировать команду перед нажатиемВОЙТИ, Он будет запускать только одну команду за раз.

Если вы имеете в виду (например, командную строку Windows или Linux):

Используйте функцию, которую я перечислил выше, но вместо:

exe getline('.')

использование

call system(getline('.'))

или, если вы хотите увидеть результат:

echo system(getline('.'))

или же

echomsg system(getline('.'))
Для дополнительной информации:
:help :echo
:help :echomsg
:help :messages

:help :vmap
:help :command-range
:help :command
:help :function

:help c_CTRL-R
:help :exe
:help getline()
:help system()
 DrAl18 янв. 2011 г., 16:18
Ах да, я так думаю ... упс!
 Screenack20 янв. 2011 г., 13:31
Вы БОМБА! Это именно то, что я искал, тоже всесторонне. Я буду использовать строку echomsg, чтобы увидеть результат выбранной команды. Я подтвердил этот совет на Mac, FWIW, но не ожидайте проблем на других платформах.
 Xavier T.18 янв. 2011 г., 16:16
В этом случае, я думаю,into a terminal console значит! (командная строка Vim). Но +1 за хороший ответ, касающийся обоих случаев.

Ваш ответ на вопрос