{"id":13898841,"url":"https://github.com/lifepillar/vim-mucomplete","last_synced_at":"2025-05-15T02:06:53.995Z","repository":{"id":12316645,"uuid":"71549755","full_name":"lifepillar/vim-mucomplete","owner":"lifepillar","description":"Chained completion that works the way you want!","archived":false,"fork":false,"pushed_at":"2025-04-05T13:09:24.000Z","size":531,"stargazers_count":931,"open_issues_count":16,"forks_count":20,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-12T21:33:58.295Z","etag":null,"topics":["autocompletion","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lifepillar.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-10-21T09:14:55.000Z","updated_at":"2025-04-07T18:01:28.000Z","dependencies_parsed_at":"2025-04-12T21:28:54.958Z","dependency_job_id":"0b1656fd-ce3f-40cf-823d-ed695ea089d7","html_url":"https://github.com/lifepillar/vim-mucomplete","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifepillar%2Fvim-mucomplete","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifepillar%2Fvim-mucomplete/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifepillar%2Fvim-mucomplete/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifepillar%2Fvim-mucomplete/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lifepillar","download_url":"https://codeload.github.com/lifepillar/vim-mucomplete/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259381,"owners_count":22040820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autocompletion","vim"],"created_at":"2024-08-06T18:04:29.026Z","updated_at":"2025-05-15T02:06:53.971Z","avatar_url":"https://github.com/lifepillar.png","language":"Vim Script","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=7VXF4VMBTLKDQ"],"categories":["Vim Script"],"sub_categories":[],"readme":"\u003eWe're coming down to the ground\n\u003e\n\u003eThere's no better place to go\n\u003e\n\u003e(Peter Gabriel)\n\n# What is it?\n\nMUcomplete is a minimalist autocompletion plugin for Vim.\n\nMUcomplete is an implementation of *chained (fallback) completion*, whereby\nseveral completion methods are attempted one after another until a result is\nreturned.\n\nUnder the hood, MUcomplete does nothing more than typing some completion\nmappings for you, either when you press `\u003ctab\u003e`/`\u003cs-tab\u003e` or automatically\nwhile you are typing. You choose which completion methods to use and in which\norder, and MUcomplete does the rest. It does no caching, no asynchronous\ncomputation, no intelligent guessing. It just makes use of core Vim features.\n\nMUcomplete brings Vim completion down to earth again.\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=7VXF4VMBTLKDQ)\n\n\n# Getting Started\n\nMUcomplete requires Vim 7.2 compiled with `+insert_expand` and `+menu`.\nAutomatic completion is available in Vim 7.4.143 or later, although Vim\n8.0.0283 is recommended. MUcomplete is developed and tested on Vim 8.\n\nInstallation does not require anything special. If you need help, please read\n[How to Install](https://github.com/lifepillar/vim-mucomplete/wiki/How-to-Install).\n\nMandatory Vim settings:\n\n```vim\n  set completeopt+=menuone\n```\n\nFor automatic completion, if you use Vim 7.4.775 or later you also need one of\nthe following:\n\n```vim\n  set completeopt+=noselect\n```\n\nor\n\n```vim\n  set completeopt+=noinsert\n```\n\nOther recommended settings:\n\n```vim\n  set shortmess+=c   \" Shut off completion messages\n  set belloff+=ctrlg \" Add only if Vim beeps during completion\n```\n\nNo other configuration is needed. Just start pressing `\u003ctab\u003e` or `\u003cs-tab\u003e` to\ncomplete a word. If you want to enable automatic completion at startup, put\n\n```vim\nlet g:mucomplete#enable_auto_at_startup = 1\n```\n\nin your `.vimrc`. Automatic completion may be enabled and disabled at any time\nwith `:MUcompleteAutoToggle`. If autocompletion looks a little overzealous to\nyou, you may set:\n\n```vim\nlet g:mucomplete#completion_delay = 1\n```\n\nThen, MUcomplete will kick in only when you pause typing. The delay can be\nadjusted, of course: see `:help mucomplete-customization`.\n\nBy default, MUcomplete attempts:\n\n1. path completion, if the text in front of the cursor looks like a path;\n2. omni-completion, if enabled in the current buffer;\n3. buffer keyword completion;\n4. dictionary completion, if a dictionary is set for the current buffer;\n5. spelling completion, if `'spell'` is on and `'spelllang'` is set;\n\nin this order (this is called a *completion chain*). At the first successful\nattempt, the pop-up menu shows the results. When the pop-up menu is visible, you\nmay cycle back and forth through the completion chain and try different\ncompletion methods by pressing `\u003cc-h\u003e` and `\u003cc-j\u003e`, respectively. In other\nwords, `\u003cc-h\u003e` and `\u003cc-j\u003e` mean: “cancel the current menu and try completing the\ntext I originally typed in a different way”. See below for an example.\n\nMUcomplete is fully customizable. See `:help mucomplete.txt` for detailed\ndocumentation.\n\n**Note:** *MUcomplete maps `\u003ctab\u003e` and `\u003cs-tab\u003e` to act as manual completion\ntriggers by default. It also changes how `\u003cc-j\u003e` and `\u003cc-h\u003e` work when the\npop-up menu is visible (and only in that situation). You may override\nMUcomplete's defaults, of course, or prevent MUcomplete to define any mappings\nat all. Read the documentation for options and for hints about making MUcomplete\nwork with plugins having conflicting mappings.*\n\n**Important:** by itself, MUcomplete does not provide any\n“intellisense”/semantic completion. If you want that, you also need to install\nsuitable omni completion plugins for the languages you are using (see the\nexamples below).\n\n\n# MUcomplete in action\n\nWith jedi-vim (Python)     |  With SQL (Vim)\n:-------------------------:|:-------------------------:\n![](https://raw.github.com/lifepillar/Resources/master/mucomplete/jedi.gif) | ![](https://raw.github.com/lifepillar/Resources/master/mucomplete/sql.gif)\n\nThe first example shows MUcomplete automatically offering suggestions from\n[jedi-vim](https://github.com/davidhalter/jedi-vim), which provides semantic\ncompletion for Python. Used settings:\n\n```vim\nset completeopt-=preview\nset completeopt+=longest,menuone,noselect\nlet g:jedi#popup_on_dot = 0  \" It may be 1 as well\nlet g:mucomplete#enable_auto_at_startup = 1\n```\n\nThe second example shows how different completion methods (omni completion,\nkeyword completion, file completion) are automatically selected in different\ncontexts. Used settings:\n\n```vim\nset completeopt+=menuone,noselect\nlet g:mucomplete#user_mappings = { 'sqla' : \"\\\u003cc-c\u003ea\" }\nlet g:mucomplete#chains = { 'sql' : ['file', 'sqla', 'keyn'] }\n```\n\nThis example also shows how you can define custom completion methods. In this\ncase, a method called `'sqla'` (the name is arbitrary) is mapped to the key\nsequence `\u003cc-c\u003ea` (see `:help sql-completion`).\n\nWith clang_complete        |  Extending completion\n:-------------------------:|:-------------------------:\n![](https://raw.github.com/lifepillar/Resources/master/mucomplete/clang.gif) | ![](https://raw.github.com/lifepillar/Resources/master/mucomplete/ctrlx-ctrln.gif)\n\nThe example above shows MUcomplete used with\n[clang-complete](https://github.com/Rip-Rip/clang_complete). You may also see\nhow it is possible to switch between different completion methods (omni\ncompletion and keyword completion in this case) when the pop-up menu is visible,\nusing `\u003cc-j\u003e` and `\u003cc-h\u003e` (pay attention when `lo` is completed). Relevant\nsettings:\n\n```vim\nset noinfercase\nset completeopt-=preview\nset completeopt+=menuone,noselect\n\" The following line assumes `brew install llvm` in macOS\nlet g:clang_library_path = '/usr/local/opt/llvm/lib/libclang.dylib'\nlet g:clang_user_options = '-std=c++14'\nlet g:clang_complete_auto = 1\nlet g:mucomplete#enable_auto_at_startup = 1\n```\n\nThe last example shows how the current completion can be extended with words\nfollowing the previous expansion in other contexts. This is useful, for\ninstance, to complete sentences or terms made of several words (e.g., to\nextend *New* to *New York* or *New Zealand*). Relevant settings:\n\n```vim\nimap \u003cexpr\u003e \u003cdown\u003e mucomplete#extend_fwd(\"\\\u003cdown\u003e\")\n```\n\nIn the example, `\u003ctab\u003e` was typed to trigger a completion, then `\u003cdown\u003e` was\npressed repeatedly to extend the completion. To my knowledge, MUcomplete is the\nonly completion plugin that streamlines this Vim feature. See `:help\nmucomplete-extend-compl` for more details.\n\n\n\n# Compatibility\n\nSee `:help mucomplete-compatibility`.\n\n\n# Troubleshooting\n\nSee `:help mucomplete-troubleshooting`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifepillar%2Fvim-mucomplete","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifepillar%2Fvim-mucomplete","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifepillar%2Fvim-mucomplete/lists"}