vim neocomplete 安装
2015-06-22 19:31
2086 查看
功能
neocomplete 为 vim 提供智能提示功能,将 vim 改造成强大的IDE,效果如下图。安装
安装neocomplete 插件需要lua支持,并且vim版本大于Vim 7.3.885。1. 环境检测
打开vim,输入 :version,查看版本与lua模块,若版本不符合,先升级版本;若vim中不支持lua,则需要重新编译vim,可以参考 recompile vim with lua。
注意: +lua 表示支持lua, -lua表示不支持,需要重新编译。
2. 下载neocomplete
GitHub:https://github.com/Shougo/neocomplete.vimCSDN:http://download.csdn.net/detail/spch2008/8828389
将autoload 文件夹置于 ~/.vim/autoload
将plugin 文件夹置于 ~/.vim/plugin
3. 启用neocomplete
在 ~/.vimrc 中,写入:let g:neocomplete#enable_at_startup = 1
至此,neocomplete配置完成。同时,作者提供了一份neocomplete的配置,
如果没有特殊需要,可以直接使用。
" 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 let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' " 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 neocomplete#close_popup() . "\<CR>" " For no inserting <CR> key. "return pumvisible() ? neocomplete#close_popup() : "\<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>" inoremap <expr><C-y> neocomplete#close_popup() inoremap <expr><C-e> neocomplete#cancel_popup() " Close popup by <Space>. "inoremap <expr><Space> pumvisible() ? neocomplete#close_popup() : "\<Space>" " For cursor moving in insert mode(Not recommended) "inoremap <expr><Left> neocomplete#close_popup() . "\<Left>" "inoremap <expr><Right> neocomplete#close_popup() . "\<Right>" "inoremap <expr><Up> neocomplete#close_popup() . "\<Up>" "inoremap <expr><Down> neocomplete#close_popup() . "\<Down>" " Or set this. "let g:neocomplete#enable_cursor_hold_i = 1 " Or set this. "let g:neocomplete#enable_insert_char_pre = 1 " 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*::'
相关文章推荐
- 面向对象基础知识总结
- C语言实现十进制小数转二进制
- 微信支付流程
- cf 474E 线段树+dp+离散化后二分查找
- collection下list用法 很常用 (个人建议下载纯英文文档,翻译可能不如原版能让你明白)
- 使用回退按钮&&使用for循环获取RadioGroup的值
- (六十五)iOS的socket实现(GCDAsyncSocket)
- (六十五)iOS的socket实现(GCDAsyncSocket)
- 【prufer编码】BZOJ1211 [HNOI2004]树的计数
- Lua 与C/C++ 交互系列:Lua面向对象编程翻译
- 艺术的问题
- Equations(哈希)
- SpringMVC中@ResponseBody返回中文乱码问题
- 网络知识
- A. Vanya and Table
- 使用Intent和Bundle在两个Activity之间进行通信添加上一步按钮实现回退
- spring Task
- exploit - write metasploit exploit script
- Leetcode 86 Partition List
- 总结下webservice