
Когда я пытаюсь запустить некоторые команды, такие как :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- разделяет окно по вертикали
Затем вы можете использовать одно окно только для редактирования файла, а второе — для выполнения через:делать.