LINUX.ORG.RU

Vim - запустить питон-файл без блокировки редактора

 


0

1

Програмлю в питоне. Хочу по F5 сохранить файл и запустить его же питоном. В .vimrc прописано map <F5> :w\|!python %<cr>

При нажатии F5 питон запускается, но сам код нельзя редактировать до того как скрипт не отработает (код как бы блокируется). Как сделать так чтобы он запустился, но при этом можно было спокойно продолжать править код?

(кстати, использую вим под винду, но вероятнее всего что это значения не имеет)

Пустить фоновым процессом?

YAR ★★★★★ ()
Ответ на: комментарий от YAR

пробовал в фоновом так: map <F5> :w\|!python % &<cr>

результат тот же (блокировка)

sergii ()

Как вариант - inotify (inotifytools). Как по мне, удобнее.

schizoid ★★★ ()
Ответ на: комментарий от sergii

Странно, у меня с башем прекрасно работает вариант:

map <F5> :w\|!bash % 2>/dev/null 1>&2 &<cr>

Написал в скрипте sleep 100, нажал F5, увидел, что сохранило, в процессах вижу висящий sleep.

YAR ★★★★★ ()
Ответ на: комментарий от schizoid

Вешать отслеживание события изменения файла? Неудобно, если, например, периодически сохраняешься - может запуститься полурабочий скрипт. Разве что если по хоткею создавать файл-флаг для inotify, через который уже будет что-то запускаться. Но как-то костыльно...

YAR ★★★★★ ()

Понял откуда проблема.

Использую вим под винду. Думал что это не имеет значение, но оказалось что виндовский вим внешние команды исполняет через прогу vimrun.exe , которая в свою очередь через cmd.exe запускает то что должно бы запускаться.

И что с этим пониманием делать пока непонятно :) (под линуксом все работало как надо, а в винде как-то через попу получается - запустив файл исполняться нужно ждать чтобы он доработал, и только тогда его править нужно....)

sergii ()
Ответ на: комментарий от sergii

ошибся, так надо (повторюсь - это решение под винду): map <F5> :w\|!start python % &<cr>

sergii ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.