Ответ 1
Комментарий и другой ответ указывают, как запустить файл с vim. Но они затушевывали некоторые действительно мощные возможности. Я хотел бы объяснить, как некоторые из них работают более подробно.
Самый простой способ запуска скрипта python в vim - просто вызвать интерпретатор python в файле, например
:!python %
или, как я предпочитаю делать, чтобы убедиться, что нет несохраненных изменений,
:w | !python %
Но даже нет необходимости иметь файл для запуска скрипта python в vim. Причина в том, что :w
! = Save! :w
означает запись, и если аргумент не указан, происходит запись в файл, который вы редактируете. Однако вы можете писать в STDOUT, в другой файл или даже в другую программу. Поэтому, если вы хотите запустить свой буфер в виде кода на Python, не имея файла для сохранения и запуска, вы можете просто сделать:
:w !python
Это означает, что текущий буфер записывается во внешнюю программу "python". Это буквально просто отправляет содержимое вашего буфера непосредственно на python.
Теперь, когда это становится действительно круто. В vim :w
- это команда "ex", например, команда, которую вы запускаете из командной строки vim, которая первоначально была из ex, очень старого текстового редактора unix. Замечательная вещь о командах ex заключается в том, что, поскольку все они основаны на линиях, вы можете прямо указать, к каким строкам вы хотите применить команду. Например:
:2w myfile.txt
будет записывать только строку 2 в файл "myfile.txt". Вы даже можете указать диапазон, например
:2,7w myfile.txt
будет писать строки 2-7 на "myfile.txt". Это означает, что, используя ваш пример, мы можем запускать
:1w !python
просто запустить
print('hello')
Чтобы сделать это более удобным, вы можете использовать визуальный режим для выбора каждой строки, которую вы хотите запустить, которая автоматически заполнит правильный диапазон для вас. Это будет выглядеть
:'<,'>w !python
Чтобы сделать это более удобным, я бы рекомендовал добавить что-то вроде
xnoremap <leader>p :w !python<cr>
к вашему .vimrc
. Затем вы можете визуально выбирать все, что хотите, и запускать его в виде кода на Python, набрав
\p
(замените \
на то, что вы создали в качестве своего лидера). Вы также можете сделать
nnoremap <leader>p :w !python<cr>
или же
nnoremap <leader>p :w | !python %<cr>
в зависимости от того, хотите ли вы сохранить файл или нет.