4

Я знаю, что могу сделать !commands но я хотел бы как-то интегрировать оболочку в vim. Или я могу использовать экран и разделить экран так, чтобы vim занимал, скажем, половину экрана?

4 ответа4

9

Ctrl Z приостановит vim и вернет управление bash. Используйте fg чтобы вернуться к vim.

5

Интеграция подпроцессов является основным слабым местом 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.

3

Как вы предлагаете, я бы просто использовал экран.

  • screen
  • ^ Ac, чтобы создать новое окно
  • ^ КАК разделить экран по горизонтали на две области (в некоторых версиях Ctrl- | для разделения по вертикали)
  • ^ A-Tab для перехода в новый регион
  • ^ An, чтобы изменить регион на следующее окно

Если вы не хотите ровно пополам, вы можете:

  • ^ A-+, чтобы увеличить размер текущего региона

Если вам нужно посмотреть, что находится в vim, когда вы находитесь в командной строке, это хороший способ. Если вы этого не сделаете, метод Ctrl-Z/fg уже упоминался, это путь.

2

Вы также можете использовать:shell, чтобы просто создать оболочку. Введите exit или Ctrl+D, чтобы выйти из оболочки и вернуться в vim. Если вы хотите, чтобы оба работали одновременно, используя fg/bg (для Ignacio), screen (как вы предложили) или просто два отдельных терминала (xterms, виртуальные консоли и т.д.), Вы можете выбрать лучший вариант.

Если вы зайдете на vim.org, вы, вероятно, найдете расширение, которое запускает оболочку напрямую, но в этот момент вы приближаетесь к emacs. ;) Вот пример использования экрана: http://www.vim.org/scripts/script.php?script_id=2711

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .