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