Добавление команды в Vim
Наконец-то я решил попробовать Vim, так как я все больше разочаровываюсь редакторами графического интерфейса. До сих пор я люблю это, но я не могу найти никакой помощи для проблемы, которая у меня есть...
Я пытаюсь сопоставить команду :Pyrun
с :!python %
в Vim, используя cmap
. Отображение отображается отлично, если я набираю :cmap
. Однако при вводе :Pyrun
я получаю это сообщение об ошибке:
Не команда редактора: Пирун.
Вот что я пытаюсь в .vimrc:
:autocmd FileType python :cmap Pyrun<cr> !python %<cr>
:autocmd FileType python :cmap Intpyrun<cr> !python -i %<cr>
Что я могу сделать для решения этой проблемы?
Ответы
Ответ 1
Я бы попробовал что-то подобное в вашем .vimrc или вашем ftplugin/python_ft.vim
command Pyrun execute "!python %"
command Intpyrun execute "!python -i %"
Тогда :Pyrun
и :Intpyrun
должны работать
Затем вы можете сопоставить функциональную клавишу с каждым
map <F5> :Pyrun<CR>
map <F6> :Intpyrun<CR>
Ответ 2
Я лично предпочитаю другой подход. Сначала создайте функцию, получающую аргументы команды, а затем создайте команду для вызова функции:
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>' )
Но есть лучший способ сделать это в Виме. Используйте makeprg:
makeprg=python\ %
Просто введите :make
, чтобы запустить текущий файл Python. Используйте :copen
, чтобы отобразить список ошибок.
Ответ 3
G'day,
Как и у karoberts, я предпочитаю более прямой:
:map <F9> :!python %<CR>
Если мой script создает какой-то вывод, мне также нравится записывать его во временном файле, а затем автоматически записывать содержимое файлов в другой буфер, например
:map <F9> :!python % 2>&1 \| tee /tmp/results
Затем я устанавливаю autoread, введя :set autoread
и открывая файл результатов в другом буфере
:split /tmp/results<CR>
Тогда я легко вижу результаты запуска в буфере, который автоматически обновляется, когда файл результатов обновляется, запуская script в процессе разработки.
НТН
веселит,