Vim с помощью оболочки, как я могу остановить работу, как C-Z в Unix? - PullRequest
2 голосов
/ 12 ноября 2010

У меня быстрый вопрос о программировании с использованием Vim. Иногда я делаю глупую ошибку в своей программе.

Например, приведенный ниже код Python имеет бесконечный цикл (скажем, foo.py ... будьте осторожны при его выполнении!)

x = 1
while x == 1:
    x = 1

Вы не увидите никакого результата, но вентилятор внутри вашего компьютера становится громче, и вам нужно прекратить выполнение этой программы на Python. В оболочке Unix вы можете сделать это, нажав Ctrl-z. Или в режиме оболочки Emacs просто нажмите Ctrl-c Ctrl-z.

Я знаю, как переключиться в режим оболочки в Vim: :sh (затем введите python foo.py) или :!python foo.py. Но я не знаю как остановить работу на оболочке из Vim, не убивая сам Vim . Кто-нибудь знает это?

Ответы [ 3 ]

5 голосов
/ 12 ноября 2010

Почему вы не можете использовать ? По умолчанию он отправляет сигнал INTerrupt, если только программа не может перехватить . Vim обрабатывает , как и любой другой ключ , но python по умолчанию этого не делает.

Кстати, в оболочках unix приостанавливает работу программы, в то время как в вышеупомянутом случае вам нужно убить ее, что делается с помощью . Приостановить = приостановить выполнение (хотя большинство программ не могут / не должны правильно обрабатывать SIGTSTP / SIGCONT).

0 голосов
/ 12 ноября 2010

Как вы определяете, что vim "убит"?Команда :sh запускает оболочку, которая выглядит как ваша обычная оболочка.При выходе из оболочки (например, после Ctrl-D ) вы возвращаетесь в Vim.

0 голосов
/ 12 ноября 2010
pkill <process name>

или

ps -ef, затем найдите процесс kill -9 <process id> (это безопаснее)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...