From ed47a8c2a103679cf643a6585d5651c82db6d591 Mon Sep 17 00:00:00 2001 From: Strahinja Val Markovic Date: Sat, 26 Oct 2013 16:29:12 -0700 Subject: [PATCH] Updating vimdoc from readme --- doc/youcompleteme.txt | 136 ++++++++++++++++++++++++++++-------------- 1 file changed, 91 insertions(+), 45 deletions(-) diff --git a/doc/youcompleteme.txt b/doc/youcompleteme.txt index 50cc69c1..d3cf85fe 100644 --- a/doc/youcompleteme.txt +++ b/doc/youcompleteme.txt @@ -1,4 +1,4 @@ -*youcompleteme.txt* YouCompleteMe: a code-completion engine for Vim +*youcompleteme* YouCompleteMe: a code-completion engine for Vim =============================================================================== Contents ~ @@ -47,51 +47,53 @@ Contents ~ 10. The |g:ycm_collect_identifiers_from_comments_and_strings| option 11. The |g:ycm_collect_identifiers_from_tags_files| option 12. The |g:ycm_seed_identifiers_with_syntax| option - 13. The |g:ycm_server_use_vim_stdout| option - 14. The |g:ycm_server_keep_logfiles| option - 15. The |g:ycm_server_log_level| option - 16. The |g:ycm_server_idle_suicide_seconds| option - 17. The |g:ycm_csharp_server_port| option - 18. The |g:ycm_auto_start_csharp_server| option - 19. The |g:ycm_auto_stop_csharp_server| option - 20. The |g:ycm_add_preview_to_completeopt| option - 21. The |g:ycm_autoclose_preview_window_after_completion| option - 22. The |g:ycm_autoclose_preview_window_after_insertion| option - 23. The |g:ycm_max_diagnostics_to_display| option - 24. The |g:ycm_key_list_select_completion| option - 25. The |g:ycm_key_list_previous_completion| option - 26. The |g:ycm_key_invoke_completion| option - 27. The |g:ycm_key_detailed_diagnostics| option - 28. The |g:ycm_global_ycm_extra_conf| option - 29. The |g:ycm_confirm_extra_conf| option - 30. The |g:ycm_extra_conf_globlist| option - 31. The |g:ycm_filepath_completion_use_working_dir| option - 32. The |g:ycm_semantic_triggers| option - 33. The |g:ycm_cache_omnifunc| option + 13. The |g:ycm_extra_conf_vim_data| option + 14. The |g:ycm_server_use_vim_stdout| option + 15. The |g:ycm_server_keep_logfiles| option + 16. The |g:ycm_server_log_level| option + 17. The |g:ycm_server_idle_suicide_seconds| option + 18. The |g:ycm_csharp_server_port| option + 19. The |g:ycm_auto_start_csharp_server| option + 20. The |g:ycm_auto_stop_csharp_server| option + 21. The |g:ycm_add_preview_to_completeopt| option + 22. The |g:ycm_autoclose_preview_window_after_completion| option + 23. The |g:ycm_autoclose_preview_window_after_insertion| option + 24. The |g:ycm_max_diagnostics_to_display| option + 25. The |g:ycm_key_list_select_completion| option + 26. The |g:ycm_key_list_previous_completion| option + 27. The |g:ycm_key_invoke_completion| option + 28. The |g:ycm_key_detailed_diagnostics| option + 29. The |g:ycm_global_ycm_extra_conf| option + 30. The |g:ycm_confirm_extra_conf| option + 31. The |g:ycm_extra_conf_globlist| option + 32. The |g:ycm_filepath_completion_use_working_dir| option + 33. The |g:ycm_semantic_triggers| option + 34. The |g:ycm_cache_omnifunc| option 10. FAQ |youcompleteme-faq| - 1. I get a linker warning regarding |libpython| on Mac when compiling YCM - 2. I get a weird window at the top of my file when I use the semantic engine |youcompleteme-i-get-weird-window-at-top-of-my-file-when-i-use-semantic-engine| - 3. It appears that YCM is not working |youcompleteme-it-appears-that-ycm-is-not-working| - 4. I cannot get the Syntastic integration to work |youcompleteme-i-cannot-get-syntastic-integration-to-work| - 5. Sometimes it takes much longer to get semantic completions than normal |youcompleteme-sometimes-it-takes-much-longer-to-get-semantic-completions-than-normal| - 6. Vim flickers every time I move the cursor or moving the cursor is slow |youcompleteme-vim-flickers-every-time-i-move-cursor-or-moving-cursor-is-slow| - 7. YCM auto-inserts completion strings I don't want! |youcompleteme-ycm-auto-inserts-completion-strings-i-dont-want| - 8. I get a 'E227: mapping already exists for ' error when I start Vim |E227:-mapping-already-exists-for-blah| - 9. I get "'GLIBC_2.XX' not found (required by libclang.so)" when starting Vim |GLIBC_2.XX-not-found()| - 10. I'm trying to use a Homebrew Vim with YCM and I'm getting segfaults |youcompleteme-im-trying-to-use-homebrew-vim-with-ycm-im-getting-segfaults| - 11. I have a Homebrew Python and/or MacVim; can't compile/SIGABRT when starting |youcompleteme-i-have-homebrew-python-and-or-macvim-cant-compile-sigabrt-when-starting| - 12. Vim segfaults when I use the semantic completer in Ruby files |youcompleteme-vim-segfaults-when-i-use-semantic-completer-in-ruby-files| - 13. I get 'LONG_BIT definition appears wrong for platform' when compiling |LONG_BIT-definition-appears-wrong-for-platform| - 14. I get 'libpython2.7.a [...] relocation R_X86_64_32' when compiling |libpython2.7.a-...-relocation-R_X86_64_32| - 15. I get 'Vim: Caught deadly signal SEGV' on Vim startup |Vim:-Caught-deadly-signal-SEGV| - 16. YCM does not read identifiers from my tags files |youcompleteme-ycm-does-not-read-identifiers-from-my-tags-files| - 17. 'CTRL-U' in insert mode does not work |CTRL-sub-U| - 18. YCM conflicts with UltiSnips TAB key usage |youcompleteme-ycm-conflicts-with-ultisnips-tab-key-usage| - 19. Why isn't YCM just written in plain VimScript, FFS? |youcompleteme-why-isnt-ycm-just-written-in-plain-vimscript-ffs| - 20. Why does YCM demand such a recent version of Vim? |youcompleteme-why-does-ycm-demand-such-recent-version-of-vim| - 21. I get annoying messages in Vim's status area when I type |youcompleteme-i-get-annoying-messages-in-vims-status-area-when-i-type| - 22. Nasty bugs happen if I have the 'vim-autoclose' plugin installed |vim-sub-autoclose| - 23. Is there some sort of YCM mailing list? I have questions |youcompleteme-is-there-sort-of-ycm-mailing-list-i-have-questions| + 1. I used to be able to 'import vim' in '.ycm_extra_conf.py', but now can't |import-vim| + 2. I get a linker warning regarding |libpython| on Mac when compiling YCM + 3. I get a weird window at the top of my file when I use the semantic engine |youcompleteme-i-get-weird-window-at-top-of-my-file-when-i-use-semantic-engine| + 4. It appears that YCM is not working |youcompleteme-it-appears-that-ycm-is-not-working| + 5. I cannot get the Syntastic integration to work |youcompleteme-i-cannot-get-syntastic-integration-to-work| + 6. Sometimes it takes much longer to get semantic completions than normal |youcompleteme-sometimes-it-takes-much-longer-to-get-semantic-completions-than-normal| + 7. Vim flickers every time I move the cursor or moving the cursor is slow |youcompleteme-vim-flickers-every-time-i-move-cursor-or-moving-cursor-is-slow| + 8. YCM auto-inserts completion strings I don't want! |youcompleteme-ycm-auto-inserts-completion-strings-i-dont-want| + 9. I get a 'E227: mapping already exists for ' error when I start Vim |E227:-mapping-already-exists-for-blah| + 10. I get "'GLIBC_2.XX' not found (required by libclang.so)" when starting Vim |GLIBC_2.XX-not-found()| + 11. I'm trying to use a Homebrew Vim with YCM and I'm getting segfaults |youcompleteme-im-trying-to-use-homebrew-vim-with-ycm-im-getting-segfaults| + 12. I have a Homebrew Python and/or MacVim; can't compile/SIGABRT when starting |youcompleteme-i-have-homebrew-python-and-or-macvim-cant-compile-sigabrt-when-starting| + 13. Vim segfaults when I use the semantic completer in Ruby files |youcompleteme-vim-segfaults-when-i-use-semantic-completer-in-ruby-files| + 14. I get 'LONG_BIT definition appears wrong for platform' when compiling |LONG_BIT-definition-appears-wrong-for-platform| + 15. I get 'libpython2.7.a [...] relocation R_X86_64_32' when compiling |libpython2.7.a-...-relocation-R_X86_64_32| + 16. I get 'Vim: Caught deadly signal SEGV' on Vim startup |Vim:-Caught-deadly-signal-SEGV| + 17. YCM does not read identifiers from my tags files |youcompleteme-ycm-does-not-read-identifiers-from-my-tags-files| + 18. 'CTRL-U' in insert mode does not work |CTRL-sub-U| + 19. YCM conflicts with UltiSnips TAB key usage |youcompleteme-ycm-conflicts-with-ultisnips-tab-key-usage| + 20. Why isn't YCM just written in plain VimScript, FFS? |youcompleteme-why-isnt-ycm-just-written-in-plain-vimscript-ffs| + 21. Why does YCM demand such a recent version of Vim? |youcompleteme-why-does-ycm-demand-such-recent-version-of-vim| + 22. I get annoying messages in Vim's status area when I type |youcompleteme-i-get-annoying-messages-in-vims-status-area-when-i-type| + 23. Nasty bugs happen if I have the 'vim-autoclose' plugin installed |vim-sub-autoclose| + 24. Is there some sort of YCM mailing list? I have questions |youcompleteme-is-there-sort-of-ycm-mailing-list-i-have-questions| 11. Contact |youcompleteme-contact| 12. License |youcompleteme-license| 13. References |youcompleteme-references| @@ -314,6 +316,10 @@ process. better idea). With Vundle, this would mean adding a "Bundle 'Valloric/YouCompleteMe'" line to your vimrc [17]. + If you don't install YCM with Vundle, make sure you have run 'git + submodule update --init --recursive' after checking out the YCM + repository (Vundle will do this for you) to fetch YCM's dependencies. + 3. [Complete this step ONLY if you care about semantic completion support for C-family languages. Otherwise it's not neccessary.] @@ -1006,6 +1012,30 @@ Default: '0' let g:ycm_seed_identifiers_with_syntax = 0 < ------------------------------------------------------------------------------- +The *g:ycm_extra_conf_vim_data* option + +If you're using semantic completion for C-family files, this option might come +handy; it's a way of sending data from Vim to your 'FlagsForFile' function in +your '.ycm_extra_conf.py' file. + +This option is supposed to be a list of VimScript expression strings that are +evaluated for every request to the 'ycmd' server and then passed to your +'FlagsForFile' function as a 'client_data' keyword argument. + +For instance, if you set this option to "['v:version']", your 'FlagsForFile' +function will be called like this: +> + # The '704' value is of course contingent on Vim 7.4; in 7.3 it would be '703' + FlagsForFile(filename, client_data = {'v:version': 704}) +< +So the 'client_data' parameter is a dictionary mapping Vim expression strings +to their values at the time of the request. + +Default: '[]' +> + let g:ycm_extra_conf_vim_data = [] +< +------------------------------------------------------------------------------- The *g:ycm_server_use_vim_stdout* option By default, the 'ycmd' completion server writes logs to logfiles. When this @@ -1337,6 +1367,22 @@ Default: '1' *youcompleteme-faq* FAQ ~ +------------------------------------------------------------------------------- + *import-vim* +I used to be able to 'import vim' in '.ycm_extra_conf.py', but now can't ~ + +YCM was rewritten to use a client-server architecture where most of the logic +is in the 'ycmd' server. So the magic 'vim' module you could have previously +imported in your '.ycm_extra_conf.py' files doesn't exist anymore. + +To be fair, importing the magic 'vim' module in extra conf files was never +supported in the first place; it only ever worked by accident and was never a +part of the extra conf API. + +But fear not, you should be able to tweak your extra conf files to continue +working by using the |g:ycm_extra_conf_vim_data| option. See the docs on that +option for details. + ------------------------------------------------------------------------------- I get a linker warning regarding *libpython* on Mac when compiling YCM