Я могу открыть оболочку с помощью команды: shell в Vim, однако я не могу редактировать файл и в то же время использовать оболочку.
Есть ли способ разделить Vim на несколько окон (или вкладок) и открыть оболочку в одной из них?
Я могу открыть оболочку с помощью команды: shell в Vim, однако я не могу редактировать файл и в то же время использовать оболочку.
Есть ли способ разделить Vim на несколько окон (или вкладок) и открыть оболочку в одной из них?
Ответы:
Neovim и Vim 8.2
поддерживают это изначально с помощью :ter[minal]
команды.
Подробнее см. terminal-window
В документации.
vsplit term://bash
если вы используете Neovim.
terminal
команда разбивает окно и выделяет командную оболочку специальным цветом в строке состояния окна. Slick.
Ну, это зависит от вашей ОС - на самом деле я не тестировал его в MS Windows, - но Conque - один из лучших плагинов.
Собственно, может и лучше, но работает.
:vsp
или :sp
- разбивает vim на два экземпляра, но вы не можете использовать: shell только в одном из них.
Почему бы не отобразить другую вкладку терминала, а не другую вкладку vim. Если вам нравится идея, вы можете попробовать: Ctrl-shift-t.
и перемещаться между ними с помощью Ctrl - pageup
иCtrl - pagedown
Если вам нужно всего несколько команд оболочки, вы можете создать любую команду оболочки в vim, используя !
Например :!./a.out
.
vim
магию пути следующим образом::!./%
Ctrl
того, что я полагаю, ваш ответ предполагает gnome-terminal или аналогичный эмулятор.
Вы можете использовать tmux
или screen
(второй может делать только горизонтальное разделение без патча), чтобы разделить ваш терминал. Но я не знаю, как иметь один экземпляр Vim на обеих панелях.
Если вы еще не узнали, вы можете использовать замечательный плагин для экрана .
Conque тоже исключительный, но я считаю screen более практичным (например, он не «засоряет» ваш буфер, и вы можете просто отправлять команды, которые вам действительно нужны, после редактирования их в вашем буфере)
Думаю, это довольно старый вопрос, но сейчас в 2017 году. У нас есть neovim, это форк vim, который добавляет поддержку терминала.
Таким образом, вызов :term
откроет окно терминала. Преимущество этого решения по сравнению с использованием tmux (терминального мультиплексора) заключается в том, что у вас будут те же привязки окон, что и в вашей vim
настройке. neovim совместим с vim, поэтому вы можете просто скопировать и вставить свой, .vimrc
и он будет работать.
Еще одним преимуществом является то, что вы можете переключиться в нормальный режим в открытом терминале и выполнять базовое копирование и редактирование. Я думаю, это также очень полезно для коммитов git, поскольку все в вашем буфере вы можете использовать в автозаполнении.
Я обновлю этот ответ, поскольку vim также планирует выпустить поддержку терминалов, вероятно, в vim 8.1. Вы можете следить за прогрессом здесь: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
После его выпуска я считаю, что это более лучшая установка, чем использование tmux.
Не совсем то, что вы просите, но вас может заинтересовать мой плагин vim-notebook, который позволяет пользователю поддерживать фоновый процесс и заставлять его оценивать часть текущего документа (и записывать результат в документ). Он предназначен для использования в документах типа записной книжки, содержащих фрагменты кода, которые необходимо оценить.
Вы можете захотеть открыть "экранную" программу, разделить экран, открыть оболочку на одном и vim на другом. Работает для меня.
Сейчас я использую tmux.
Установка: sudo apt-get install tmux Запустить: tmux
Ctrl + b, за которым следует Ctrl +%: он разделяет окно терминала на две вертикальные половины.
Ctrl + «стрелка влево | стрелка вправо»: перемещается между терминалами.