11

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

6 ответов6

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.

6

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

5

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

vim -O file_a.js file_b.js

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

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

4

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

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

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

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

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

2

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

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

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .