Завершение ключевого слова Vim
Как сообщить редактору Vim о моем пути к файлам include, чтобы он мог автоматически заполнять имена функций, когда я нажимаю CTRL + N?
Например, у меня есть программа на C, как показано ниже:
#include<stdio.h>
int main()
{
sca // here I press control+N, it does not complete to scanf
}
Ответы
Ответ 1
В .vimrc
добавьте пути к вашему .vimrc
:
set path+=/usr/include/**
set path+=/my_include_dir/include
set path+=/my_include_dir/srclib/apr/**
set path+=/my_other_include_dir/srclib/apr-util/**
** means all sub-directories.
* means all contained directories
. means all files in the directory of the found file
+= means prepend to existing path (iirc)
Вы также можете проверить пути, открыв файл и затем введя
:checkpath
Это даст вам список всех включенных файлов, которые отсутствуют. Нотабене Кажется, он не обрабатывает директивы препроцессора, поэтому вы получите ложные срабатывания. Ввод
:checkpath!
Дает полный список найденных и отсутствующих файлов include.
Ответ 2
Кроме того, важно отметить, что есть много функций завершения.
^x ^o = "omnicomplete"
^x ^i = "included-files completion"
^x ^f = "path completion"
^x ^l = "Complete this line using one that looks the same"
см.
:help ins-completion
для большего.
Ответ 3
Vim может также знать путь уже, если файлы находятся в стандартном расположении.
< С-п > использует опцию 'complete', а флаг i
сканирует включенные файлы. Чтобы добавить i
в 'complete':
set complete+=i
вы также можете получить файл тегов из символов, которые вы хотите заполнить, которые вы можете использовать с помощью:
set complete+=t