Как открыть оболочку внутри окна Vim?

Я могу открыть оболочку с помощью команды: shell в Vim, однако я не могу редактировать файл и в то же время использовать оболочку.

Есть ли способ разделить Vim во многих Windows (или вкладках) и открыть оболочку в одном из них?

Ответ 1

Ну, это зависит от вашей ОС - на самом деле я не тестировал ее в MS Windows, но Conque - один из лучших плагинов есть.

Собственно, это может быть лучше, но работает.

Ответ 2

Vim 8 (и neovim) поддерживают это изначально с помощью команды :ter[minal]. См. terminal-window в документации для деталей.

Ответ 3

:vsp или :sp - разбивает vim на два экземпляра, но вы не можете использовать: shell только в одном из них.

Почему бы не отобразить еще одну вкладку терминала, а не другую вкладку vim. Если вам нравится эта идея, вы можете попробовать: Ctrl-shift-t. и перемещаться между ними с помощью Ctrl - pageup и Ctrl - pagedown

Если вы хотите только несколько команд оболочки, вы можете сделать любую команду оболочки в vim с помощью !

Например :!./a.out.

Ответ 4

Если вы еще не обнаружили, вы можете использовать удивительный экранный плагин.

Conque также является исключительным, но я нахожу экран гораздо более практичным (он не "засоряет" ваш буфер, например, и вы можете просто отправить команды которые вам действительно нужны после их редактирования в вашем буфере)

Ответ 5

Вы можете использовать tmux или screen (второй может выполнять только горизонтальные расщепления без патча) для разделения вашего терминала. Но я не знаю, как иметь один экземпляр Vim в обеих панелях.

Ответ 6

Я думаю, это довольно старый вопрос, но теперь в 2017 году. У нас есть neovim, который является веткой vim, которая добавляет поддержку терминала.

Так что вызывая :term откроет окно терминала. Прелесть этого решения по сравнению с использованием tmux (терминального мультиплексора) заключается в том, что у вас будут те же привязки окон, что и в вашей настройке vim. neovim совместим с vim, поэтому вы можете скопировать и вставить ваш .vimrc и он будет работать.

Большим преимуществом является то, что вы можете переключиться в обычный режим на открытом терминале, и вы можете выполнять базовые операции копирования и редактирования. Я думаю, это также очень полезно для коммитов git, так как все, что в вашем буфере, вы можете использовать в автозаполнении.

Я обновлю этот ответ, так как vim также планирует выпустить поддержку терминала, вероятно, в vim 8.1. Вы можете следить за прогрессом здесь: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

Как только он выйдет, я верю, что это более качественная установка, чем использование tmux.

Ответ 7

Shougo VimShell, который может автоматически заполнять имена файлов, если используется с neocomplcache

Ответ 8

Не совсем то, о чем вы просите, но вас может заинтересовать мой плагин vim-notebook, который позволяет пользователю поддерживать фоновый процесс живым и оценить его часть текущего документа (и записать результат в документе). Он предназначен для использования в документах в стиле ноутбука, содержащих фрагменты кода для оценки.

Ответ 9

Вы можете открыть программу "screen", разделить экран, открыть оболочку на одном и vim на другой. Работает для меня.

Ответ 10

В настоящее время я использую tmux.

Установка: sudo apt-get install tmux Запустите его: tmux

Ctrl + b, за которым следует Ctr +%: он разбивает ваше окно терминала на две вертикальные половины.

Ctrl + "стрелка влево | стрелка вправо": перемещается между терминалами.