Я знаю, что могу сделать !commands но я хотел бы как-то интегрировать оболочку в vim. Или я могу использовать экран и разделить экран так, чтобы vim занимал, скажем, половину экрана?
4 ответа
Ctrl Z приостановит vim и вернет управление bash. Используйте fg чтобы вернуться к vim.
Интеграция подпроцессов является основным слабым местом Vim. Встроенной поддержки для окна оболочки нет, но вы можете попробовать плагин vimsh.
На экране нажмите C-a c чтобы создать новое (полноэкранное) окно. Нажмите C-a p или C-a n чтобы перейти к предыдущему / следующему окну (C-a space также переместится к следующему окну). Также команда split (C-a S) разделит ваш экран на две области; Вы можете использовать один для оболочки и один для Vim. Нажмите C-a tab для переключения между регионами.
Вы всегда можете нажать Ctrl+Z, чтобы приостановить Vim и запустить команды в родительской оболочке; введите fg чтобы вернуться в Vim. Или вы можете использовать :shell для создания (полноэкранного) подоболочки; введите exit чтобы вернуться в Vim.
Как вы предлагаете, я бы просто использовал экран.
screen- ^ Ac, чтобы создать новое окно
- ^ КАК разделить экран по горизонтали на две области (в некоторых версиях Ctrl- | для разделения по вертикали)
- ^ A-Tab для перехода в новый регион
- ^ An, чтобы изменить регион на следующее окно
Если вы не хотите ровно пополам, вы можете:
- ^ A-+, чтобы увеличить размер текущего региона
Если вам нужно посмотреть, что находится в vim, когда вы находитесь в командной строке, это хороший способ. Если вы этого не сделаете, метод Ctrl-Z/fg уже упоминался, это путь.
Вы также можете использовать:shell, чтобы просто создать оболочку. Введите exit или Ctrl+D, чтобы выйти из оболочки и вернуться в vim. Если вы хотите, чтобы оба работали одновременно, используя fg/bg (для Ignacio), screen (как вы предложили) или просто два отдельных терминала (xterms, виртуальные консоли и т.д.), Вы можете выбрать лучший вариант.
Если вы зайдете на vim.org, вы, вероятно, найдете расширение, которое запускает оболочку напрямую, но в этот момент вы приближаетесь к emacs. ;) Вот пример использования экрана: http://www.vim.org/scripts/script.php?script_id=2711
