YouCompleteMe: a code-completion engine for Vim
===============================================
[![Gitter room](https://img.shields.io/gitter/room/Valloric/YouCompleteMe.svg)](https://gitter.im/Valloric/YouCompleteMe)
[![Build status](https://dev.azure.com/YouCompleteMe/YCM/_apis/build/status/ycm-core.YouCompleteMe?branchName=master)](https://dev.azure.com/YouCompleteMe/YCM/_build?definitionId=3&branchName=master)
[![Coverage status](https://img.shields.io/codecov/c/github/ycm-core/YouCompleteMe/master.svg)](https://codecov.io/gh/ycm-core/YouCompleteMe)
Help, Advice, Support
---------------------
Looking for help, advice or support? Having problems getting YCM to work?
First carefully read the [installation instructions](#installation) for your OS.
We recommend you use the supplied `install.py`.
Next check the [User Guide](#user-guide) section on the semantic completer that
you are using. For C/C++/Objective-C/Objective-C++/CUDA, you _must_ read [this
section](#c-family-semantic-completion).
Finally, check the [FAQ](#faq).
If, after reading the installation and user guides, and checking the FAQ, you're
still having trouble, check the [contacts](#contact) section below for how to
get in touch.
Please do **NOT** go to #vim on freenode for support. Please contact the
YouCompleteMe maintainers directly using the [contact details](#contact) below.
Contents
--------
- [Intro](#intro)
- [Installation](#installation)
- [macOS](#macos)
- [Linux 64-bit](#linux-64-bit)
- [Windows](#windows)
- [FreeBSD/OpenBSD](#freebsdopenbsd)
- [Full Installation Guide](#full-installation-guide)
- [Quick Feature Summary](#quick-feature-summary)
- [User Guide](#user-guide)
- [General Usage](#general-usage)
- [Client-Server Architecture](#client-server-architecture)
- [Completion String Ranking](#completion-string-ranking)
- [General Semantic Completion](#general-semantic-completion)
- [C-family Semantic Completion](#c-family-semantic-completion)
- [Java Semantic Completion](#java-semantic-completion)
- [Python Semantic Completion](#python-semantic-completion)
- [Rust Semantic Completion](#rust-semantic-completion)
- [Go Semantic Completion](#go-semantic-completion)
- [JavaScript and TypeScript Semantic Completion](#javascript-and-typescript-semantic-completion)
- [Semantic Completion for Other Languages](#semantic-completion-for-other-languages)
- [LSP Configuration](#lsp-configuration)
- [Writing New Semantic Completers](#writing-new-semantic-completers)
- [Diagnostic Display](#diagnostic-display)
- [Diagnostic Highlighting Groups](#diagnostic-highlighting-groups)
- [Commands](#commands)
- [YcmCompleter subcommands](#ycmcompleter-subcommands)
- [GoTo Commands](#goto-commands)
- [Semantic Information Commands](#semantic-information-commands)
- [Refactoring Commands](#refactoring-commands)
- [Miscellaneous Commands](#miscellaneous-commands)
- [Functions](#functions)
- [Autocommands](#autocommands)
- [Options](#options)
- [FAQ](#faq)
- [Contributor Code of Conduct](#contributor-code-of-conduct)
- [Contact](#contact)
- [License](#license)
Intro
-----
YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for
[Vim][]. It has several completion engines:
- an identifier-based engine that works with every programming language,
- a [Clang][]-based engine that provides native semantic code
completion for C/C++/Objective-C/Objective-C++/CUDA (from now on referred to
as "the C-family languages"),
- a [clangd][]-based **experimental** completion engine for the C-family
languages.
- a [Jedi][]-based completion engine for Python 2 and 3,
- an [OmniSharp-Roslyn][]-based completion engine for C#,
- a [Gopls][]-based completion engine for Go,
- a [TSServer][]-based completion engine for JavaScript and TypeScript,
- a [rls][]-based completion engine for Rust,
- a [jdt.ls][]-based experimental completion engine for Java.
- a [generic Language Server Protocol implementation for any language](#plugging-an-arbitrary-lsp-server)
- and an omnifunc-based completer that uses data from Vim's omnicomplete system
to provide semantic completions for many other languages (Ruby, PHP etc.).
![YouCompleteMe GIF demo](http://i.imgur.com/0OP4ood.gif)
Here's an explanation of what happens in the short GIF demo above.
First, realize that **no keyboard shortcuts had to be pressed** to get the list
of completion candidates at any point in the demo. The user just types and the
suggestions pop up by themselves. If the user doesn't find the completion
suggestions relevant and/or just wants to type, they can do so; the completion
engine will not interfere.
When the user sees a useful completion string being offered, they press the TAB
key to accept it. This inserts the completion string. Repeated presses of the
TAB key cycle through the offered completions.
If the offered completions are not relevant enough, the user can continue typing
to further filter out unwanted completions.
A critical thing to notice is that the completion **filtering is NOT based on
the input being a string prefix of the completion** (but that works too). The
input needs to be a _[subsequence][] match_ of a completion. This is a fancy way
of saying that any input characters need to be present in a completion string in
the order in which they appear in the input. So `abc` is a subsequence of
`xaybgc`, but not of `xbyxaxxc`. After the filter, a complicated sorting system
ranks the completion strings so that the most relevant ones rise to the top of
the menu (so you usually need to press TAB just once).
**All of the above works with any programming language** because of the
identifier-based completion engine. It collects all of the identifiers in the
current file and other files you visit (and your tags files) and searches them
when you type (identifiers are put into per-filetype groups).
The demo also shows the semantic engine in use. When the user presses `.`, `->`
or `::` while typing in insert mode (for C++; different triggers are used for
other languages), the semantic engine is triggered (it can also be triggered
with a keyboard shortcut; see the rest of the docs).
The last thing that you can see in the demo is YCM's diagnostic display features
(the little red X that shows up in the left gutter; inspired by [Syntastic][])
if you are editing a C-family file. As the completer engine compiles your file
and detects warnings or errors, they will be presented in various ways. You
don't need to save your file or press any keyboard shortcut to trigger this, it
"just happens" in the background.
In essence, YCM obsoletes the following Vim plugins because it has all of their
features plus extra:
- clang_complete
- AutoComplPop
- Supertab
- neocomplcache
**And that's not all...**
YCM also provides [semantic IDE-like features](#quick-feature-summary) in a
number of languages, including:
- finding declarations, definitions, usages, etc. of identifiers,
- displaying type information for classes, variables, functions etc.,
- displaying documentation for methods, members, etc. in the preview window,
- fixing common coding errors, like missing semi-colons, typos, etc.,
- semantic renaming of variables across files,
- formatting code,
- removing unused imports, sorting imports, etc.
Features vary by file type, so make sure to check out the [file type feature
summary](#quick-feature-summary) and the
[full list of completer subcommands](#ycmcompleter-subcommands) to
find out what's available for your favourite languages.
You'll also find that YCM has filepath completers (try typing `./` in a file)
and a completer that integrates with [UltiSnips][].
Installation
------------
### macOS
These instructions (using `install.py`) are the quickest way to install
YouCompleteMe, however they may not work for everyone. If the following
instructions don't work for you, check out the [full installat
没有合适的资源?快使用搜索试试~ 我知道了~
plugged.zip
共9243个文件
py:1819个
hpp:1089个
go:821个
需积分: 0 17 下载量 21 浏览量
2023-07-02
16:43:25
上传
评论
收藏 176.92MB ZIP 举报
温馨提示
plugged.zip
资源推荐
资源详情
资源评论
收起资源包目录
plugged.zip (9243个子文件)
98a2772e.0 1KB
b6b9ccf9.0 1KB
98a2772e.0 1KB
b6b9ccf9.0 1KB
001b0481acc72ca7a23770a60d73eac0ae5ac9 49B
0090bc48ab58e14520ac40c4139b1d2a9fa59a 7KB
011dec93cc3da6ac10dfd09497dddbf998fe74 58B
01d20c60f78a18359ac3bcb03e76cd229ebb58 86B
0215eb09dba959ab32fc389ecee01886142c1d 3KB
0216c49acc7ab013bdf6d7fbf97d507369f146 2KB
03a89cebd8c443c9eb9c85fb5f958d36cf5e3c 63B
047c28861dff7fe1bf0d7df2d93689f955266a 810B
04f19d206ffc4c5a1af1475d92b3d5099a4d7a 2KB
0520e5d4ca26b6ff5de53ab249dc7f10e27231 214B
05de7e9811cd298861c7bc6ef455093dcdfaf5 651B
06adbd56a761684701d1c60990b72c845be3d5 240B
071d710b16f356216f789c49e14b8dc244f886 55B
0770e35e0594fcdee8e9eed191b543b11e3c38 60B
07816e436d437f32e36ed7431f1641f82d3516 58B
07b85fd592d4cf3c62963f2cbb69915b32a0ad 115B
07c0f6e9af0f3ef7a543746fa2edfcc5d4fd85 147B
08084878142d2aede497ea43cc2022420fd6f4 835B
08352a3c3da2f714cf10f91ca4ea2b472f9bc1 165B
0836a7829d2d27c1b3bf0edd68bfe9eae610d6 54B
09a32f228b062f4d573fc0b64b9f1995d4263e 964B
0a2677453ad342103bbb231f088de10f1c67e4 56B
0a29108f38c00996713fb52e2e686f56eff70e 85B
0a5996b59371a87614a36c42ed55eb6d9b8c70 56B
0a73ca059cd62f448ed52a2bf5edeea30e0e09 6KB
0b66efa162a9bf1bcf78bf026ee877e41088be 237KB
0b7333b0f7142eacfb925aa6e5f434e8c4e226 57B
0ba7c8c28c36e0edbd680cb167240f9889d140 1KB
0cb7f56a65934087f3f8f2259a93f883ae5de8 55B
0cff3dd3cb866ebe3ed5fe3746666106a4923a 56B
0d7221efd7c408c1abae20299fd4ffa0a43cbf 173B
0e374121482d3571f70496d86944ba4de4badd 49B
0e5ddec7527a9df9409d73333c176fa755dc44 180B
0e8e2c1fa08607fa34c0ca5f1b66d8a906c5ef 227B
0edc11f3e3dc52b76b933f3683727e637b1316 57B
10049a34ab22d408d6191c51ec836e4e7cd454 170B
11104bfdf7b856365809e92d7b4113ac7713cf 57B
1144f19a1a7081033b3cf2b088916dd0bcb98c 252B
1176cf20a178a53dbed3f98b3f38e8da841a63 140B
117ba479c8b0435234b39819a3561e314703a1 59B
12bd68baf9dc612c2ad7a32f0771f4a4c35f0a 57B
13e20b0b74df9dc6f521c511e8a66fcf3b6172 1KB
14181525e3c9b9fd1bcab836ac6504d9c8b18f 56B
16592e79737f6f91ff2ca2ef4d1b8e634ca326 183B
167c2680f8a35d9ca1f47ddf31070492893175 211B
1690b7a4ca23e53ef0e006f69cefafd6e8ed1f 122B
16a6578401c99f325bfc1a2e68b8e74811c9f2 203B
1790f08c64c27ba48bd089db6354da8f62230c 164B
17fc328f5d41f0ecf138335581083c8f33747b 1006B
19838b7e8cf0ee5630660b23e19b4f2dd4da63 10KB
1a26d3710629d031806305b6c8727189cd1935 215B
1a9a0504297fed177ce57339fa3b75285011ae 7KB
1b2a79cd4b798800ee82af2eedbe5754106dda 143B
1c4ba4ab88c35509bfd051dc355183eb8e0998 60B
1c72755055ad6519fbf721bf8dcc952596a5b8 57B
1caa3b35c74c92d522e40e63ca5023f752130e 841B
1d7c39a8e9545b6f2d44dfff81a5d77efad6c8 173B
1e03258d873ccdd8890a4c66ad7681ea3fc77d 5KB
1f76e1272fe7e913f32ee9c10ea8d4993149ed 1KB
200cf9ca6871ccb85e511a9e072a1b6053b8d2 57B
2036e752feda57fdc87c6410b1aa9820b0ae4a 2KB
21b311cd60be82e4acbdd4637d159f148bed91 413B
21eec4d143fc3811483fa3b5933c844c1e4c26 1KB
22b7fe41f4c6a9c5e4a49a4c04454933d2fa89 1KB
22eff870f1d01b4d57cc7bed7c15b7eb279a6a 5KB
230ed690a204566d64b3b87ee23f2f15be61aa 122B
239f1ef29a5180ab99e9987aee96a4af59bebf 915B
23d8847a63a74036340719d38c9fb3cad0984a 1KB
241e20349172207782ebd43c4f079d01f9829d 581B
24f3e1b354a391583010fc16e3dd020c4ff944 57B
2585f89504ae06bac13a849f34f0cfa01127d5 1014B
262626a85af2bb0493e938cbdffcb237f2fdd4 55B
264ff59d298f613b76891f3bd2b68e612286b9 137B
27f834bbe9d0ec82e546ca422156039f72b603 56B
28484bb06b2855e4ac4ee757d6c37ec6ba02ee 505B
2850f9205aadfd649beb774fc71ec289dc9fb6 77B
288e8f643e838c92aaa9a31ec4e007813d4672 1KB
28c029f6b81d417badf199f231796de55d378f 5KB
293f48dbb61b83f01ea2b951e08013028c77c3 75B
2964008e04b336173887d94cbca8f9e97dfd37 88B
2ab164c86e19540f8e99d8607bd9e94e463d1d 2KB
2b2ebad6b086e5d755083d0d29ced776e1dae6 174B
2be41ec7c55a399e56412acf133fb592d68d67 57B
2be41ec7c55a399e56412acf133fb592d68d67 57B
2c302314a6a5930a8b8f56309cd66ba2d19779 475B
2c610ce19cf0fd6e72cd93b9f6c5161d1418df 121B
2c9ff9df8743ebb6a1a54eacf5dec826c2f509 333B
2d45f67ba5b3f0d47c3fdfeaddb6f5325499ae 63B
2d9bb721c353100efa49c4fc110d90f6ee9b62 49B
2dbe331e736673044e42df07fa2677c8fb965d 89B
2dce25eac602ef92d608bf71092d96e9155be1 64B
2e1a028af7475f27097eaf5af1b7f559b0931d 55B
2e7a789d11b8ced307b7f3509541d966e8e16c 3KB
2e7f9ee2faf1f276d847f4698f3cd006cbe9b1 5KB
2ea348383ac788d1bc8ad09d2a5b2bdfb9bf56 4KB
2ec3274e9dd22cda804557bddae98cca68a475 56B
共 9243 条
- 1
- 2
- 3
- 4
- 5
- 6
- 93
资源评论
yuyousheng_
- 粉丝: 60
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功