ycm 选项
YouCompleteMe, vim/neovim 语义补全利器,按照参见YouCompleteMe github网页。下面看看简单选项和命令,不保证解释准确,只做粗略参考。
命令
"重启Ycm服务器
:YcmRestartServer
"立马让YCM重新编译你的文件并显示编译诊断信息
"为了方便,通常该命令做映射,如:nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
:YcmForceCompileAndDiagnostics
"显示YCM探测到的错误或警告
:YcmDiags
"显示光标下面的详细诊断信息
:YcmShowDetailedDiagnostic
"显示当前文件的调试信息
:YcmdDebugInfo
"调用补全专门的命令,如果第一个补全参数是 ft=..
"则使用指定类型的补全插件,否则,使用当前缓存文件类型的补全插件
:YcmCompleter
"跳转到声明 支持的文件类型:C, cpp, objC, objcpp, Python, cs
:YcmCompleter GoToDeclaration
"跳转到定义 支持的文件类型:C, cpp, objC, objcpp, Python, cs, typescript
:YcmCompleter GoToDefinition
"盲跳 支持的文件类型:C, cpp, objC, objcpp, Python, cs
:YcmCompleter GoTo
"同GoTo,快,非精确 支持的文件类型:C, cpp, objC, objcpp, Python, cs
:YcmCompleter GoToImprecise
"清空YCM编译缓存,支持的文件类型:C, cpp, objC, objcpp
:YcmCompleter ClearCompilationFlagCache
"显示变量类型 支持的文件类型:C, cpp, objC, objcpp, typescript
:YcmCompleter GetType
"显示语补全的父类型 支持的文件类型:C, cpp, objC, objcpp
:YcmCompleter GetParent
"修正YCM诊断的光标附近的错误 支持的文件类型:C, cpp, objC, objcpp, cs
:YcmCompleter FixIt
"预览窗口展示文档 支持的文件类型:C, cpp, objC, objcpp, cs, Python, typescript
:YcmCompleter GetDoc
"启动语义引擎服务器, 支持的文件类型:cs
:YcmCompleter StartServer
"停止语义引擎服务器, 支持的文件类型:cs
:YcmCompleter StopServer
"重启语义引擎服务器, 支持的文件类型:cs
:YcmCompleter RestartServer
"重加载文件, 支持的文件类型:cs
:YcmCompleter ReloadSolution
"跳到实现, 支持的文件类型:cs
:YcmCompleter GoToImplementation
"跳到实现或声明, 支持的文件类型:cs
:YcmCompleter GoToImplementationElseDeclaration
配置选项
"开启自动补全输入的最少字符数,默认2
g:ycm_min_num_of_chars_for_completion
"弹出的自动补全最少候选数,默认0,表示不限制
g:ycm_min_num_identifier_candidate_chars
"输入语义字符(如c++的. ->)自动补全是否启动,默认1
g:ycm_auto_trigger
"自动补全白名单,默认{'*' : 1}
g:ycm_filetype_whitelist
"自动补全黑名单,默认:
"{
\ 'tagbar' : 1,
\ 'qf' : 1,
\ 'notes' : 1,
\ 'markdown' : 1,
\ 'unite' : 1,
\ 'text' : 1,
\ 'vimwiki' : 1,
\ 'pandoc' : 1,
\ 'infolog' : 1,
\ 'mail' : 1
\}
g:ycm_filetype_blacklist
"自动补全禁止文件,默认{'gitcommit' : 1}
g:ycm_filetype_specific_completion_to_disable
"自动补全诊断UI,默认1
g:ycm_filetype_specific_completion_to_disable
"自动补全诊断出现错误的符号,默认 >>
g:ycm_error_symbol
"自动补全诊断出现警告的符号,默认 >>
g:ycm_error_symbol
"是否允许自动补全诊断符号,默认 1
g:ycm_enable_diagnostic_signs
"是否自动补全诊断符号高亮,默认 1
g:ycm_enable_diagnostic_highlighting
"是否显示自动补全诊断,默认 1
g:ycm_echo_current_diagnostic
"是否显示自动补全诊断location list,默认 0
g:ycm_always_populate_location_list
"强制编译后,是否显示location list和诊断,默认 1
g:ycm_open_loclist_on_ycm_diags
"是否允许更新VIM更新时间,默认 1
g:ycm_allow_changing_updatetime
"是否自动补全注释,默认 0
g:ycm_allow_changing_updatetime
"是否在变量的值内实现自动补全,默认 1
g:ycm_complete_in_strings
"是否收集注释和字符变量值作为自动补全信息,默认 0
g:ycm_collect_identifiers_from_comments_and_strings
"是否tags文件作为自动补全信息,默认 0
g:ycm_collect_identifiers_from_tags_files
"不明白什么意思,默认 0
g:ycm_seed_identifiers_with_syntax
"与.ycm_extra_conf.py文件中FlagsForFile函数交换的参数,默认 []
g:ycm_extra_conf_vim_data
"Python解释器的路径,默认 ''
g:ycm_path_to_Python_interpreter
"ycm日志是否使用stdout,默认 0
g:ycm_server_use_vim_stdout
"当ycm服务器退出时,是否保存日志,默认 0
g:ycm_server_keep_logfiles
"ycm服务器日志级别,有debug, info, warning, error, critical,默认 info
g:ycm_server_log_level
"是否自动启动c#自动补全服务器,默认 1
g:ycm_auto_start_csharp_server
"是否自动停止c#自动补全服务器,默认 1
g:ycm_auto_start_csharp_server
"c#自动补全服务器端口,默认 0,即任意端口
g:ycm_csharp_server_port
"c#自动补全插入命名空间表达式,默认 ''
g:ycm_csharp_insert_namespace_expr
"是否展示预览窗口,默认 0
g:ycm_add_preview_to_completeopt
"当补全完成时,是否自动关闭展示的预览窗口,默认 0
g:ycm_autoclose_preview_window_after_completion
"当补全插入时,是否自动关闭展示的预览窗口,默认 0
g:ycm_autoclose_preview_window_after_insertion
"诊断信息的条数,默认 30
g:ycm_max_diagnostics_to_display
"选择自动补全信息的按键,默认 ['<TAB>', '<Down>']
g:ycm_key_list_select_completion
"选择前一个自动补全信息的按键,默认 ['<S-TAB>', '<Up>']
g:ycm_key_list_previous_completion
"调用自动补全信息的按键,默认 <C-Space>
g:ycm_key_invoke_completion
"详细诊断信息的按键,默认 <leader>d
g:ycm_key_detailed_diagnostics
"全局的ycm_extra_conf文件,默认 ''
g:ycm_global_ycm_extra_conf
"载入ycm_extra_conf文件,是否提示确认 默认 1
g:ycm_confirm_extra_conf
"ycm_extra_conf文件,通配符 默认 []
g:ycm_extra_conf_globlist
"自动补全是否使用当前工作目录 默认 0
g:ycm_filepath_completion_use_working_dir
"语义触发的字符 默认
" {
" \ 'c' : ['->', '.'],
" \ 'objc' : ['->', '.', 're!\[[_a-zA-Z]+\w*\s', 're!^\s*[^\W\d]\w*\s',
" \ 're!\[.*\]\s'],
" \ 'ocaml' : ['.', '#'],
" \ 'cpp,objcpp' : ['->', '.', '::'],
" \ 'perl' : ['->'],
" \ 'php' : ['->', '::'],
" \ 'cs,java,javascript,typescript,d,Python,perl6,scala,vb,elixir,go' : ['.'],
" \ 'ruby' : ['.', '::'],
" \ 'lua' : ['.', ':'],
" \ 'erlang' : [':'],
" \ }
g:ycm_semantic_triggers
"是否缓存,omnifunc 默认 1
g:ycm_cache_omnifunc
"是否缓存omnifunc 默认 1
g:ycm_cache_omnifunc
"是否使用ultisnips 插件自动补全 默认 1
g:ycm_use_ultisnips_completer
"GoTo*命令的打开方式,可选值为:
"[ 'same-buffer', 'horizontal-split', 'vertical-split', 'new-tab', 'new-or-existing-tab' ]
"默认 'same-buffer'
g:ycm_goto_buffer_command
"不使用自动补全的文件大小,单位为KB,0表示不检测 默认 1000
g:ycm_disable_for_files_larger_than_kb