LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

В принципе, есть два варианта.

Либо вписываем в свой .vimrc что-то типа let g:syntastic_c_include_dirs = [ '../my_include', 'another_include' ] если для С, для С++ соответственно будет syntastic_cpp_include_dirs.

Либо делаем в каталоге проекта файл .syntastic_cpp_config, где на каждой строке строго по отдельности вписываем:

-Ipath_1
-Ipath_2
...
-Ipath_N

Тогда в .vimrc можно указать для каждого своего проекта, например, let g:syntastic_cpp_config_file = '.my_custom_include_file_for_syntastic_project_1' (например).

Но вообще посмотрите: help syntastic-checkers и там конкретно по своему языку. Для С частенько конфиг один будет, для С++ – другой, для С# (и прочих) соответственно третьи.

Сам по себе syntastic штука крайне мощная, в особенности в паре со splint (для сишника), так что конфигурировать его надо крайне точно.

Наконец, приведу часть, касающуюся splint/syntastic из своего vimrc (она меняется от случая к случаю), вдруг кому сгодится в качестве примера:

" Syntastic settings.
" https://github.com/vim-syntastic/syntastic/wiki/C%3A---gcc
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1

" Use syntastic on opening file and on saving/quitting.
" При открытии файл не проверяем -- пох, а вот при зарытии и 
" сохранении -- в обязательном порядке!
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 1

" Automatically jump to the first detected issue.
let g:syntastic_auto_jump = 1

" Include directory
"let g:syntastic_c_include_dirs = ['/usr/include/gtk-3.0/gtk','/usr/include/webkitgtk-4.0/webkit2']
let g:syntastic_c_check_header = 0
let g:syntastic_cpp_check_header = 0
let g:syntastic_c_no_include_search = 1
let g:syntastic_c_auto_refresh_includes = 1
let g:syntastic_c_no_default_include_dirs = 1

" Compiler's options:
" let g:syntastic_c_compiler_options = ' -std=gnu18'
"let b:syntastic_c_cflags = '-I/usr/include/gtk-3.0/gtk -I/usr/include/webkitgtk-4.0/webkit2'

" Опции можно указать и в конфигурационном файле:
" Создать данный файл можно так:
" pkg-config --cflags gtk+-3.0 glib-2.0 webkit2gtk-4.0 | tr ' ' '\n'
" >.syntastic_c_config
" И потом добавить -Wall, -Werror, -Wextra, -std=gnu18 по одной опции
" на строку.
let g:syntastic_c_config_file = '~/.vim/.syntastic_c_config'
" Syntax checkers.
let g:syntastic_c_checkers = ['make','splint','gcc']
" C-compiler.
let g:syntastic_c_compiler = 'gcc'
let g:syntastic_c_compiler_options = "-std=gnu99
        \  -Wall -Wextra -Wshadow -Wpointer-arith
        \  -Wcast-align -Wwrite-strings -Wmissing-prototypes
        \  -Wmissing-declarations -Wredundant-decls -Wnested-externs
        \  -Winline -Wno-long-long -Wuninitialized -Wconversion
        \  -Wstrict-prototypes -pedantic"

" Конфигурационный файл splint.
" let g:syntastic_splint_config_file = '.syntastic_splint_config'
" Check syntax for bash:
let b:shell = 'bash'

" <F9> to open :Errors, <Ctrl+F9> to :lclose errors list.
map <F9> :Errors<CR>
map <C-F9> :lclose<CR>

highlight link SyntasticErrorSign SignColumn
highlight link SyntasticWarningSign SignColumn
highlight link SyntasticStyleErrorSign SignColumn
highlight link SyntasticStyleWarningSign SignColumn

Комменты там что к чему в принципе есть. Остальное – по ману.

Исправление Moisha_Liberman, :

В принципе, есть два варианта.

Либо вписываем в свой .vimrc что-то типа let g:syntastic_c_include_dirs = [ '../my_include', 'another_include' ] если для С, для С++ соответственно будет syntastic_cpp_include_dirs.

Либо делаем в каталоге проекта файл .syntastic_cpp_config, где на каждой строке строго по отдельности вписываем:

-Ipath_1
-Ipath_2
...
-Ipath_N

Тогда в .vimrc можно указать для каждого своего проекта, например, let g:syntastic_cpp_config_file = '.my_custom_include_file_for_syntastic_project_1' (например).

Но вообще посмотрите: help syntastic-checkers и там конкретно по своему языку. Для С частенько конфиг один будет, для С++ – другой, для С# (и прочих) соответственно третьи.

Сам по себе syntastic штука крайне мощная, в особенности в паре со splint (для сишника), так что конфигурировать его надо крайне точно.

Наконец, приведу часть, касающуюся splint/syntastic из своего vimrc (она меняется от случая к случаю), вдруг кому сгодится в качестве примера:

" Syntastic settings.
" https://github.com/vim-syntastic/syntastic/wiki/C%3A---gcc
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
" Use syntastic on opening file and on saving/quitting.
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 1
" Automatically jump to the first detected issue.
let g:syntastic_auto_jump = 1

" Include directory
"let g:syntastic_c_include_dirs = ['/usr/include/gtk-3.0/gtk','/usr/include/webkitgtk-4.0/webkit2']
let g:syntastic_c_check_header = 0
let g:syntastic_cpp_check_header = 0
let g:syntastic_c_no_include_search = 1
let g:syntastic_c_auto_refresh_includes = 1
let g:syntastic_c_no_default_include_dirs = 1

