Можно ли разбить окно в Vim / Vi с помощью терминала?

есть ли способ разделить окно внутри Vi / Vim, чтобы одно окно было терминалом?

С. П. решения, как установка новых текстовых редакторов и такой не поможет мне.

3 ответов


нет никакого способа сделать это без плагина. Вот несколько способов получить подобную функциональность.

  • используйте tmux или другой диспетчер окон терминала. В ответ на ваш P. s., tmux-это не другой текстовый редактор. Это просто позволяет разделить экран терминала, так что вы все равно будете использовать vim для редактирования текста.
  • вы также можете запускать команды терминала и просматривать вывод изнутри vim. Просто запустите команду, но предварите ее восклицанием точка. Например, если вы запустите :!ls в Vim, вы увидите список файлов в текущем каталоге. Любые другие команды, такие как :!pwd или :!git add * также будет работать. Если вы хотите прочитать вывод команды в текущий буфер vim, вы можете использовать команду read. Например, если вы запустите :read !ls vim введет список файлов в вашем текущем каталоге в ваш текущий буфер в позиции курсора.

в Vim 8, если он скомпилирован с , вы можете разделить текущее окно по горизонтали и добавить терминал с помощью команды :terminal или :term для коротких рук.

enter image description here

если вы хотите разделить окно по вертикали, лучший способ, который я знаю, - это сделать регулярное вертикальное разделение с :vsp или <c-w>v. Затем разделите одно из окон, чтобы иметь окно терминала (:term), затем, наконец, перейдите к меньшему, не-терминальному окну и закрой его.

enter image description here

редактировать: ...и буквально сразу после того, как я написал это, я нашел как легко вертикально разделить окно терминала...

:vertical terminal

" OR

:vert term

терминал откроется в чем-то похожем на режим вставки и нажав <c-w>N поставит вас в" нормальный " режим, где вы можете иметь регулярные движения Vim и можете запускать команды Vim. Обратите внимание, что во многих оболочках (я точно знаю в Bash и Zsh) вы можете запустить set -o vi уметь нажмите <c-[> или <esc> и используйте движения Vim в любом случае. Лучшая часть об этом-удар v когда в" нормальном " режиме, где текущая команда открывается в новом экземпляре Vim и запускается при выходе из Vim.


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

но рекомендую команда экрана linux, который имеет почти такое же поведение как Vim (особенно команды перемещения) при входе в режим копирования, выполнив Ctrl+a Esc