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