Возможно ли в vim создать разделенное представление для командной строки?

12

Я знаю об этой опции :!ls, но я хотел бы использовать один из разделенных интерфейсов (после того, как используется :sp) в качестве окна командной строки. Это возможно? Если это так, как мне это сделать?

p1100i
источник
3
Для этого есть плагины и / или патчи. Но вы рано или поздно испытаете некоторые причуды. Мое предложение состоит в том, чтобы использовать вместо этого полнофункциональный облегченный терминал или screen / tmux.
Марко
В vim8 встроен режим терминала. См. здесь: superuser.com/a/1312655/658319
alpha_989

Ответы:

9

В отличие от Emacs, Vim старается быть немного более минималистичным, когда дело доходит до работы с оболочкой. Он не имеет возможности включить интерактивную оболочку в одну из своих вкладок или буферов.

Хотя для этого есть обходные пути. Как и вы, мне действительно нравится иметь bashокно в том же сеансе терминала, где у меня работает Vim. Это супер полезно при редактировании исходных файлов. В моем случае мне действительно нравится запускать среду Ruby REPL, чтобы я мог проверить операторы, прежде чем помещать их в исходные файлы.

Я использую Tmux для создания разделенного окна. В Tmux я создаю разделенное окно (ключ по умолчанию - ctrl + b, "). Это откроет 2 интерактивных сессии оболочки точно так же, как разделенное окно в Vim. Затем я запускаю Vim в одной из сессий, и все готово.

Из рисунка ниже видно, что я разделил окно по горизонтали bashсверху и Vim снизу.

введите описание изображения здесь

Я также использую Tmux для поддержки парного программирования с другими. Вы можете прочитать больше о моей настройке в моем блоге на http://jjasonclark.com/Remote-Pairing-with-SSH-and-Tmux-on-a-Mac .

Джейсон
источник
7

Не уверен, что вам нужно решение экрана GNU или решение, использующее встроенные функции разделения Vim, но если вы ищете последнее, это сработало для меня:

vim -O file_a.js file_b.js

Это открывает оба файла с вертикальным разделением. Для обычного (горизонтальное разделение) просто используйте нижний регистр -o.

PS Ctrl+ w, wдля переключения между двумя (я считаю, это хороший способ разграничить разделение экрана и разделение vim).

JM Janzen
источник
5
Хотя это не отвечает на первоначальный вопрос, этот ответ действительно ответил на мой поисковый запрос Google, который привел меня сюда. :)
Михай Александру Бирсан
То же самое - спасибо!
CaseyR
7

Vim 8 имеет встроенный режим терминала.

Вы можете ввести, :terчтобы получить доступ к терминалу.

Для навигации по командам в вашей оболочке по умолчанию используйте j,k.

Вы можете получить больше информации, набрав :h terв VIM8.

Примечание : ваш VIM8 должен иметь +terminalэто для работы.

alpha_989
источник
6

Вы пробовали экран ? Любая причина, которая не сработает для вас?

Алекс Най
источник
3

Я искал это долго и, насколько я могу сказать, ничего хорошего действительно невозможно. Я перепробовал много плагинов / аддонов для vim, но никто не работал так, как я хотел.

Это хорошо, хотя: ConqueTerm

Однако это имеет некоторое несоответствие с цветами. Попробуйте, может быть, это сработает для вас.

Rowman
источник
Проверьте это также: youtube.com/watch?v=5__I_cnxmPc&feature=related
rowman
1

Вы можете использовать NeoVim, он имеет встроенный режим терминала, похожий на emacs (хотя и очень новый) - это позволяет вам иметь его в окне, как и любой другой буфер vim.

alcesleo
источник