Auto merge of #3391 - micbou:macos-instructions, r=micbou

[READY] Instruct users to install MacVim with Homebrew

Update the link to the MacVim installer and clarify the instructions on how to start Vim or MacVim from a terminal on macOS.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/3391)
<!-- Reviewable:end -->
This commit is contained in:
zzbot 2019-05-05 09:13:02 -07:00 committed by GitHub
commit 293deb4ba3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 146 additions and 202 deletions

View File

@ -33,7 +33,7 @@ Contents
- [Intro](#intro) - [Intro](#intro)
- [Installation](#installation) - [Installation](#installation)
- [Mac OS X](#mac-os-x) - [macOS](#macos)
- [Linux 64-bit](#linux-64-bit) - [Linux 64-bit](#linux-64-bit)
- [Windows](#windows) - [Windows](#windows)
- [FreeBSD/OpenBSD](#freebsdopenbsd) - [FreeBSD/OpenBSD](#freebsdopenbsd)
@ -164,23 +164,18 @@ and a completer that integrates with [UltiSnips][].
Installation Installation
------------ ------------
### Mac OS X ### macOS
These instructions (using `install.py`) are the quickest way to install These instructions (using `install.py`) are the quickest way to install
YouCompleteMe, however they may not work for everyone. If the following YouCompleteMe, however they may not work for everyone. If the following
instructions don't work for you, check out the [full installation instructions don't work for you, check out the [full installation
guide](#full-installation-guide). guide](#full-installation-guide).
Install the latest version of [MacVim][]. Yes, MacVim. And yes, the _latest_. [MacVim][] is required. YCM won't work with the pre-installed Vim from Apple as
its Python support is broken. If you don't already use [MacVim][], install it
with [Homebrew][brew]. Install CMake as well:
If you don't use the MacVim GUI, it is recommended to use the Vim binary that is brew install cmake macvim
inside the MacVim.app package (`MacVim.app/Contents/MacOS/Vim`). To ensure it
works correctly copy the `mvim` script from the [MacVim][] download to your
local binary folder (for example `/usr/local/bin/mvim`) and then symlink it:
ln -s /usr/local/bin/mvim vim
Install YouCompleteMe with [Vundle][].
**Remember:** YCM is a plugin with a compiled component. If you **update** YCM **Remember:** YCM is a plugin with a compiled component. If you **update** YCM
using Vundle and the ycm_core library APIs have changed (happens using Vundle and the ycm_core library APIs have changed (happens
@ -192,12 +187,6 @@ installed along with the latest Command Line Tools (they are installed
automatically when you run `clang` for the first time, or manually by running automatically when you run `clang` for the first time, or manually by running
`xcode-select --install`) `xcode-select --install`)
Install CMake. Preferably with [Homebrew][brew], but here's the [stand-alone
CMake installer][cmake-download].
_If_ you have installed a Homebrew Python and/or Homebrew MacVim, see the _FAQ_
for details.
Compiling YCM **with** semantic support for C-family languages through Compiling YCM **with** semantic support for C-family languages through
**libclang**: **libclang**:
@ -225,8 +214,8 @@ Compiling YCM **without** semantic support for C-family languages:
The following additional language support options are available: The following additional language support options are available:
- C# support: install Mono with [Homebrew][brew] or by downloading the [Mono Mac - C# support: install Mono with [Homebrew][brew] or by downloading the [Mono
package][mono-install-osx] and add `--cs-completer` when calling macOS package][mono-install-macos] and add `--cs-completer` when calling
`install.py`. `install.py`.
- Go support: install [Go][go-install] and add `--go-completer` when calling - Go support: install [Go][go-install] and add `--go-completer` when calling
`install.py`. `install.py`.
@ -616,12 +605,12 @@ process.
You will need to have `cmake` installed in order to generate the required You will need to have `cmake` installed in order to generate the required
makefiles. Linux users can install cmake with their package manager (`sudo makefiles. Linux users can install cmake with their package manager (`sudo
apt-get install cmake` for Ubuntu) whereas other users can [download and apt-get install cmake` for Ubuntu) whereas other users can [download and
install][cmake-download] cmake from its project site. Mac users can also get install][cmake-download] cmake from its project site. macOS users can also
it through [Homebrew][brew] with `brew install cmake`. get it through [Homebrew][brew] with `brew install cmake`.
On a Unix OS, you need to make sure you have Python headers installed. On a On a Unix OS, you need to make sure you have Python headers installed. On a
Debian-like Linux distro, this would be `sudo apt-get install python-dev Debian-like Linux distro, this would be `sudo apt-get install python-dev
python3-dev`. On Mac they should already be present. python3-dev`. On macOS they should already be present.
On Windows, you need to download and install [Python 2 or On Windows, you need to download and install [Python 2 or
Python 3][python-win-download]. Pick the version corresponding to your Vim Python 3][python-win-download]. Pick the version corresponding to your Vim
@ -700,7 +689,7 @@ process.
You could also force the use of a custom libclang library with You could also force the use of a custom libclang library with
`-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so` flag (the library would end `-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so` flag (the library would end
with `.dylib` on a Mac). Again, this flag would be used _instead of_ the with `.dylib` on macOS). Again, this flag would be used _instead of_ the
other flags. **If you compiled LLVM from source, this is the flag you should other flags. **If you compiled LLVM from source, this is the flag you should
be using.** be using.**
@ -3088,7 +3077,7 @@ specific Python interpreter for `ycmd` is usually the easiest way to solve the
problem. Common values for that option are `/usr/bin/python` and problem. Common values for that option are `/usr/bin/python` and
`/usr/bin/python3`. `/usr/bin/python3`.
### I get a linker warning regarding `libpython` on Mac when compiling YCM ### I get a linker warning regarding `libpython` on macOS when compiling YCM
If the warning is `ld: warning: path '/usr/lib/libpython2.7.dylib' following -L If the warning is `ld: warning: path '/usr/lib/libpython2.7.dylib' following -L
not a directory`, then feel free to ignore it; it's caused by a limitation of not a directory`, then feel free to ignore it; it's caused by a limitation of
@ -3165,24 +3154,10 @@ Your system is too old for the precompiled binaries from llvm.org. Compile
Clang on your machine and then link against the `libclang.so` you just produced. Clang on your machine and then link against the `libclang.so` you just produced.
See the full installation guide for help. See the full installation guide for help.
### I'm trying to use a Homebrew Vim with YCM and I'm getting segfaults
Something (I don't know what) is wrong with the way that Homebrew configures and
builds Vim. I recommend using [MacVim][]. Even if you don't like the MacVim GUI,
you can use the Vim binary that is inside the MacVim.app package (it's
`MacVim.app/Contents/MacOS/Vim`) and get the Vim console experience.
### I have a Homebrew Python and/or MacVim; can't compile/SIGABRT when starting
You should probably run `brew rm python; brew install python` to get the latest
fixes that should make YCM work with such a configuration. Also rebuild Macvim
then. If you still get problems with this, see [issue #18][issue18] for
suggestions.
### I get `LONG_BIT definition appears wrong for platform` when compiling ### I get `LONG_BIT definition appears wrong for platform` when compiling
Look at the output of your CMake call. There should be a line in it like the Look at the output of your CMake call. There should be a line in it like the
following (with `.dylib` in place of `.so` on a Mac): following (with `.dylib` in place of `.so` on macOS):
``` ```
-- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "2.5") -- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "2.5")
@ -3205,7 +3180,7 @@ version for the library. This is wrong. It can happen when you have multiple
versions of Python installed on your machine. versions of Python installed on your machine.
You should probably add the following flags to your cmake call (again, `dylib` You should probably add the following flags to your cmake call (again, `dylib`
instead of `so` on a Mac): instead of `so` on macOS):
``` ```
-DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
@ -3251,7 +3226,7 @@ The details aren't important.
The solution is that the version of Python linked and run against must be built The solution is that the version of Python linked and run against must be built
with either `--enable-shared` or `--enable-framework` (on OS X). with either `--enable-shared` or `--enable-framework` (on OS X).
This is achieved as follows (**NOTE:** for Mac, replace `--enable-shared` This is achieved as follows (**NOTE:** for macOS, replace `--enable-shared`
with `--enable-framework`): with `--enable-framework`):
- When building python from source: `./configure --enable-shared {options}` - When building python from source: `./configure --enable-shared {options}`
@ -3281,7 +3256,7 @@ one) option because YCM needs the `language:<lang>` field in the tags output.
`*.h` files as `C++`. If you have C (not C++) project, consider giving parameter `*.h` files as `C++`. If you have C (not C++) project, consider giving parameter
`--langmap=c:.c.h` to ctags to see tags from `*.h` files. `--langmap=c:.c.h` to ctags to see tags from `*.h` files.
**NOTE:** Mac OS X comes with "plain" ctags installed by default. `brew install **NOTE:** macOS comes with "plain" ctags installed by default. `brew install
ctags` will get you the Exuberant Ctags version. ctags` will get you the Exuberant Ctags version.
Also make sure that your Vim `tags` option is set correctly. See `:h 'tags'` for Also make sure that your Vim `tags` option is set correctly. See `:h 'tags'` for
@ -3426,7 +3401,7 @@ This is caused by an issue with libclang that only affects some operating
systems. Compiling with `clang` the binary will use the correct default header systems. Compiling with `clang` the binary will use the correct default header
search paths but compiling with `libclang.so` (which YCM uses) does not. search paths but compiling with `libclang.so` (which YCM uses) does not.
Mac OS X is normally affected, but there's a workaround in YCM for that specific macOS is normally affected, but there's a workaround in YCM for that specific
OS. If you're not running that OS but still have the same problem, continue OS. If you're not running that OS but still have the same problem, continue
reading. reading.
@ -3593,7 +3568,7 @@ This software is licensed under the [GPL v3 license][gpl].
[clang-download]: http://llvm.org/releases/download.html [clang-download]: http://llvm.org/releases/download.html
[brew]: http://brew.sh [brew]: http://brew.sh
[cmake-download]: https://cmake.org/download/ [cmake-download]: https://cmake.org/download/
[macvim]: https://github.com/macvim-dev/macvim/releases [macvim]: https://macvim-dev.github.io/macvim/
[vimrc]: http://vimhelp.appspot.com/starting.txt.html#vimrc [vimrc]: http://vimhelp.appspot.com/starting.txt.html#vimrc
[gpl]: http://www.gnu.org/copyleft/gpl.html [gpl]: http://www.gnu.org/copyleft/gpl.html
[vim]: http://www.vim.org/ [vim]: http://www.vim.org/
@ -3634,7 +3609,7 @@ This software is licensed under the [GPL v3 license][gpl].
[python-win-download]: https://www.python.org/downloads/windows/ [python-win-download]: https://www.python.org/downloads/windows/
[visual-studio-download]: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15 [visual-studio-download]: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15
[7z-download]: http://www.7-zip.org/download.html [7z-download]: http://www.7-zip.org/download.html
[mono-install-osx]: http://www.mono-project.com/docs/getting-started/install/mac/ [mono-install-macos]: http://www.mono-project.com/docs/getting-started/install/mac/
[mono-install-linux]: https://www.mono-project.com/download/stable/#download-lin [mono-install-linux]: https://www.mono-project.com/download/stable/#download-lin
[mono-install]: http://www.mono-project.com/docs/getting-started/install/ [mono-install]: http://www.mono-project.com/docs/getting-started/install/
[go-install]: https://golang.org/doc/install [go-install]: https://golang.org/doc/install

View File

@ -8,7 +8,7 @@ Contents ~
3. Contents |youcompleteme-contents| 3. Contents |youcompleteme-contents|
4. Intro |youcompleteme-intro| 4. Intro |youcompleteme-intro|
5. Installation |youcompleteme-installation| 5. Installation |youcompleteme-installation|
1. Mac OS X |youcompleteme-mac-os-x| 1. macOS |youcompleteme-macos|
2. Linux 64-bit |youcompleteme-linux-64-bit| 2. Linux 64-bit |youcompleteme-linux-64-bit|
3. Windows |youcompleteme-windows| 3. Windows |youcompleteme-windows|
4. FreeBSD/OpenBSD |youcompleteme-freebsd-openbsd| 4. FreeBSD/OpenBSD |youcompleteme-freebsd-openbsd|
@ -149,44 +149,42 @@ Contents ~
13. FAQ |youcompleteme-faq| 13. FAQ |youcompleteme-faq|
1. I used to be able to 'import vim' in '.ycm_extra_conf.py', but now can't |youcompleteme-i-used-to-be-able-to-import-vim-in-.ycm_extra_conf.py-but-now-cant| 1. I used to be able to 'import vim' in '.ycm_extra_conf.py', but now can't |youcompleteme-i-used-to-be-able-to-import-vim-in-.ycm_extra_conf.py-but-now-cant|
2. I get 'ImportError' exceptions that mention 'PyInit_ycm_core' or 'initycm_core' |youcompleteme-i-get-importerror-exceptions-that-mention-pyinit_ycm_core-or-initycm_core| 2. I get 'ImportError' exceptions that mention 'PyInit_ycm_core' or 'initycm_core' |youcompleteme-i-get-importerror-exceptions-that-mention-pyinit_ycm_core-or-initycm_core|
3. I get a linker warning regarding 'libpython' on Mac when compiling YCM |youcompleteme-i-get-linker-warning-regarding-libpython-on-mac-when-compiling-ycm| 3. I get a linker warning regarding 'libpython' on macOS when compiling YCM |youcompleteme-i-get-linker-warning-regarding-libpython-on-macos-when-compiling-ycm|
4. 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. 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|
5. It appears that YCM is not working |youcompleteme-it-appears-that-ycm-is-not-working| 5. It appears that YCM is not working |youcompleteme-it-appears-that-ycm-is-not-working|
6. Sometimes it takes much longer to get semantic completions than normal |youcompleteme-sometimes-it-takes-much-longer-to-get-semantic-completions-than-normal| 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. YCM auto-inserts completion strings I don't want! |youcompleteme-ycm-auto-inserts-completion-strings-i-dont-want| 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 <blah>' error when I start Vim |youcompleteme-i-get-e227-mapping-already-exists-for-blah-error-when-i-start-vim| 8. I get a 'E227: mapping already exists for <blah>' error when I start Vim |youcompleteme-i-get-e227-mapping-already-exists-for-blah-error-when-i-start-vim|
9. I get "'GLIBC_2.XX' not found (required by libclang.so)" when starting Vim |youcompleteme-i-get-glibc_2.xx-not-found-when-starting-vim| 9. I get "'GLIBC_2.XX' not found (required by libclang.so)" when starting Vim |youcompleteme-i-get-glibc_2.xx-not-found-when-starting-vim|
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| 10. I get 'LONG_BIT definition appears wrong for platform' when compiling |youcompleteme-i-get-long_bit-definition-appears-wrong-for-platform-when-compiling|
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| 11. I get 'libpython2.7.a [...] relocation R_X86_64_32' when compiling |youcompleteme-i-get-libpython2.7.a-...-relocation-r_x86_64_32-when-compiling|
12. I get 'LONG_BIT definition appears wrong for platform' when compiling |youcompleteme-i-get-long_bit-definition-appears-wrong-for-platform-when-compiling| 12. I see 'undefined symbol: clang_getCompletionFixIt' in the server logs. |youcompleteme-i-see-undefined-symbol-clang_getcompletionfixit-in-server-logs.|
13. I get 'libpython2.7.a [...] relocation R_X86_64_32' when compiling |youcompleteme-i-get-libpython2.7.a-...-relocation-r_x86_64_32-when-compiling| 13. I get 'Fatal Python error: PyThreadState_Get: no current thread' on startup |youcompleteme-i-get-fatal-python-error-pythreadstate_get-no-current-thread-on-startup|
14. I see 'undefined symbol: clang_getCompletionFixIt' in the server logs. |youcompleteme-i-see-undefined-symbol-clang_getcompletionfixit-in-server-logs.| 14. 'install.py' says python must be compiled with '--enable-framework'. Wat? |youcompleteme-install.py-says-python-must-be-compiled-with-enable-framework-.-wat|
15. I get 'Fatal Python error: PyThreadState_Get: no current thread' on startup |youcompleteme-i-get-fatal-python-error-pythreadstate_get-no-current-thread-on-startup| 15. YCM does not read identifiers from my tags files |youcompleteme-ycm-does-not-read-identifiers-from-my-tags-files|
16. 'install.py' says python must be compiled with '--enable-framework'. Wat? |youcompleteme-install.py-says-python-must-be-compiled-with-enable-framework-.-wat| 16. 'CTRL-U' in insert mode does not work while the completion menu is visible |youcompleteme-ctrl-u-in-insert-mode-does-not-work-while-completion-menu-is-visible|
17. YCM does not read identifiers from my tags files |youcompleteme-ycm-does-not-read-identifiers-from-my-tags-files| 17. My 'CTRL-R' mapping does not work while the completion menu is visible |youcompleteme-my-ctrl-r-mapping-does-not-work-while-completion-menu-is-visible|
18. 'CTRL-U' in insert mode does not work while the completion menu is visible |youcompleteme-ctrl-u-in-insert-mode-does-not-work-while-completion-menu-is-visible| 18. YCM conflicts with UltiSnips TAB key usage |youcompleteme-ycm-conflicts-with-ultisnips-tab-key-usage|
19. My 'CTRL-R' mapping does not work while the completion menu is visible |youcompleteme-my-ctrl-r-mapping-does-not-work-while-completion-menu-is-visible| 19. Snippets added with ':UltiSnipsAddFiletypes' do not appear in the popup menu |youcompleteme-snippets-added-with-ultisnipsaddfiletypes-do-not-appear-in-popup-menu|
20. 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. Snippets added with ':UltiSnipsAddFiletypes' do not appear in the popup menu |youcompleteme-snippets-added-with-ultisnipsaddfiletypes-do-not-appear-in-popup-menu| 21. Why does YCM demand such a recent version of Vim? |youcompleteme-why-does-ycm-demand-such-recent-version-of-vim|
22. Why isn't YCM just written in plain VimScript, FFS? |youcompleteme-why-isnt-ycm-just-written-in-plain-vimscript-ffs| 22. Nasty bugs happen if I have the 'vim-autoclose' plugin installed |youcompleteme-nasty-bugs-happen-if-i-have-vim-autoclose-plugin-installed|
23. Why does YCM demand such a recent version of Vim? |youcompleteme-why-does-ycm-demand-such-recent-version-of-vim| 23. Is there some sort of YCM mailing list? I have questions |youcompleteme-is-there-sort-of-ycm-mailing-list-i-have-questions|
24. Nasty bugs happen if I have the 'vim-autoclose' plugin installed |youcompleteme-nasty-bugs-happen-if-i-have-vim-autoclose-plugin-installed| 24. I get an internal compiler error when installing |youcompleteme-i-get-an-internal-compiler-error-when-installing|
25. Is there some sort of YCM mailing list? I have questions |youcompleteme-is-there-sort-of-ycm-mailing-list-i-have-questions| 25. I get weird errors when I press 'Ctrl-C' in Vim |youcompleteme-i-get-weird-errors-when-i-press-ctrl-c-in-vim|
26. I get an internal compiler error when installing |youcompleteme-i-get-an-internal-compiler-error-when-installing| 26. Why did YCM stop using Syntastic for diagnostics display? |youcompleteme-why-did-ycm-stop-using-syntastic-for-diagnostics-display|
27. I get weird errors when I press 'Ctrl-C' in Vim |youcompleteme-i-get-weird-errors-when-i-press-ctrl-c-in-vim| 27. Completion doesn't work with the C++ standard library headers |youcompleteme-completion-doesnt-work-with-c-standard-library-headers|
28. Why did YCM stop using Syntastic for diagnostics display? |youcompleteme-why-did-ycm-stop-using-syntastic-for-diagnostics-display| 28. When I start vim I get a runtime error saying 'R6034 An application has made an
29. Completion doesn't work with the C++ standard library headers |youcompleteme-completion-doesnt-work-with-c-standard-library-headers|
30. When I start vim I get a runtime error saying 'R6034 An application has made an
attempt to load the C runtime library incorrectly.' |youcompleteme-when-i-start-vim-i-get-runtime-error-saying-r6034-an-application-has-made-an-attempt-to-load-c-runtime-library-incorrectly.| attempt to load the C runtime library incorrectly.' |youcompleteme-when-i-start-vim-i-get-runtime-error-saying-r6034-an-application-has-made-an-attempt-to-load-c-runtime-library-incorrectly.|
31. I hear that YCM only supports Python 2, is that true? |youcompleteme-i-hear-that-ycm-only-supports-python-2-is-that-true| 29. I hear that YCM only supports Python 2, is that true? |youcompleteme-i-hear-that-ycm-only-supports-python-2-is-that-true|
32. On Windows I get "E887: Sorry, this command is disabled, the Python's site 30. On Windows I get "E887: Sorry, this command is disabled, the Python's site
module could not be loaded" |youcompleteme-on-windows-i-get-e887-sorry-this-command-is-disabled-pythons-site-module-could-not-be-loaded| module could not be loaded" |youcompleteme-on-windows-i-get-e887-sorry-this-command-is-disabled-pythons-site-module-could-not-be-loaded|
33. I can't complete Python packages in a virtual environment. |youcompleteme-i-cant-complete-python-packages-in-virtual-environment.| 31. I can't complete Python packages in a virtual environment. |youcompleteme-i-cant-complete-python-packages-in-virtual-environment.|
34. I want to defer loading of YouCompleteMe until after Vim finishes booting |i-want-to-defer-loading-of-youcompleteme-until-after-vim-finishes-booting| 32. I want to defer loading of YouCompleteMe until after Vim finishes booting |i-want-to-defer-loading-of-youcompleteme-until-after-vim-finishes-booting|
35. YCM does not shut down when I quit Vim |youcompleteme-ycm-does-not-shut-down-when-i-quit-vim| 33. YCM does not shut down when I quit Vim |youcompleteme-ycm-does-not-shut-down-when-i-quit-vim|
36. YCM does not work with my Anaconda Python setup |youcompleteme-ycm-does-not-work-with-my-anaconda-python-setup| 34. YCM does not work with my Anaconda Python setup |youcompleteme-ycm-does-not-work-with-my-anaconda-python-setup|
37. Automatic import insertion after selecting a completion breaks undo |youcompleteme-automatic-import-insertion-after-selecting-completion-breaks-undo| 35. Automatic import insertion after selecting a completion breaks undo |youcompleteme-automatic-import-insertion-after-selecting-completion-breaks-undo|
38. 'TAB' is already mapped to trigger completion in the command-line window |youcompleteme-tab-is-already-mapped-to-trigger-completion-in-command-line-window| 36. 'TAB' is already mapped to trigger completion in the command-line window |youcompleteme-tab-is-already-mapped-to-trigger-completion-in-command-line-window|
14. Contributor Code of Conduct |youcompleteme-contributor-code-of-conduct| 14. Contributor Code of Conduct |youcompleteme-contributor-code-of-conduct|
15. Contact |youcompleteme-contact| 15. Contact |youcompleteme-contact|
16. License |youcompleteme-license| 16. License |youcompleteme-license|
@ -227,7 +225,7 @@ Contents ~
- Intro - Intro
- Installation - Installation
- Mac OS X - macOS
- Linux 64-bit - Linux 64-bit
- Windows - Windows
- FreeBSD/OpenBSD - FreeBSD/OpenBSD
@ -367,24 +365,19 @@ and a completer that integrates with UltiSnips [23].
Installation ~ Installation ~
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
*youcompleteme-mac-os-x* *youcompleteme-macos*
Mac OS X ~ macOS ~
These instructions (using 'install.py') are the quickest way to install These instructions (using 'install.py') are the quickest way to install
YouCompleteMe, however they may not work for everyone. If the following YouCompleteMe, however they may not work for everyone. If the following
instructions don't work for you, check out the full installation guide. instructions don't work for you, check out the full installation guide.
Install the latest version of MacVim [24]. Yes, MacVim. And yes, the _latest_. MacVim [24] is required. YCM won't work with the pre-installed Vim from Apple
as its Python support is broken. If you don't already use MacVim [24], install
If you don't use the MacVim GUI, it is recommended to use the Vim binary that it with Homebrew [25]. Install CMake as well:
is inside the MacVim.app package ('MacVim.app/Contents/MacOS/Vim'). To ensure
it works correctly copy the 'mvim' script from the MacVim [24] download to your
local binary folder (for example '/usr/local/bin/mvim') and then symlink it:
> >
ln -s /usr/local/bin/mvim vim brew install cmake macvim
< <
Install YouCompleteMe with Vundle [25].
**Remember:** YCM is a plugin with a compiled component. If you **update** YCM **Remember:** YCM is a plugin with a compiled component. If you **update** YCM
using Vundle and the ycm_core library APIs have changed (happens rarely), YCM using Vundle and the ycm_core library APIs have changed (happens rarely), YCM
will notify you to recompile it. You should then rerun the install process. will notify you to recompile it. You should then rerun the install process.
@ -394,12 +387,6 @@ installed along with the latest Command Line Tools (they are installed
automatically when you run 'clang' for the first time, or manually by running automatically when you run 'clang' for the first time, or manually by running
'xcode-select --install') 'xcode-select --install')
Install CMake. Preferably with Homebrew [26], but here's the stand-alone CMake
installer [27].
_If_ you have installed a Homebrew Python and/or Homebrew MacVim, see the _FAQ_
for details.
Compiling YCM **with** semantic support for C-family languages through Compiling YCM **with** semantic support for C-family languages through
**libclang**: **libclang**:
> >
@ -425,19 +412,19 @@ Compiling YCM **without** semantic support for C-family languages:
< <
The following additional language support options are available: The following additional language support options are available:
- C# support: install Mono with Homebrew [26] or by downloading the Mono Mac - C# support: install Mono with Homebrew [25] or by downloading the Mono
package [28] and add '--cs-completer' when calling 'install.py'. macOS package [26] and add '--cs-completer' when calling 'install.py'.
- Go support: install Go [29] and add '--go-completer' when calling - Go support: install Go [27] and add '--go-completer' when calling
'install.py'. 'install.py'.
- JavaScript and TypeScript support: install Node.js and npm [30] and add - JavaScript and TypeScript support: install Node.js and npm [28] and add
'--ts-completer' when calling 'install.py'. '--ts-completer' when calling 'install.py'.
- Rust support: install Rust [31] and add '--rust-completer' when calling - Rust support: install Rust [29] and add '--rust-completer' when calling
'install.py'. 'install.py'.
- Java support: install JDK8 (version 8 required) [32] and add - Java support: install JDK8 (version 8 required) [30] and add
'--java-completer' when calling 'install.py'. '--java-completer' when calling 'install.py'.
To simply compile with everything enabled, there's a '--all' flag. Note that To simply compile with everything enabled, there's a '--all' flag. Note that
@ -470,9 +457,9 @@ Make sure you have Vim 7.4.1578 with Python 2 or Python 3 support. The Vim
package on Fedora 27 and later and the pre-installed Vim on Ubuntu 16.04 and package on Fedora 27 and later and the pre-installed Vim on Ubuntu 16.04 and
later are recent enough. You can see the version of Vim installed by running later are recent enough. You can see the version of Vim installed by running
'vim --version'. If the version is too old, you may need to compile Vim from 'vim --version'. If the version is too old, you may need to compile Vim from
source [33] (don't worry, it's easy). source [31] (don't worry, it's easy).
Install YouCompleteMe with Vundle [25]. Install YouCompleteMe with Vundle [32].
**Remember:** YCM is a plugin with a compiled component. If you **update** YCM **Remember:** YCM is a plugin with a compiled component. If you **update** YCM
using Vundle and the ycm_core library APIs have changed (happens rarely), YCM using Vundle and the ycm_core library APIs have changed (happens rarely), YCM
@ -517,19 +504,19 @@ Compiling YCM **without** semantic support for C-family languages:
< <
The following additional language support options are available: The following additional language support options are available:
- C# support: install Mono [34] and add '--cs-completer' when calling - C# support: install Mono [33] and add '--cs-completer' when calling
'install.py'. 'install.py'.
- Go support: install Go [29] and add '--go-completer' when calling - Go support: install Go [27] and add '--go-completer' when calling
'install.py'. 'install.py'.
- JavaScript and TypeScript support: install Node.js and npm [30] and add - JavaScript and TypeScript support: install Node.js and npm [28] and add
'--ts-completer' when calling 'install.py'. '--ts-completer' when calling 'install.py'.
- Rust support: install Rust [31] and add '--rust-completer' when calling - Rust support: install Rust [29] and add '--rust-completer' when calling
'install.py'. 'install.py'.
- Java support: install JDK8 (version 8 required) [32] and add - Java support: install JDK8 (version 8 required) [30] and add
'--java-completer' when calling 'install.py'. '--java-completer' when calling 'install.py'.
To simply compile with everything enabled, there's a '--all' flag. Note that To simply compile with everything enabled, there's a '--all' flag. Note that
@ -567,18 +554,18 @@ Vim. Look at the features included: '+python/dyn' for Python 2 and
'+python3/dyn' for Python 3. Take note of the Vim architecture, i.e. 32 or '+python3/dyn' for Python 3. Take note of the Vim architecture, i.e. 32 or
64-bit. It will be important when choosing the Python installer. We recommend 64-bit. It will be important when choosing the Python installer. We recommend
using a 64-bit client. Daily updated installers of 32-bit and 64-bit Vim with using a 64-bit client. Daily updated installers of 32-bit and 64-bit Vim with
Python 2 and Python 3 support [35] are available. Python 2 and Python 3 support [34] are available.
Add the line: Add the line:
> >
set encoding=utf-8 set encoding=utf-8
< <
to your vimrc [36] if not already present. This option is required by YCM. Note to your vimrc [35] if not already present. This option is required by YCM. Note
that it does not prevent you from editing a file in another encoding than that it does not prevent you from editing a file in another encoding than
UTF-8. You can do that by specifying the '|++enc|' argument to the ':e' UTF-8. You can do that by specifying the '|++enc|' argument to the ':e'
command. command.
Install YouCompleteMe with Vundle [25]. Install YouCompleteMe with Vundle [32].
**Remember:** YCM is a plugin with a compiled component. If you **update** YCM **Remember:** YCM is a plugin with a compiled component. If you **update** YCM
using Vundle and the ycm_core library APIs have changed (happens rarely), YCM using Vundle and the ycm_core library APIs have changed (happens rarely), YCM
@ -586,7 +573,7 @@ will notify you to recompile it. You should then rerun the install process.
Download and install the following software: Download and install the following software:
- Python 2 or Python 3 [37]. Be sure to pick the version corresponding to - Python 2 or Python 3 [36]. Be sure to pick the version corresponding to
your Vim architecture. It is _Windows x86_ for a 32-bit Vim and _Windows your Vim architecture. It is _Windows x86_ for a 32-bit Vim and _Windows
x86-64_ for a 64-bit Vim. We recommend installing Python 3. Additionally, x86-64_ for a 64-bit Vim. We recommend installing Python 3. Additionally,
the version of Python you install must match up exactly with the version of the version of Python you install must match up exactly with the version of
@ -598,7 +585,7 @@ Download and install the following software:
Python 3.5. You'll need one or the other installed, matching the version Python 3.5. You'll need one or the other installed, matching the version
number exactly. number exactly.
- CMake [27]. Add CMake executable to the PATH environment variable. - CMake [37]. Add CMake executable to the PATH environment variable.
- Visual Studio Build Tools 2017 [38]. During setup, select _Visual C++ build - Visual Studio Build Tools 2017 [38]. During setup, select _Visual C++ build
tools_ in _Workloads_. tools_ in _Workloads_.
@ -631,16 +618,16 @@ The following additional language support options are available:
- C# support: add '--cs-completer' when calling 'install.py'. Be sure that - C# support: add '--cs-completer' when calling 'install.py'. Be sure that
the build utility 'msbuild' is in your PATH [39]. the build utility 'msbuild' is in your PATH [39].
- Go support: install Go [29] and add '--go-completer' when calling - Go support: install Go [27] and add '--go-completer' when calling
'install.py'. 'install.py'.
- JavaScript and TypeScript support: install Node.js and npm [30] and add - JavaScript and TypeScript support: install Node.js and npm [28] and add
'--ts-completer' when calling 'install.py'. '--ts-completer' when calling 'install.py'.
- Rust support: install Rust [31] and add '--rust-completer' when calling - Rust support: install Rust [29] and add '--rust-completer' when calling
'install.py'. 'install.py'.
- Java support: install JDK8 (version 8 required) [32] and add - Java support: install JDK8 (version 8 required) [30] and add
'--java-completer' when calling 'install.py'. '--java-completer' when calling 'install.py'.
To simply compile with everything enabled, there's a '--all' flag. Note that To simply compile with everything enabled, there's a '--all' flag. Note that
@ -683,7 +670,7 @@ For FreeBSD 11.x, the requirement is cmake:
> >
pkg install cmake pkg install cmake
< <
Install YouCompleteMe with Vundle [25]. Install YouCompleteMe with Vundle [32].
**Remember:** YCM is a plugin with a compiled component. If you **update** YCM **Remember:** YCM is a plugin with a compiled component. If you **update** YCM
using Vundle and the ycm_core library APIs have changed (happens rarely), YCM using Vundle and the ycm_core library APIs have changed (happens rarely), YCM
@ -722,16 +709,16 @@ The following additional language support options are available:
- C# support: install Mono and add '--cs-completer' when calling - C# support: install Mono and add '--cs-completer' when calling
'./install.py'. './install.py'.
- Go support: install Go [29] and add '--go-completer' when calling - Go support: install Go [27] and add '--go-completer' when calling
'./install.py'. './install.py'.
- JavaScript and TypeScript support: install Node.js and npm [30] and add - JavaScript and TypeScript support: install Node.js and npm [28] and add
'--ts-completer' when calling 'install.py'. '--ts-completer' when calling 'install.py'.
- Rust support: install Rust [31] and add '--rust-completer' when calling - Rust support: install Rust [29] and add '--rust-completer' when calling
'./install.py'. './install.py'.
- Java support: install JDK8 (version 8 required) [32] and add - Java support: install JDK8 (version 8 required) [30] and add
'--java-completer' when calling './install.py'. '--java-completer' when calling './install.py'.
To simply compile with everything enabled, there's a '--all' flag. Note that To simply compile with everything enabled, there's a '--all' flag. Note that
@ -783,7 +770,7 @@ will notify you to recompile it. You should then rerun the install process.
higher. higher.
If your version of Vim is not recent enough, you may need to compile Vim If your version of Vim is not recent enough, you may need to compile Vim
from source [33] (don't worry, it's easy). from source [31] (don't worry, it's easy).
After you have made sure that you have Vim 7.4.1578+, type the following After you have made sure that you have Vim 7.4.1578+, type the following
in Vim: ":echo has('python') || has('python3')". The output should be 1. in Vim: ":echo has('python') || has('python3')". The output should be 1.
@ -793,9 +780,9 @@ will notify you to recompile it. You should then rerun the install process.
critical because it must match the Python and the YCM libraries critical because it must match the Python and the YCM libraries
architectures. We recommend using a 64-bit Vim. architectures. We recommend using a 64-bit Vim.
2. **Install YCM** with Vundle [25] (or Pathogen [40], but Vundle is a 2. **Install YCM** with Vundle [32] (or Pathogen [40], but Vundle is a
better idea). With Vundle, this would mean adding a "Plugin better idea). With Vundle, this would mean adding a "Plugin
'Valloric/YouCompleteMe'" line to your vimrc [36]. 'Valloric/YouCompleteMe'" line to your vimrc [35].
If you don't install YCM with Vundle, make sure you have run 'git If you don't install YCM with Vundle, make sure you have run 'git
submodule update --init --recursive' after checking out the YCM submodule update --init --recursive' after checking out the YCM
@ -830,14 +817,14 @@ will notify you to recompile it. You should then rerun the install process.
You will need to have 'cmake' installed in order to generate the required You will need to have 'cmake' installed in order to generate the required
makefiles. Linux users can install cmake with their package manager makefiles. Linux users can install cmake with their package manager
('sudo apt-get install cmake' for Ubuntu) whereas other users can ('sudo apt-get install cmake' for Ubuntu) whereas other users can
download and install [27] cmake from its project site. Mac users can also download and install [37] cmake from its project site. macOS users can
get it through Homebrew [26] with 'brew install cmake'. also get it through Homebrew [25] with 'brew install cmake'.
On a Unix OS, you need to make sure you have Python headers installed. On On a Unix OS, you need to make sure you have Python headers installed. On
a Debian-like Linux distro, this would be 'sudo apt-get install a Debian-like Linux distro, this would be 'sudo apt-get install
python-dev python3-dev'. On Mac they should already be present. python-dev python3-dev'. On macOS they should already be present.
On Windows, you need to download and install Python 2 or Python 3 [37]. On Windows, you need to download and install Python 2 or Python 3 [36].
Pick the version corresponding to your Vim architecture. You will also Pick the version corresponding to your Vim architecture. You will also
need Microsoft Visual C++ (MSVC) to build YCM. You can obtain it by need Microsoft Visual C++ (MSVC) to build YCM. You can obtain it by
installing Visual Studio Build Tools [38]. MSVC 14 (Visual Studio 2015) installing Visual Studio Build Tools [38]. MSVC 14 (Visual Studio 2015)
@ -915,7 +902,7 @@ will notify you to recompile it. You should then rerun the install process.
You could also force the use of a custom libclang library with You could also force the use of a custom libclang library with
'-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so' flag (the library would '-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so' flag (the library would
end with '.dylib' on a Mac). Again, this flag would be used _instead of_ end with '.dylib' on macOS). Again, this flag would be used _instead of_
the other flags. **If you compiled LLVM from source, this is the flag you the other flags. **If you compiled LLVM from source, this is the flag you
should be using.** should be using.**
@ -957,7 +944,7 @@ will notify you to recompile it. You should then rerun the install process.
On Windows, be sure that the build utility 'msbuild' is in your PATH On Windows, be sure that the build utility 'msbuild' is in your PATH
[39]. [39].
- Go support: install Go [29] and add it to your path. Navigate to - Go support: install Go [27] and add it to your path. Navigate to
'YouCompleteMe/third_party/ycmd/third_party/go' and in **both** 'YouCompleteMe/third_party/ycmd/third_party/go' and in **both**
'src/github.com/mdempsky/gocode' and 'src/github.com/rogpeppe/godef' 'src/github.com/mdempsky/gocode' and 'src/github.com/rogpeppe/godef'
run run
@ -968,15 +955,15 @@ will notify you to recompile it. You should then rerun the install process.
'YouCompleteMe/third_party/ycmd/third_party/go' then run 'go build' in 'YouCompleteMe/third_party/ycmd/third_party/go' then run 'go build' in
the two directories above. the two directories above.
- JavaScript and TypeScript support: install Node.js and npm [30], - JavaScript and TypeScript support: install Node.js and npm [28],
navigate to 'YouCompleteMe/third_party/ycmd' and run 'npm install -g navigate to 'YouCompleteMe/third_party/ycmd' and run 'npm install -g
--prefix third_party/tsserver typescript'. --prefix third_party/tsserver typescript'.
- Rust support: install Rust [31]. Navigate to - Rust support: install Rust [29]. Navigate to
'YouCompleteMe/third_party/ycmd/third_party/racerd' and run 'cargo 'YouCompleteMe/third_party/ycmd/third_party/racerd' and run 'cargo
build --release'. build --release'.
- Java support: install JDK8 (version 8 required) [32]. Download a - Java support: install JDK8 (version 8 required) [30]. Download a
binary release of eclipse.jdt.ls [45] and extract it to 'YouCompleteM binary release of eclipse.jdt.ls [45] and extract it to 'YouCompleteM
e/third_party/ycmd/third_party/eclipse.jdt.ls/target/repository'. e/third_party/ycmd/third_party/eclipse.jdt.ls/target/repository'.
Note: this approach is not recommended for most users and is Note: this approach is not recommended for most users and is
@ -1667,7 +1654,7 @@ available on the wiki [67].
All JavaScript and TypeScript features are provided by the TSServer [17] All JavaScript and TypeScript features are provided by the TSServer [17]
engine, which is included in the TypeScript SDK. To enable these features, engine, which is included in the TypeScript SDK. To enable these features,
install Node.js and npm [30] and call the 'install.py' script with the install Node.js and npm [28] and call the 'install.py' script with the
'--ts-completer' flag. '--ts-completer' flag.
TSServer [17] relies on the 'jsconfig.json' file [68] for JavaScript and the TSServer [17] relies on the 'jsconfig.json' file [68] for JavaScript and the
@ -2347,11 +2334,11 @@ Options ~
All options have reasonable defaults so if the plug-in works after installation All options have reasonable defaults so if the plug-in works after installation
you don't need to change any options. These options can be configured in your you don't need to change any options. These options can be configured in your
vimrc script [36] by including a line like this: vimrc script [35] by including a line like this:
> >
let g:ycm_min_num_of_chars_for_completion = 1 let g:ycm_min_num_of_chars_for_completion = 1
< <
Note that after changing an option in your vimrc script [36] you have to Note that after changing an option in your vimrc script [35] you have to
restart ycmd [47] with the |:YcmRestartServer| command for the changes to take restart ycmd [47] with the |:YcmRestartServer| command for the changes to take
effect. effect.
@ -3303,8 +3290,8 @@ problem. Common values for that option are '/usr/bin/python' and
'/usr/bin/python3'. '/usr/bin/python3'.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
*youcompleteme-i-get-linker-warning-regarding-libpython-on-mac-when-compiling-ycm* *youcompleteme-i-get-linker-warning-regarding-libpython-on-macos-when-compiling-ycm*
I get a linker warning regarding 'libpython' on Mac when compiling YCM ~ I get a linker warning regarding 'libpython' on macOS when compiling YCM ~
If the warning is "ld: warning: path '/usr/lib/libpython2.7.dylib' following -L If the warning is "ld: warning: path '/usr/lib/libpython2.7.dylib' following -L
not a directory", then feel free to ignore it; it's caused by a limitation of not a directory", then feel free to ignore it; it's caused by a limitation of
@ -3394,29 +3381,12 @@ Your system is too old for the precompiled binaries from llvm.org. Compile
Clang on your machine and then link against the 'libclang.so' you just Clang on your machine and then link against the 'libclang.so' you just
produced. See the full installation guide for help. produced. See the full installation guide for help.
-------------------------------------------------------------------------------
*youcompleteme-im-trying-to-use-homebrew-vim-with-ycm-im-getting-segfaults*
I'm trying to use a Homebrew Vim with YCM and I'm getting segfaults ~
Something (I don't know what) is wrong with the way that Homebrew configures
and builds Vim. I recommend using MacVim [24]. Even if you don't like the
MacVim GUI, you can use the Vim binary that is inside the MacVim.app package
(it's 'MacVim.app/Contents/MacOS/Vim') and get the Vim console experience.
-------------------------------------------------------------------------------
*youcompleteme-i-have-homebrew-python-and-or-macvim-cant-compile-sigabrt-when-starting*
I have a Homebrew Python and/or MacVim; can't compile/SIGABRT when starting ~
You should probably run 'brew rm python; brew install python' to get the latest
fixes that should make YCM work with such a configuration. Also rebuild Macvim
then. If you still get problems with this, see issue #18 [76] for suggestions.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
*youcompleteme-i-get-long_bit-definition-appears-wrong-for-platform-when-compiling* *youcompleteme-i-get-long_bit-definition-appears-wrong-for-platform-when-compiling*
I get 'LONG_BIT definition appears wrong for platform' when compiling ~ I get 'LONG_BIT definition appears wrong for platform' when compiling ~
Look at the output of your CMake call. There should be a line in it like the Look at the output of your CMake call. There should be a line in it like the
following (with '.dylib' in place of '.so' on a Mac): following (with '.dylib' in place of '.so' on macOS):
> >
-- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "2.5") -- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "2.5")
< <
@ -3435,7 +3405,7 @@ version for the library. This is wrong. It can happen when you have multiple
versions of Python installed on your machine. versions of Python installed on your machine.
You should probably add the following flags to your cmake call (again, 'dylib' You should probably add the following flags to your cmake call (again, 'dylib'
instead of 'so' on a Mac): instead of 'so' on macOS):
> >
-DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
< <
@ -3482,7 +3452,7 @@ The details aren't important.
The solution is that the version of Python linked and run against must be built The solution is that the version of Python linked and run against must be built
with either '--enable-shared' or '--enable-framework' (on OS X). This is with either '--enable-shared' or '--enable-framework' (on OS X). This is
achieved as follows (**NOTE:** for Mac, replace '--enable-shared' with achieved as follows (**NOTE:** for macOS, replace '--enable-shared' with
'--enable-framework'): '--enable-framework'):
- When building python from source: './configure --enable-shared {options}' - When building python from source: './configure --enable-shared {options}'
@ -3502,19 +3472,19 @@ YCM does not read identifiers from my tags files ~
First, put 'let g:ycm_collect_identifiers_from_tags_files = 1' in your vimrc. First, put 'let g:ycm_collect_identifiers_from_tags_files = 1' in your vimrc.
Make sure you are using Exuberant Ctags [77] to produce your tags files since Make sure you are using Exuberant Ctags [76] to produce your tags files since
the only supported tag format is the Exuberant Ctags format [75]. The format the only supported tag format is the Exuberant Ctags format [75]. The format
from "plain" ctags is NOT supported. The output of 'ctags --version' should from "plain" ctags is NOT supported. The output of 'ctags --version' should
list "Exuberant Ctags". See Universal Ctags [78] for a maintained version. list "Exuberant Ctags". See Universal Ctags [77] for a maintained version.
Ctags needs to be called with the '--fields=+l' (that's a lowercase 'L', not a Ctags needs to be called with the '--fields=+l' (that's a lowercase 'L', not a
one) option because YCM needs the 'language:<lang>' field in the tags output. one) option because YCM needs the 'language:<lang>' field in the tags output.
**NOTE:** Exuberant Ctags [77] by default sets language tag for '*.h' files as **NOTE:** Exuberant Ctags [76] by default sets language tag for '*.h' files as
'C++'. If you have C (not C++) project, consider giving parameter 'C++'. If you have C (not C++) project, consider giving parameter
'--langmap=c:.c.h' to ctags to see tags from '*.h' files. '--langmap=c:.c.h' to ctags to see tags from '*.h' files.
**NOTE:** Mac OS X comes with "plain" ctags installed by default. 'brew install **NOTE:** macOS comes with "plain" ctags installed by default. 'brew install
ctags' will get you the Exuberant Ctags version. ctags' will get you the Exuberant Ctags version.
Also make sure that your Vim 'tags' option is set correctly. See ":h 'tags'" Also make sure that your Vim 'tags' option is set correctly. See ":h 'tags'"
@ -3589,7 +3559,7 @@ asynchronicity. This feature is available since Vim 7.4.1578.
*youcompleteme-nasty-bugs-happen-if-i-have-vim-autoclose-plugin-installed* *youcompleteme-nasty-bugs-happen-if-i-have-vim-autoclose-plugin-installed*
Nasty bugs happen if I have the 'vim-autoclose' plugin installed ~ Nasty bugs happen if I have the 'vim-autoclose' plugin installed ~
Use the delimitMate [79] plugin instead. It does the same thing without Use the delimitMate [78] plugin instead. It does the same thing without
conflicting with YCM. conflicting with YCM.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -3597,7 +3567,7 @@ conflicting with YCM.
Is there some sort of YCM mailing list? I have questions ~ Is there some sort of YCM mailing list? I have questions ~
If you have questions about the plugin or need help, please use the ycm-users If you have questions about the plugin or need help, please use the ycm-users
[80] mailing list, _don't_ create issues on the tracker. The tracker is for bug [79] mailing list, _don't_ create issues on the tracker. The tracker is for bug
reports and feature requests. reports and feature requests.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -3651,7 +3621,7 @@ mismatch in assumptions causes performance problems since Syntastic code isn't
optimized for this use case of constant diagnostic refreshing. optimized for this use case of constant diagnostic refreshing.
Poor support for this use case also led to crash bugs in Vim caused by Poor support for this use case also led to crash bugs in Vim caused by
Syntastic-Vim interactions (issue #593 [81]) and other problems, like random Syntastic-Vim interactions (issue #593 [80]) and other problems, like random
Vim flickering. Attempts were made to resolve these issues in Syntastic, but Vim flickering. Attempts were made to resolve these issues in Syntastic, but
ultimately some of them failed (for various reasons). ultimately some of them failed (for various reasons).
@ -3677,9 +3647,9 @@ This is caused by an issue with libclang that only affects some operating
systems. Compiling with 'clang' the binary will use the correct default header systems. Compiling with 'clang' the binary will use the correct default header
search paths but compiling with 'libclang.so' (which YCM uses) does not. search paths but compiling with 'libclang.so' (which YCM uses) does not.
Mac OS X is normally affected, but there's a workaround in YCM for that macOS is normally affected, but there's a workaround in YCM for that specific
specific OS. If you're not running that OS but still have the same problem, OS. If you're not running that OS but still have the same problem, continue
continue reading. reading.
The workaround is to call 'echo | clang -v -E -x c++ -' and look at the paths The workaround is to call 'echo | clang -v -E -x c++ -' and look at the paths
under the '#include <...> search starts here:' heading. You should take those under the '#include <...> search starts here:' heading. You should take those
@ -3687,7 +3657,7 @@ paths, prepend '-isystem' to each individual path and append them all to the
list of flags you return from your 'Settings' function in your list of flags you return from your 'Settings' function in your
'.ycm_extra_conf.py' file. '.ycm_extra_conf.py' file.
See issue #303 [82] for details. See issue #303 [81] for details.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
*youcompleteme-when-i-start-vim-i-get-runtime-error-saying-r6034-an-application-has-made-an-attempt-to-load-c-runtime-library-incorrectly.* *youcompleteme-when-i-start-vim-i-get-runtime-error-saying-r6034-an-application-has-made-an-attempt-to-load-c-runtime-library-incorrectly.*
@ -3695,7 +3665,7 @@ When I start vim I get a runtime error saying 'R6034 An application has made ~
an attempt to load the C runtime library incorrectly.' ~ an attempt to load the C runtime library incorrectly.' ~
CMake and other things seem to screw up the PATH with their own msvcrXX.dll CMake and other things seem to screw up the PATH with their own msvcrXX.dll
versions. [83] Add the following to the very top of your vimrc to remove these versions. [82] Add the following to the very top of your vimrc to remove these
entries from the path. entries from the path.
> >
python << EOF python << EOF
@ -3731,7 +3701,7 @@ On Windows I get "E887: Sorry, this command is disabled, the Python's site ~
module could not be loaded" ~ module could not be loaded" ~
If you are running vim on Windows with Python 2.7.11, this is likely caused by If you are running vim on Windows with Python 2.7.11, this is likely caused by
a bug [84]. Follow this workaround [85] or use a different version (Python a bug [83]. Follow this workaround [84] or use a different version (Python
2.7.12 does not suffer from the bug). 2.7.12 does not suffer from the bug).
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -3817,17 +3787,17 @@ using this key to cycle through YCM's suggestions without changing the value of
Contributor Code of Conduct ~ Contributor Code of Conduct ~
Please note that this project is released with a Contributor Code of Conduct Please note that this project is released with a Contributor Code of Conduct
[86]. By participating in this project you agree to abide by its terms. [85]. By participating in this project you agree to abide by its terms.
=============================================================================== ===============================================================================
*youcompleteme-contact* *youcompleteme-contact*
Contact ~ Contact ~
If you have questions about the plugin or need help, please join the Gitter If you have questions about the plugin or need help, please join the Gitter
room [1] or use the ycm-users [80] mailing list. room [1] or use the ycm-users [79] mailing list.
If you have bug reports or feature suggestions, please use the issue tracker If you have bug reports or feature suggestions, please use the issue tracker
[87]. Before you do, please carefully read CONTRIBUTING.md [62] as this asks [86]. Before you do, please carefully read CONTRIBUTING.md [62] as this asks
for important diagnostics which the team will use to help get you going. for important diagnostics which the team will use to help get you going.
The latest version of the plugin is available at The latest version of the plugin is available at
@ -3842,7 +3812,7 @@ YouCompleteMe maintainers directly using the contact details.
*youcompleteme-license* *youcompleteme-license*
License ~ License ~
This software is licensed under the GPL v3 license [88]. © 2015-2018 This software is licensed under the GPL v3 license [87]. © 2015-2018
YouCompleteMe contributors YouCompleteMe contributors
=============================================================================== ===============================================================================
@ -3872,20 +3842,20 @@ References ~
[21] https://en.wikipedia.org/wiki/Subsequence [21] https://en.wikipedia.org/wiki/Subsequence
[22] https://github.com/scrooloose/syntastic [22] https://github.com/scrooloose/syntastic
[23] https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt [23] https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
[24] https://github.com/macvim-dev/macvim/releases [24] https://macvim-dev.github.io/macvim/
[25] https://github.com/VundleVim/Vundle.vim#about [25] http://brew.sh
[26] http://brew.sh [26] http://www.mono-project.com/docs/getting-started/install/mac/
[27] https://cmake.org/download/ [27] https://golang.org/doc/install
[28] http://www.mono-project.com/docs/getting-started/install/mac/ [28] https://docs.npmjs.com/getting-started/installing-node#1-install-nodejs--npm
[29] https://golang.org/doc/install [29] https://www.rust-lang.org/
[30] https://docs.npmjs.com/getting-started/installing-node#1-install-nodejs--npm [30] http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[31] https://www.rust-lang.org/ [31] https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
[32] http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html [32] https://github.com/VundleVim/Vundle.vim#about
[33] https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source [33] https://www.mono-project.com/download/stable/#download-lin
[34] https://www.mono-project.com/download/stable/#download-lin [34] https://github.com/vim/vim-win32-installer/releases
[35] https://github.com/vim/vim-win32-installer/releases [35] http://vimhelp.appspot.com/starting.txt.html#vimrc
[36] http://vimhelp.appspot.com/starting.txt.html#vimrc [36] https://www.python.org/downloads/windows/
[37] https://www.python.org/downloads/windows/ [37] https://cmake.org/download/
[38] https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15 [38] https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15
[39] http://stackoverflow.com/questions/6319274/how-do-i-run-msbuild-from-the-command-line-using-windows-sdk-7-1 [39] http://stackoverflow.com/questions/6319274/how-do-i-run-msbuild-from-the-command-line-using-windows-sdk-7-1
[40] https://github.com/tpope/vim-pathogen#pathogenvim [40] https://github.com/tpope/vim-pathogen#pathogenvim
@ -3924,18 +3894,17 @@ References ~
[73] https://github.com/itchyny/lightline.vim [73] https://github.com/itchyny/lightline.vim
[74] https://docs.python.org/2/library/re.html#regular-expression-syntax [74] https://docs.python.org/2/library/re.html#regular-expression-syntax
[75] http://ctags.sourceforge.net/FORMAT [75] http://ctags.sourceforge.net/FORMAT
[76] https://github.com/Valloric/YouCompleteMe/issues/18 [76] http://ctags.sourceforge.net/
[77] http://ctags.sourceforge.net/ [77] https://github.com/universal-ctags/ctags
[78] https://github.com/universal-ctags/ctags [78] https://github.com/Raimondi/delimitMate
[79] https://github.com/Raimondi/delimitMate [79] https://groups.google.com/forum/?hl=en#!forum/ycm-users
[80] https://groups.google.com/forum/?hl=en#!forum/ycm-users [80] https://github.com/Valloric/YouCompleteMe/issues/593
[81] https://github.com/Valloric/YouCompleteMe/issues/593 [81] https://github.com/Valloric/YouCompleteMe/issues/303
[82] https://github.com/Valloric/YouCompleteMe/issues/303 [82] http://stackoverflow.com/questions/14552348/runtime-error-r6034-in-embedded-python-application/34696022
[83] http://stackoverflow.com/questions/14552348/runtime-error-r6034-in-embedded-python-application/34696022 [83] https://github.com/vim/vim/issues/717
[84] https://github.com/vim/vim/issues/717 [84] https://github.com/vim/vim-win32-installer/blob/a27bbdba9bb87fa0e44c8a00d33d46be936822dd/appveyor.bat#L86-L88
[85] https://github.com/vim/vim-win32-installer/blob/a27bbdba9bb87fa0e44c8a00d33d46be936822dd/appveyor.bat#L86-L88 [85] https://github.com/Valloric/YouCompleteMe/blob/master/CODE_OF_CONDUCT.md
[86] https://github.com/Valloric/YouCompleteMe/blob/master/CODE_OF_CONDUCT.md [86] https://github.com/Valloric/YouCompleteMe/issues?state=open
[87] https://github.com/Valloric/YouCompleteMe/issues?state=open [87] http://www.gnu.org/copyleft/gpl.html
[88] http://www.gnu.org/copyleft/gpl.html
vim: ft=help vim: ft=help