" Compiler's options:
" let g:syntastic_c_compiler_options = ' -std=gnu18'
"let b:syntastic_c_cflags = '-I/usr/include/gtk-3.0/gtk -I/usr/include/webkitgtk-4.0/webkit2'

" Опции можно указать и в конфигурационном файле:
" Создать данный файл можно так:
" pkg-config --cflags gtk+-3.0 glib-2.0 webkit2gtk-4.0 | tr ' ' '\n'
" >.syntastic_c_config
" И потом добавить -Wall, -Werror, -Wextra, -std=gnu18 по одной опции
" на строку.
let g:syntastic_c_config_file = '~/.vim/.syntastic_c_config'
" Syntax checkers.
let g:syntastic_c_checkers = ['make','splint','gcc']
" C-compiler.
let g:syntastic_c_compiler = 'gcc'
let g:syntastic_c_compiler_options = "-std=gnu99
        \  -Wall -Wextra -Wshadow -Wpointer-arith
        \  -Wcast-align -Wwrite-strings -Wmissing-prototypes
        \  -Wmissing-declarations -Wredundant-decls -Wnested-externs
        \  -Winline -Wno-long-long -Wuninitialized -Wconversion
        \  -Wstrict-prototypes -pedantic"

" Конфигурационный файл splint.
" let g:syntastic_splint_config_file = '.syntastic_splint_config'
" Check syntax for bash:
let b:shell = 'bash'

" <F9> to open :Errors, <Ctrl+F9> to :lclose errors list.
map <F9> :Errors<CR>
map <C-F9> :lclose<CR>

highlight link SyntasticErrorSign SignColumn
highlight link SyntasticWarningSign SignColumn
highlight link SyntasticStyleErrorSign SignColumn
highlight link SyntasticStyleWarningSign SignColumn

Комменты там что к чему в принципе есть. Остальное – по ману.

Исходная версия Moisha_Liberman, :

Syntastic надо конфигурировать, как правило.

В принципе, есть два варианта.

Либо вписываем в свой .vimrc что-то типа let g:syntastic_c_include_dirs = [ '../my_include', 'another_include' ] если для С, для С++ соответственно будетsyntastic_cpp_include_dirs`.

Либо делаем в каталоге проекта файл .syntastic_cpp_config, где на каждой строке строго по отдельности вписываем:

-Ipath_1
-Ipath_2
...
-Ipath_N

Тогда в .vimrc можно указать, например, let g:syntastic_cpp_config_file = '.my_custom_include_file_for_syntastic_project_1' (например).

Но вообще посмотрите: help syntastic-checkers и там конкретно по своему языку. Для С частенько конфиг один будет, для С++ – другой, для С# (и прочих) соответственно третьи.

Сам по себе syntastic штука крайне мощная, в особенности в паре со splint (для сишника), так что конфигурировать его надо крайне точно.

Наконец, приведу часть, касающуюся splint/syntastic из своего vimrc (она меняется от случая к случаю), вдруг кому сгодится в качестве примера:

" Syntastic settings.
" https://github.com/vim-syntastic/syntastic/wiki/C%3A---gcc
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
" Use syntastic on opening file and on saving/quitting.
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 1
" Automatically jump to the first detected issue.
let g:syntastic_auto_jump = 1

" Include directory
"let g:syntastic_c_include_dirs = ['/usr/include/gtk-3.0/gtk','/usr/include/webkitgtk-4.0/webkit2']
let g:syntastic_c_check_header = 0
let g:syntastic_cpp_check_header = 0
let g:syntastic_c_no_include_search = 1
let g:syntastic_c_auto_refresh_includes = 1
let g:syntastic_c_no_default_include_dirs = 1

" Compiler's options:
" let g:syntastic_c_compiler_options = ' -std=gnu18'
"let b:syntastic_c_cflags = '-I/usr/include/gtk-3.0/gtk -I/usr/include/webkitgtk-4.0/webkit2'

" Опции можно указать и в конфигурационном файле:
" Создать данный файл можно так:
" pkg-config --cflags gtk+-3.0 glib-2.0 webkit2gtk-4.0 | tr ' ' '\n'
" >.syntastic_c_config
" И потом добавить -Wall, -Werror, -Wextra, -std=gnu18 по одной опции
" на строку.
let g:syntastic_c_config_file = '~/.vim/.syntastic_c_config'
" Syntax checkers.
let g:syntastic_c_checkers = ['make','splint','gcc']
" C-compiler.
let g:syntastic_c_compiler = 'gcc'
let g:syntastic_c_compiler_options = "-std=gnu99
        \  -Wall -Wextra -Wshadow -Wpointer-arith
        \  -Wcast-align -Wwrite-strings -Wmissing-prototypes
        \  -Wmissing-declarations -Wredundant-decls -Wnested-externs
        \  -Winline -Wno-long-long -Wuninitialized -Wconversion
        \  -Wstrict-prototypes -pedantic"

" Конфигурационный файл splint.
" let g:syntastic_splint_config_file = '.syntastic_splint_config'
" Check syntax for bash:
let b:shell = 'bash'

" <F9> to open :Errors, <Ctrl+F9> to :lclose errors list.
map <F9> :Errors<CR>
map <C-F9> :lclose<CR>

highlight link SyntasticErrorSign SignColumn
highlight link SyntasticWarningSign SignColumn
highlight link SyntasticStyleErrorSign SignColumn
highlight link SyntasticStyleWarningSign SignColumn

Комменты там что к чему в принципе есть. Остальное – по ману.