neocomplete.vim

Next generation completion framework after neocomplcache

Github stars Tracking Chart

neocomplete

Note: Active development on neocomplete.vim has stopped. The only future
changes will be bug fixes.

Please see Deoplete.nvim.

neocomplete is the abbreviation of "neo-completion with cache". It provides
keyword completion system by maintaining a cache of keywords in the current
buffer. neocomplete can be customized easily and has many more features than
Vim's built-in completion.

Note: If you use neovim or Vim8+, you should use deoplete instead.
https://github.com/Shougo/deoplete.nvim

Installation

Note: neocomplete requires Vim 7.3.885+ with Lua enabled.
See requirements if you aren't sure whether you have this.

  1. Extract the files and put them in your Vim directory
    (usually ~/.vim/ or Program Files/Vim/vimfiles on Windows).
  2. Execute the :NeoCompleteEnable command or set let g:neocomplete#enable_at_startup = 1 in your .vimrc (not in .gvimrc
    or _gvimrc!)

Requirements

neocomplete requires Vim 7.3.885+ compiled with
if_lua. If :echo has("lua") returns 1, then you're done; otherwise, see below.

Vim builds for Windows

github release

Note: the Vim build may not include the Lua DLL. In that case,
download Lua and put the lua52.dll
file in the same directory as gvim.exe.

Vim for Mac OS X:

MacVim with if\_lua

Or, you can install MacVim with homebrew: (Make sure you have Xcode fully
installed)

brew cask install macvim --with-cscope --with-lua

To install Vim (as opposed to MacVim) with homebrew:

brew install vim --with-luajit

Vim for Linux:

Debian (or Ubuntu)

Make sure you have any of these packages:

  • vim-nox
  • vim-gtk3

Which package depends on your graphical environment (except vim-nox which is
for vim with no GUI).

Fedora

The latest version of vim includes lua.
As of 2014-04-16 you need to download the
rpm
.

Misc

Be aware, your distribution's package manager may have a fairly outdated
Vim build (for example, Ubuntu 12.04 ships Vim 7.3.429).
However, building Vim on Linux is not
difficult. Remember to specify --with-lua (or --with-features=huge).

Vim for Cygwin:

In a cygwin environment, the Lua interface is supported by default.

If you want to make manually, you also need gcc and make.

When everything is prepared, execute these commands.

cd /usr/src
tar jxf vim-7.4.tar.bz2
tar xvfz lua-5.1.5.tar.gz
cd vim74/
./configure --enable-luainterp --enable-gui=no \
--without-x --enable-multibyte --prefix=/usr
make && make install

To check if everything was successfull enter the following vim --version. You
should see +lua in the list of features.

Snippets

The Snippets feature of neocomplete was split into a
separate plugin.

A migration guide for existing users of neocomplcache is available:
Migration guide

Screenshots

Original filename completion

Original filename completion.
Include filename completion.

Omni completion

Omni completion.

Completion with vimshell

Completion with vimshell(http://github.com/Shougo/vimshell).

Vim completion (provided by neco-vim)

Vim completion.
Vim completion with animation.

Configuration Examples

"Note: This option must be set in .vimrc(_vimrc).  NOT IN .gvimrc(_gvimrc)!
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplete#sources#syntax#min_keyword_length = 3

" Define dictionary.
let g:neocomplete#sources#dictionary#dictionaries = {
    \ 'default' : '',
    \ 'vimshell' : $HOME.'/.vimshell_hist',
    \ 'scheme' : $HOME.'/.gosh_completions'
        \ }

" Define keyword.
if !exists('g:neocomplete#keyword_patterns')
    let g:neocomplete#keyword_patterns = {}
endif
let g:neocomplete#keyword_patterns['default'] = '\h\w*'

" Plugin key-mappings.
inoremap <expr><C-g>     neocomplete#undo_completion()
inoremap <expr><C-l>     neocomplete#complete_common_string()

" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()
  return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"
  " For no inserting <CR> key.
  "return pumvisible() ? "\<C-y>" : "\<CR>"
endfunction
" <TAB>: completion.
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
" Close popup by <Space>.
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>"

" AutoComplPop like behavior.
"let g:neocomplete#enable_auto_select = 1

" Shell like behavior(not recommended).
"set completeopt+=longest
"let g:neocomplete#enable_auto_select = 1
"let g:neocomplete#disable_auto_complete = 1
"inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"

" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags

" Enable heavy omni completion.
if !exists('g:neocomplete#sources#omni#input_patterns')
  let g:neocomplete#sources#omni#input_patterns = {}
endif
"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\, \h\w*::'
"let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\, ->\)'
"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\, ->\)\, \h\w*::'

" For perlomni.vim setting.
" https://github.com/c9s/perlomni.vim
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\, \h\w*::'

Main metrics

Overview
Name With Ownervoronianski/jquery.avgrund.js
Primary LanguageJavaScript
Program languageVim script (Language Count: 3)
Platform
License:
所有者活动
Created At2012-08-26 02:36:52
Pushed At2020-09-19 04:36:00
Last Commit At2020-06-15 23:35:27
Release Count20
Last Release Name1.3.3 (Posted on )
First Release Name1.0.3 (Posted on )
用户参与
Stargazers Count1.7k
Watchers Count101
Fork Count345
Commits Count121
Has Issues Enabled
Issues Count56
Issue Open Count14
Pull Requests Count8
Pull Requests Open Count4
Pull Requests Close Count12
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private