Я знаю, что могу сделать !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