Vim выполняет команды bash/make в том же окне

Vim выполняет команды bash/make в том же окне

Когда я пытаюсь запустить некоторые команды, такие как :makeили :!ls, он показывает вывод в совершенно другом экране/виде, и файл, который я редактирую, не виден во время этого процесса. Есть ли способ все еще видеть мой файл и редактировать его, в то время как команда, которую я выполнил, может, вероятно, работать в окне внизу, вероятно, в окне быстрого исправления?

решение1

Если вы используете vim 8 или neovim, возможно, вы захотите попробовать:

http://github.com/skywind3000/asyncrun.vim,

Хорошая замена vim-dispatch с гораздо лучшим пользовательским интерфейсом.

введите описание изображения здесь

  • Прост в использовании, просто запустите фоновую команду с помощью :AsyncRun (как старая команда "!").

  • Команда выполняется в фоновом режиме, нет необходимости ждать завершения всего процесса.

  • Вывод отображается в окне быстрого исправления, ошибки сопоставляются с errorformat.

  • Вы можете сразу же просмотреть вывод ошибки или продолжить работу в vim во время выполнения.

  • Позвоните в колокольчик или воспроизведите звуковой сигнал, чтобы уведомить вас о завершении работы, пока вы сосредоточены на редактировании.
  • Обеспечить соответствующий пользовательский интерфейс в vim, neovim, gvim и macvim.

решение2

Вы могли бы использоватьvim-отправкаплагин для асинхронной сборки (make).

или если вы просто хотите, чтобы команда shell отображалась в окне быстрого исправления, вы можете использовать ex-mode:

:cexpr system('ls -alh') | copen

еще лучше, добавьте это в свой .vimrc

command -nargs=+ Run :cexpr system('<args>') | copen

и запустить в ex-режиме:

:Run ls -alh

решение3

Такое поведение совершенно нормально. CLI Vim не поставляется с эмулятором терминала и будетникогдасделать. GUI Vim поставляется с глупым эмулятором терминала, и я думаю, это то, что вы «давно помните».

Вам нужен плагин для запуска команд в отдельном окне Vim.ConqueTerm— это единственное имя, которое я могу вспомнить на данный момент, но, думаю, есть еще одно или два.

решение4

Разделение будетвимWindows у вас работает?

  • :расколоть- разделяет окно по горизонтали
  • :vsplit- разделяет окно по вертикали

Затем вы можете использовать одно окно только для редактирования файла, а второе — для выполнения через:делать.

Связанный контент