Чи є спосіб отримати доступ до терміналу під час використання Vim ?
Мені не подобається відкривати інший термінал або зберігати та виходити з поточного терміналу.
Чи є спосіб отримати доступ до терміналу під час використання Vim ?
Мені не подобається відкривати інший термінал або зберігати та виходити з поточного терміналу.
Відповіді:
Ви можете відправити vim сигнал SIGTSTP. Ви робите це, натискаючи ctrl+ z. Vim буде призупинено у фоновому режимі, і ви можете використовувати термінал. Введіть fg
термінал для відновлення з vim.
Порада про бонуси: це працює практично у всіх термінальних програмах. Використовуйте, bg
щоб програма могла продовжувати працювати у фоновому режимі.
%
замість fg
. Або %1
, %2
і т.д. , якщо у вас є багато фонових завдань. jobs
Команда перелічить їх. (Припустимо, bash
як оболонку.)
In vim, просто введіть:
:!sh
:!
запускає зовнішній процес - в цьому випадку sh
іншу оболонку. Після виходу з оболонки контроль повернеться до vim. Якщо ви хочете використовувати оболонку одночасно з vim, додайте &
до кінця команду sh:
:!sh&
:shell
.
http-server
і вона друкує журнали, які я хочу переглянути? Я хотів би мати можливість перейти на свої файли, внести зміни, а потім перейти до журналів.
Можна скористатися :shell
командою (або короткою формою :sh
). Від :help :shell
:
Ця команда запускає оболонку. Коли оболонка виходить (після команди "вихід"), ви повертаєтесь до Vim. Назва команди оболонки походить від параметра 'shell'.
За замовчуванням на Ubuntu це дозволить отримати баш. введіть, 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 є відкриття вкладки в межах цих програм. Ці програми дозволяють досить легко тримати відкриту оболонку кек-сеансу термінальної сесії та перемикатися між цими екранами за допомогою клавіатури.
З новою версією vim 8.1 все, що вам потрібно зробити, це просто :terminal
і вуаля! (це вбудовано)