vim-поддержание сеанса в оболочке путем выполнения команд

vim имеет несколько способов выполнения команд оболочки из vim. Можно перейти к оболочке и обратно в vim, используя shell, ctrl+z текущий процесс и вернуться через fg. Выбранные / текущие строки могут быть выполнены с помощью !w bash.

однако все эти подходы полезны только для выполнения одной команды. Как только команда выполняется, оболочка-это процесс, который убивается.

Я хотел знать, есть ли способ продолжать выполнение фрагментов кода в оболочке и пусть оболочка запоминает функции / переменные из предыдущей команды (аналогично копированию фрагментов кода в приглашение оболочки) для отладки кода. Для этого сеанс оболочки должен быть каким-то образом сохранен.

Я часто сталкиваюсь с случаями, когда мне нужно выполнить несколько функций в оболочке, а затем проверить их, вызвав их. Стандартным подходом было бы скопировать их в другую оболочку, а затем выполнить их. Как это сделать изнутри vim?

2 ответов


Если ваш Vim был построен с поддержкой Python (большинство сборок Unix, сборки Windows / Cygwin не являются), Вы можете взглянуть на Conque Shell плагин, который позволяет запускать снаряд внутри буфера Vim.

Edit: исправление, по-видимому, Vim 7.3 для Windows теперь также поставляется с поддержкой Python (и, таким образом, совместимость Conque).


вы можете запустить vim (не gvim) из оболочки, а затем использовать <C-Z> приостановить vim. Вы возвращаетесь в вызывающую оболочку (а не под-оболочку) и возобновляете vim с fg. Согласно документам, это работает "на многих системах Unix".

:help suspend