В vi я могу получить оболочку терминала с помощью :sh
команды. А позже я могу вернуться к vi с помощью exit
оболочки.
Но, если я долгое время пользовался терминалом оболочки, и я забыл, exit
закроет ли что-нибудь или вернет мне ви.
Есть ли способ проверить, вернусь ли я к vi? jobs
или fg
не работает.
external-command
hailinzeng
источник
источник
Ответы:
В обычной оболочке:
После использования
:shell
Так это выглядит , как Vim устанавливает
VIMRUNTIME
,VIM
иMYVIMRC
переменные окружения. Из нихVIM
мне кажется наиболее надежным (у вас может не быть vimrc или даже vim runtime).Вы также можете установить свои собственные переменные среды:
Это особенно полезно для передачи информации о буфере, который вы редактируете; например:
Будет отображаться как что-то вроде:
источник
Моя командная строка настроена на добавление красного символа «+», который указывает, что я нахожусь в vim «: sh», в отличие от обычного сеанса оболочки. Краеугольным камнем этого является то, что «$$» является pid текущего процесса, поэтому:
Когда у вас есть это, вы можете легко встроить и создать что-то, как я описал, для использования в вашем .bashrc или подобном.
Примечание : метод переменной среды ($ VIM), описанный в другом месте, кажется лучше, чем этот, но я оставлю это, поскольку он работает для определения, являетесь ли вы дочерним процессом чего-либо (не только vim).
источник
:sh
: MYVIMRC, VIM и VIMRUNTIME. Все, что вам нужно сделать, чтобы знать, что вы работаете в под-оболочке Vim, это проверить наличие любого из них.Выполнить
ps
или лучшеps -fH
. Пример:Преимущество использования
ps -fH
over justps
заключается в том, что он позволяет вам видеть, находитесь ли вы в под-оболочкеvim
или если вы положилиvim
в фоновом режиме. В таком случаеps -fH
будет выглядеть так:источник