Предполагается, что вы имеете в виду командную строку Vim:
(если вы имеете в виду командную строку ОС, см. Ниже).
Для частей строк (т.е. без символа конца строки) вы можете сделать что-то вроде этого:
" Visually select lines, then:
y:<C-R>"<ENTER>
, где <C-R>
означает нажатие Ctrl + R . y
'дергает' выделенный текст, :
входит в командный режим, <C-R>"
вытягивает содержимое регистра "
(последний набранный текст) в командную строку и <ENTER>
(очевидно) запускает команду .
Если вы хотите сделать что-то построчное, это немного сложнее (поскольку командной строке не нравятся ^M
s в команде). Я бы порекомендовал что-то подобное в вашем vimrc:
function! RunCommands()
exe getline('.')
endfunction
command -range RunCommands <line1>,<line2>call RunCommands()
vmap ,r :RunCommands<CR>
Выберите строки (после перезапуска vim) и нажмите ,r
.
Еще один способ, который может оказаться полезным, - скопировать нужные строки, нажать q:
, чтобы открыть окно командной строки и вставить туда нужные строки, а затем переместить курсор на нужную строку и нажать * 1030. * ENTER . Преимущество заключается в том, что вы можете редактировать команду перед нажатием ENTER . Одновременно будет выполняться только одна команда.
Если вы имеете в виду (например, командную строку 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()