В большинстве редакторов есть функция, например, когда вы нажимаете некоторые клавиши, помещая курсор над функцией, она выдает документацию по этой функции вместе с количеством и типом аргументов, которые принимает эта функция.
Мне было интересно, предлагает ли Vim такую поддержку. Например, при кодировании на C я использую встроенную функцию qsort()
. Поскольку я не уверен в типе и количестве аргументов, которые он принимает, я хотел бы знать это, не выходя из Vim. Является ли это возможным?
autocompletion
sherelock
источник
источник
'keywordprg'
(название программы, которая может обрабатывать документацию для языка, который вы хотите), то нажавK
ключевое слово (которое может быть именем функция), вы должны получить информацию, которую вы хотите. Например, если вы устанавливаетеcppman
( github.com/aitjcize/cppman ) и добавляете autocmd в ваш vimrc, напримерautocmd FileType cpp setlocal keywordprg=cppman
, тоcppman
должны обрабатывать документацию в буфере c ++. Не проверено, хотя.cppman
это отличное предложение, если у вас установлены справочные страницы на C и C ++ (manpages-posix-dev
иlibstdc++-X.Y-doc
пакеты в системах на основе Debian),man
должен работать обычный старый .Ответы:
Если вы можете настроить YouCompleteMe , он поддерживает C, C ++, JavaScript, Go и некоторые другие языки. Вот оно в действии:
Это немного раздражает в установке , и после установки вам нужно настроить его для C и C ++ , создав
.ycm_extra_conf.py
. Я снял один из этого репо , и получил этот эффект.источник
qsort(a
, всплывающее окно исчезает, что затрудняет запоминание следующих аргументов.YcmCompleter GoTo
, которая обычно отправляет вас туда, где была определена функция / класс в коде. Это строка чуть выше строки документации, которая перечисляет все, что вы просили. Я не уверен, находится ли встроенное комментирование в том же месте в C / Java / C ++.Для C нажатие
K
на ключевое слово откроет встроенную страницу руководства напрямую. Например, поместите курсор наprintf
ключевое слово:Теперь нажмите
K
(верхний регистр K) и страница справкиprintf
должна появиться в VIM:Похоже, что это работает из коробки во всех дистрибутивах Debian, на которых я пробовал, никакой специальной конфигурации не требуется.
источник
printf(1)
руководства команды, а неprintf(3)
функции. В любом случае, справочные страницы функций C получены отmanpages-dev
, который обычно устанавливается по умолчанию, но не всегда, а функции POSIX включеныmanpages-posix-dev
- обычно не устанавливаются по умолчанию, равно как и документация C ++ (libstdc++-X.Y-doc
).Если вам нужна надлежащая документация , плагин в комментарии saginaw, кажется, покрывает ваши потребности в C ++. Я не знаю общего, но вы можете найти альтернативы для других языков на vim.org.
Если…
Вы можете использовать,
<C-w>}
чтобы открыть определение ключевого слова под вашим курсором в окне предварительного просмотра. YMMV, конечно.Видите
:help preview-window
,:help tags
и:help ctags
.Вы также можете использовать встроенную в Vim функцию «include-search»: нажмите,
[i
чтобы напечатать «подпись» слова под курсором в командной строке:См
:help include-search
.источник
[i
странно. Это работает дляstdlib.h
иqsort
, но неcstdlib
иstd::qsort
или простоqsort
.<C-w>
означает,CTRL-W
какая номенклатура используется в:help
файлах. Затем вы можете использовать,:pc
чтобы закрыть окно предварительного просмотра.Тип файла Vim C / C ++ поставляется с приличной функцией omnicompletion, которая поддерживает функцию «предварительного просмотра». Поэтому добавьте «preview» в ваш параметр completeopt и увидите сигнатуру функции при завершении режима вставки.
В обычном режиме вы можете нажать CTRL + W}, чтобы открыть объявление функции в окне предварительного просмотра вручную.
источник
Как уже упоминалось, нажатие
K
на ключевое слово работает путем поиска страницы руководства. Для получения справочных страниц C ++ вы можете попробовать https://github.com/aitjcize/cppman (он получает «справочные страницы» от cplusplus.com и cppreference.com).источник
Установите YouCompleteMe. Когда вы поместите курсор на идентификатор, введите
YcmCompleter GetDoc
команду, чтобы получить документ в маленьком окне предварительного просмотра внизу. Он работает во многих языках, таких как Python и C / C ++.Youcompleteme также отображает окно предварительного просмотра во время его функции автозаполнения. Вы можете настроить поведение предварительного просмотра документа с помощью
g:ycm_autoclose_preview_window_after_completion
переменной.источник