Я наконец решил испытать Vim, поскольку я становлюсь все больше расстроенным редакторами GUI. До сих пор я люблю его, но я не могу найти справку для проблемы, которую я имею...
Я пытаюсь отобразить команду :Pyrun
к :!python %
в использовании Vim cmap
. Отображение обнаруживается прекрасный, если я ввожу :cmap
. Однако на вводе :Pyrun
, Я получаю это сообщение об ошибке:
Не команда редактора: Pyrun.
Вот то, что я пробую в .vimrc:
:autocmd FileType python :cmap Pyrun !python %
:autocmd FileType python :cmap Intpyrun !python -i %
Что я могу сделать для решения этой проблемы?
Я бы попробовал что-нибудь подобное в вашем .vimrc или вашем ftplugin/python_ft.vim
command Pyrun execute "!python %"
command Intpyrun execute "!python -i %"
Затем :Pyrun
и :Intpyrun
должны сработать
Затем вы могли бы сопоставить функциональную клавишу каждому
map <F5> :Pyrun<CR>
map <F6> :Intpyrun<CR>
G'day,
Аналогично ответу на karoberts, я предпочитаю более прямой:
:map <F9> :!python %<CR>
Если мой скрипт создает какой-то вывод, я также люблю перехватывать его в временном файле, а затем авторедактировать содержимое этих файлов в другой буфер, e. g.
:map <F9> :!python % 2>&1 \| tee /tmp/results
Затем я устанавливаю автореад, введя :set autoread
и открывая файл результатов в другом буфере
:split /tmp/results<CR>
Тогда я легко могу видеть результаты выполнения в буфере, который автоматически обновляется, когда файл результатов обновляется, запустив разрабатываемый скрипт.
HTH
cheers,
Лично я предпочитаю другой подход. Сначала создать функцию, принимающую аргументы команды, а затем создать команду для вызова функции:
fun! DoSomething( arg ) "{{{
echo a:arg
" Do something with your arg here
endfunction "}}}
command! -nargs=* Meh call DoSomething( '<args>' )
Так что это было бы как
fun! Pyrun( arg ) "{{{
execute '!python ' . expand( '%' )
endfunction "}}}
command! -nargs=* Pyrun call Pyrun( '<args>' )
Но есть лучший способ сделать это в Vim. Используйте makeprg:
makeprg=python\ %
Просто наберите :make
для запуска вашего текущего файла на Python. Используйте :copen
, чтобы показать список ошибок.