Я пытаюсь настроить связывание клавиш для создания скелета функции текущего файла, используя grep и список местоположений.Поскольку я сканирую только текущий файл, имя файла в начале каждой строки является избыточным и делает вывод менее читаемым.Во-вторых, шаблон отображения по умолчанию удаляет пробелы в начале сообщения, удаляя информацию о вложенности функций.
Изменение grepformat
по умолчанию %f:%l:%m
на %l:%m
удаляет имя файла в начале каждогострока в списке местоположений, но без имени она не знает, что искать в текущем файле, поэтому я не могу перейти к различным функциям.
Просмотр документации errorformat
и quickfix
не делаетНасколько я могу судить, я могу указать любые варианты изменения шаблона отображения списка быстрых исправлений \ местоположений.
Это обеспечивает привязку клавиш для функционального списка местоположений, но при неправильном форматировании:
grepformat=%f:%l:%m
nnoremap <buffer> <leader>l :silent lgrep! function %<CR>:lopen<CR>
Это обеспечиваетлучше отформатированный, но не функциональный список местоположений:
grepformat=%l:%m
nnoremap <buffer> <leader>l :silent lgrep! -h function %<CR>:lopen<CR>
Обратите внимание, что опция -h
grep подавляет имя файла в выходных данных
Исходный вывод grep почти точно так, как я хочуотформатированный код:
1:function actigraphyCalculator(dirname)
69: function [checkedFiles, metadata] = readQcData
75: function fileContents = openFile(name, filePaths)
80: function fileContents = qcprocessing(name, fileContents, metadata)
90: function fileContents = removeBadDays(name, fileContents, metadata)
106: function path = createSavePath(filepath)
Единственная проблема заключается в несовместимости отступов и разной длины номеров.используйте сообщения, чтобы они не выровнялись идеально.
Текущий вывод для списка местоположений того же файла:
calcActigraphy/actigraphyCalculator.m|1| function actigraphyCalculator(dirname)
calcActigraphy/actigraphyCalculator.m|69| function [checkedFiles, metadata] = readQcData
calcActigraphy/actigraphyCalculator.m|75| function fileContents = openFile(name, filePaths)
calcActigraphy/actigraphyCalculator.m|80| function fileContents = qcprocessing(name, fileContents, metadata)
calcActigraphy/actigraphyCalculator.m|90| function fileContents = removeBadDays(name, fileContents, metadata)
Обратите внимание на отсутствие отступа в начале сообщения. ** 1029