Доступ к терминалу, когда вы находитесь на Vim

Есть ли способ доступа к терминалу при использовании Vim ?

Мне не нравится открывать другой терминал или сохранять и выходить из текущего терминала.

Вы можете отправить vim сигнал SIGTSTP. Вы делаете это, нажимая ctrl + z . Vim будет приостановлен в фоновом режиме, и вы можете использовать терминал. Введите fg в терминал, чтобы возобновить работу с vim.

Бонусный наконечник: это работает практически во всех терминальных приложениях. Используйте bg чтобы приложение продолжало работать в фоновом режиме.

В vim просто введите:

 :!sh 

:! запускает внешний процесс – в этом случае sh , другую оболочку. Когда вы выйдете из оболочки, управление вернется в vim. Если вы хотите использовать оболочку одновременно с vim, добавьте & в конец команды sh:

 :!sh& 

Вы можете использовать команду :shell (или короткую форму :sh ). От :help :shell :

Эта команда запускает оболочку. Когда оболочка выходит (после команды «exit») вы возвращаетесь в Vim. Имя команды оболочки происходит из опции «shell».

По умолчанию на Ubuntu это даст вам bash. введите exit чтобы вернуться в vim, когда закончите.

В качестве дополнения ко всем ответам.

Вы можете установить плагин ConqueTerm

Этот плагин обеспечивает возможность запуска интерактивных программ внутри буферов vim.

После установки вы можете добавить эти 2 строки в ваш .vimrc :

 :nnoremap <Sw> :q!<CR> :nnoremap <St> :ConqueTermSplit bash<CR> 

И вы сможете запустить bash , нажав Shift + T , и закройте текущую вкладку Conque, нажав Shift + W

Это perferct, если вам нужно быстро открыть / закрыть bash .

Вот gif , показывающий, как это выглядит

Другой вариант с экраном или byobu – открыть вкладку в этих программах. Эти программы упрощают сохранение открытой оболочки cq терминала и сеанса переключения между этими экранами с помощью клавиатуры.

С недавнего vim вы можете теперь делать:

 :terminal 

Это было первоначально добавлено в Vim 8.0.693 , но с большим количеством ошибок. См . :help terminal :

 WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE The terminal feature is optional, use this to check if your Vim has it: echo has('terminal') If the result is "1" you have it. [...] The terminal feature requires the +multi_byte, +job and +channel features. ============================================================================== 1. Basic use terminal-use This feature is for running a terminal emulator in a Vim window. A job can be started connected to the terminal emulator. For example, to run a shell: :term bash Or to run a debugger: :term gdb vim The job runs asynchronously from Vim, the window will be updated to show output from the job, also while editing in any other window.