Добавление команды к Vim

Я наконец решил испытать Vim, поскольку я становлюсь все больше расстроенным редакторами GUI. До сих пор я люблю его, но я не могу найти справку для проблемы, которую я имею...

Я пытаюсь отобразить команду :Pyrun к :!python % в использовании Vim cmap. Отображение обнаруживается прекрасный, если я ввожу :cmap. Однако на вводе :Pyrun, Я получаю это сообщение об ошибке:

Не команда редактора: Pyrun.

Вот то, что я пробую в .vimrc:

:autocmd FileType python :cmap Pyrun !python %
:autocmd FileType python :cmap Intpyrun !python -i %

Что я могу сделать для решения этой проблемы?

39
задан Chinmay Kanchi 4 January 2010 в 20:19
поделиться

3 ответа

Я бы попробовал что-нибудь подобное в вашем .vimrc или вашем ftplugin/python_ft.vim

command Pyrun execute "!python %"
command Intpyrun execute "!python -i %"

Затем :Pyrun и :Intpyrun должны сработать

Затем вы могли бы сопоставить функциональную клавишу каждому

map <F5> :Pyrun<CR>
map <F6> :Intpyrun<CR>
41
ответ дан 27 November 2019 в 02:29
поделиться

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,

10
ответ дан 27 November 2019 в 02:29
поделиться

Лично я предпочитаю другой подход. Сначала создать функцию, принимающую аргументы команды, а затем создать команду для вызова функции:

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, чтобы показать список ошибок.

.
28
ответ дан 27 November 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: