Нажатие клавиши ENTER при ошибке быстрого исправления переходит в пустой буфер - PullRequest
0 голосов
/ 26 апреля 2019

Я использую GVim 8.1 на Windows 10 без внешних плагинов. В моем файле .gvimrc настроено следующее:

let g:build_file_abs_path = fnamemodify(findfile("windows-build.bat", ";."), ":p:h")

" This build script is a basic wrapper for 'clang.exe file.c -o file.exe' style invocation
let &makeprg=g:build_file_abs_path . "\\windows-build.bat"

nnoremap <silent> <C-B> :cd <C-R>=g:build_file_abs_path<CR> <bar> make! <bar> copen <bar> redraw <bar> cd -<CR>

Теперь это автоматически открывает окно быстрого исправления с правильным выводом компилятора. Однако, когда я нажимаю клавишу ВВОД над ошибкой, курсор переходит в буфер для затронутого файла, но он полностью пуст с одной строкой. Кроме того, это происходит, когда я использую команды :cn и :cp внутри окна быстрого исправления. например:

Изображения, показывающие эти два состояния: до после

Обратите внимание, что: :verbose nmap <CR> не возвращает сопоставлений, поэтому здесь нет конфликта.

Я был бы признателен, если бы кто-нибудь смог дать представление о том, как избежать того, чтобы буфер стал пустым, и действительно перейти к ошибке в соответствующем файле. Большое спасибо.

1 Ответ

0 голосов
/ 27 апреля 2019

Благодаря комментарию Кристиана Брабандта я смог решить эту проблему.Я неправильно понял различие между рабочими каталогами vim и сценарием сборки.Я сделал следующие изменения:

let &makeprg="cd " . g:build_file_abs_path . " && windows-build.bat"
nnoremap <silent> <C-B> :make! <bar> copen <bar> redraw <CR>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...