Как повторно войти в Vim после:! удар?

Я замедляю узнающий Vim и сценарии оболочки Bash и сталкиваюсь с этой проблемой:

Когда я выполняю MacVim, я иногда хочу использовать командную строку для компиляции независимо от того, что это, я продолжаю работать (в этом случае маленькая программа Java). Таким образом, я ввожу :! bash и скомпилируйте то, чем случается так, что я нуждаюсь и тестирую его. Затем, когда я хочу вернуться к программе, я редактировал, я ввожу vim MyProgram.java и получите все виды грязности на моей сессии Vim как [8;1H~ [9:1H~ [10:1H~ ... etc.

Что я делаю неправильно здесь? Разве я не могу перейти назад в Vim, после того как я начал выполнять оболочку в нем?

Есть ли лучшие способы скомпилировать и петлять?

(Я использую MacVim 7.2 и Bash 3.2.48 на OSX 10.6.2.)

6
задан Thomas 21 December 2009 в 04:29
поделиться

5 ответов

Два предложения:

  1. Используйте exit , чтобы выйти из оболочки bash и вернуться в vim.
  2. В vim используйте : установите makeprg = name_of_your_make_program для автоматической компиляции из в vim с помощью команды : make . В качестве бонуса, если vim распознает набор инструментов, vim проанализирует вывод компилятора, покажет вам ошибки и позволит вам перейти к каждой из них, чтобы вы могли исправьте их. См. команды : cl , : cc , : cn и : cp для начала.
15
ответ дан 8 December 2019 в 03:27
поделиться

просто введите:

exit

Это завершит подпроцесс bash и вернется в vim. Было бы лучше использовать что-то вроде GNU Screen для одновременного обслуживания сеанса Vim и Bash (и переключиться легче, чем :! bash ... exit

6
ответ дан 8 December 2019 в 03:27
поделиться

Вы должны выйти из оболочки bash. Это можно сделать с помощью команды exit или, проще говоря, нажав CTRL + D в командной строке.

4
ответ дан 8 December 2019 в 03:27
поделиться

Попробуйте ввести exit или ctrl-d в оболочке bash. Это вернет вас в vim. Bash работает «внутри» vim, поэтому, если вы снова попытаетесь запустить vim, вы запустите vim внутри bash внутри vim и, следовательно, получите ошибки.

1
ответ дан 8 December 2019 в 03:27
поделиться

Другие ответы верны.

Я просто хочу упомянуть, что вы можете использовать

:sh

вместо

:!bash

См. : help sh .

Таким образом, vim знает, что вы запускаете оболочку, а не какую-то команду (которая оказывается bash).

3
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: