Я знаю, что, находясь в Vim (и Vi тоже, я думаю), если я хочу временно получить доступ к оболочке, я могу сделать одну из нескольких вещей:
- Используйте
:sh
(aka:shell
), затем выйдите из оболочки, чтобы вернуться в Vim - Используйте
:sus
(aka:suspend
:st
или:stop
), затем используйтеfg
чтобы вернуться в Vim - Используйте
:! <command>
для передачи команд через Vim в оболочку - Используйте
:mksession <filename>
для сохранения сеанса, выйдите из Vim, а затем восстановите сеанс с помощью:source <filename>
после возврата в Vim (по общему признанию, это, вероятно, слишком громоздко для большинства "временных" нужд доступа к оболочке) - Используйте программное обеспечение для работы с окнами, такое как screen, tmux и т.д.
Мой вопрос заключается в том, каковы технические и практические различия первых двух вариантов - использование :sh
против использования :sus
? На страницах справки Vim похоже, что единственное отличие состоит в том, что с :sus
вы либо автоматически записываете буфер (если установлено «autowrite»), либо рискуете потерять отредактированные буферы, если никогда не вернетесь в Vim, тогда как с :sh
у вас нет выбора , кроме как вернуться к Vim сессии при выходе из оболочки.
Существуют ли какие-либо иные различия, как технически (например, использование памяти и процессора), так и связанные с производительностью причины, по которым пользователь Vim может выбрать один метод из другого в других ситуациях?