Есть ли способ получить доступ к терминалу при использовании Vim ?
Я не люблю открывать другой терминал или сохранять и выходить из текущего терминала.
Есть ли способ получить доступ к терминалу при использовании Vim ?
Я не люблю открывать другой терминал или сохранять и выходить из текущего терминала.
Ответы:
Вы можете отправить VIM сигнал SIGTSTP. Вы делаете это, нажимая ctrl+ z. Vim будет приостановлен в фоновом режиме, и вы можете использовать терминал. Введите fg
в терминале, чтобы продолжить с vim.
Бонусный совет: это работает практически во всех терминальных приложениях. Используйте, bg
чтобы приложение продолжало работать в фоновом режиме.
%
вместо fg
. Или %1
, %2
и т. Д., Если у вас много фоновых заданий. jobs
Команда перечислит их. (Предполагая bash
в качестве оболочки.)
В vim просто введите:
:!sh
:!
запускает внешний процесс - в данном случае sh
другую оболочку. Контроль вернется к vim, как только вы выйдете из оболочки. Если вы хотите использовать оболочку одновременно с vim, добавьте &
в конец команды sh:
:!sh&
:shell
.
http-server
и она печатает журналы, которые я хочу просмотреть? Я хотел бы иметь возможность переключаться на мои файлы, вносить изменения, а затем вернуться к журналам.
Вы можете использовать :shell
команду (или краткую форму :sh
). От :help :shell
:
Эта команда запускает оболочку. Когда оболочка выходит (после команды «выход»), вы возвращаетесь в Vim. Название команды оболочки происходит от опции 'shell'.
По умолчанию в Ubuntu это даст вам bash. введите, exit
чтобы вернуться к vim, когда вы закончите.
С недавних пор 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.
Как дополнение ко всем ответам.
Вы можете установить плагин ConqueTerm
Этот плагин предоставляет возможность запускать интерактивные программы внутри буферов vim.
После установки вы можете добавить эти 2 строки в ваш .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
И вы сможете запустить bash
, нажав Shift+ T, и закрыть текущую вкладку Conque, нажав Shift+W
Это прекрасно, если вам нужно быстрое открытие / закрытие bash
.
Вот gif , показывающий, как это выглядит
Другой вариант с экраном или byobu - открыть вкладку в этих программах. Эти программы позволяют довольно легко держать открытую оболочку cq терминала и переключаться между этими экранами с помощью клавиатуры.
С новой версией vim 8.1 все, что вам нужно сделать, это просто :terminal
и вуаля! (это встроено)