Раньше был патч оболочки для vim, но он больше не компилируется afaik. Самое близкое к настоящей оболочке - это использовать screen или tmux. Это самое большое, чего мне не хватает в vim.
Если вы используете Vundle для управления плагинами, вы можете добавить Bundle 'jewes / Conque-Shell' в свой .vimrc файл и запустить: BundleInstall, чтобы установить его.
Mingjiang Shi
Одна вещь, на которую следует обратить внимание: требование + python или + python3 для vi может быть убийственным в некоторых рабочих средах.
:vspили :sp- разбивает vim на два экземпляра, но вы не можете использовать: shell только в одном из них.
Почему бы не отобразить другую вкладку терминала, а не другую вкладку vim. Если вам нравится идея, вы можете попробовать: Ctrl-shift-t.и перемещаться между ними с помощью Ctrl - pageupиCtrl - pagedown
Если вам нужно всего несколько команд оболочки, вы можете создать любую команду оболочки в vim, используя !
А чтобы запустить открытый в данный момент исполняемый файл, вы можете использовать vimмагию пути следующим образом::!./%
cprn
Почему бы не отобразить еще одну вкладку терминала - не все используют vim в эмуляторе терминала над графическим интерфейсом пользователя… Исходя из Ctrlтого, что я полагаю, ваш ответ предполагает gnome-terminal или аналогичный эмулятор.
törzsmókus
8
Вы можете использовать tmuxили screen(второй может делать только горизонтальное разделение без патча), чтобы разделить ваш терминал. Но я не знаю, как иметь один экземпляр Vim на обеих панелях.
screen может делать вертикальное разделение, если вы строите его из git.
Рэнди Моррис
8
Если вы еще не узнали, вы можете использовать замечательный плагин для экрана .
Conque тоже исключительный, но я считаю screen более практичным (например, он не «засоряет» ваш буфер, и вы можете просто отправлять команды, которые вам действительно нужны, после редактирования их в вашем буфере)
Думаю, это довольно старый вопрос, но сейчас в 2017 году. У нас есть neovim, это форк vim, который добавляет поддержку терминала.
Таким образом, вызов :termоткроет окно терминала. Преимущество этого решения по сравнению с использованием tmux (терминального мультиплексора) заключается в том, что у вас будут те же привязки окон, что и в вашей vimнастройке. neovim совместим с vim, поэтому вы можете просто скопировать и вставить свой, .vimrcи он будет работать.
Еще одним преимуществом является то, что вы можете переключиться в нормальный режим в открытом терминале и выполнять базовое копирование и редактирование. Я думаю, это также очень полезно для коммитов git, поскольку все в вашем буфере вы можете использовать в автозаполнении.
Не совсем то, что вы просите, но вас может заинтересовать мой плагин vim-notebook, который позволяет пользователю поддерживать фоновый процесс и заставлять его оценивать часть текущего документа (и записывать результат в документ). Он предназначен для использования в документах типа записной книжки, содержащих фрагменты кода, которые необходимо оценить.
Отменил -1, потому что не было объяснения. Кроме того, я тестировал решение плагина vim screen, и оно не сильно отличается от решения mrcybul. @mrcybul: танки за попытки помочь. Чтобы не получить отрицательные голоса, внимательно прочтите другие ответы и добавляйте свои, только если считаете, что они принесут что-то новое. Также укажите, почему ваше решение может быть лучше в определенных случаях.
Ответы:
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.
источник
VimShell от Shougo , который может автоматически дополнять имена файлов при использовании с neocomplcache
источник
Не совсем то, что вы просите, но вас может заинтересовать мой плагин vim-notebook, который позволяет пользователю поддерживать фоновый процесс и заставлять его оценивать часть текущего документа (и записывать результат в документ). Он предназначен для использования в документах типа записной книжки, содержащих фрагменты кода, которые необходимо оценить.
источник
Вы можете захотеть открыть "экранную" программу, разделить экран, открыть оболочку на одном и vim на другом. Работает для меня.
источник
Сейчас я использую tmux.
Установка: sudo apt-get install tmux Запустить: tmux
Ctrl + b, за которым следует Ctrl +%: он разделяет окно терминала на две вертикальные половины.
Ctrl + «стрелка влево | стрелка вправо»: перемещается между терминалами.
источник