2015-01-20 3 views
1

Я установил Omnisharp, и я могу получить автозаполнение с помощью < Ctrl + X> + < Ctrl + O>, но это, очевидно, не идеально, поскольку вам нужно продолжать ударять по этой странной комбинации клавиш. Я также установил неокомплексный пакет, чтобы попытаться получить автозаполнение во время ввода, но у меня нет тех же автозаполнений, которые поставляются с Omnisharp.Omnisharp vim with neocomplete не работает

Я пытался использовал это neocomplete настройки, поставляемую со страницы GitHub Omnisharp в моем vimrc, который дает мне ошибку, когда используется самостоятельно: https://github.com/OmniSharp/omnisharp-vim/wiki/Example-NeoComplete-Settings

И в пару с примером настройкой на главной странице здесь: https://github.com/OmniSharp/omnisharp-vim

Кажется работать без ошибок, но опять-таки не дает мне автозаполнения, которые согласуются с тем, что я получаю от удара < Ctrl + X> + < Ctrl + O>

Это то, что мой .vimrc у.е. rrently выглядит следующим образом:

execute pathogen#infect() 

" OmniSharp won't work without this setting 
filetype plugin on 

"This is the default value, setting it isn't actually necessary 
let g:OmniSharp_host = "http://localhost:2000" 

"Set the type lookup function to use the preview window instead of the status line 
"let g:OmniSharp_typeLookupInPreview = 1 

"Timeout in seconds to wait for a response from the server 
let g:OmniSharp_timeout = 1 

"Showmatch significantly slows down omnicomplete 
"when the first match contains parentheses. 
set noshowmatch 

"Super tab settings - uncomment the next 4 lines 
"let g:SuperTabDefaultCompletionType = 'context' 
"let g:SuperTabContextDefaultCompletionType = "<c-x><c-o>" 
"let g:SuperTabDefaultCompletionTypeDiscovery = ["&omnifunc:<c-x><c-o>","&completefunc:<c-x><c-n>"] 
"let g:SuperTabClosePreviewOnPopupClose = 1 

"don't autoselect first item in omnicomplete, show if only one item (for preview) 
"remove preview if you don't want to see any documentation whatsoever. 
set completeopt=longest,menuone,preview 
" Fetch full documentation during omnicomplete requests. 
" There is a performance penalty with this (especially on Mono) 
" By default, only Type/Method signatures are fetched. Full documentation can still be fetched when 
" you need it with the :OmniSharpDocumentation command. 
" let g:omnicomplete_fetch_documentation=1 

"Move the preview window (code documentation) to the bottom of the screen, so it doesn't move the code! 
"You might also want to look at the echodoc plugin 
set splitbelow 

" Get Code Issues and syntax errors 
let g:syntastic_cs_checkers = ['syntax', 'semantic', 'issues'] 

augroup omnisharp_commands 
    autocmd! 

    "Set autocomplete function to OmniSharp (if not using YouCompleteMe completion plugin) 
    autocmd FileType cs setlocal omnifunc=OmniSharp#Complete 

    " Synchronous build (blocks Vim) 
    "autocmd FileType cs nnoremap <F5> :wa!<cr>:OmniSharpBuild<cr> 
    " Builds can also run asynchronously with vim-dispatch installed 
    autocmd FileType cs nnoremap <leader>b :wa!<cr>:OmniSharpBuildAsync<cr> 
    " automatic syntax check on events (TextChanged requires Vim 7.4) 
    autocmd BufEnter,TextChanged,InsertLeave *.cs SyntasticCheck 

    " Automatically add new cs files to the nearest project on save 
    autocmd BufWritePost *.cs call OmniSharp#AddToProject() 

    "show type information automatically when the cursor stops moving 
    autocmd CursorHold *.cs call OmniSharp#TypeLookupWithoutDocumentation() 

    "The following commands are contextual, based on the current cursor position. 

    autocmd FileType cs nnoremap gd :OmniSharpGotoDefinition<cr> 
    autocmd FileType cs nnoremap <leader>fi :OmniSharpFindImplementations<cr> 
    autocmd FileType cs nnoremap <leader>ft :OmniSharpFindType<cr> 
    autocmd FileType cs nnoremap <leader>fs :OmniSharpFindSymbol<cr> 
    autocmd FileType cs nnoremap <leader>fu :OmniSharpFindUsages<cr> 
    autocmd FileType cs nnoremap <leader>fm :OmniSharpFindMembers<cr> "finds members in the current buffer 
    " cursor can be anywhere on the line containing an issue 
    autocmd FileType cs nnoremap <leader>x :OmniSharpFixIssue<cr> 
    autocmd FileType cs nnoremap <leader>fx :OmniSharpFixUsings<cr> 
    autocmd FileType cs nnoremap <leader>tt :OmniSharpTypeLookup<cr> 
    autocmd FileType cs nnoremap <leader>dc :OmniSharpDocumentation<cr> 
    autocmd FileType cs nnoremap <C-K> :OmniSharpNavigateUp<cr> "navigate up by method/property/field 
    autocmd FileType cs nnoremap <C-J> :OmniSharpNavigateDown<cr> "navigate down by method/property/field 

augroup END 


" this setting controls how long to wait (in ms) before fetching type/symbol information. 
set updatetime=500 
" Remove 'Press Enter to continue' message when type information is longer than one line. 
set cmdheight=2 

" Contextual code actions (requires CtrlP) 
nnoremap <leader><space> :OmniSharpGetCodeActions<cr> 
" Run code actions with text selected in visual mode to extract method 
vnoremap <leader><space> :call OmniSharp#GetCodeActions('visual')<cr> 

" rename with dialog 
nnoremap <leader>nm :OmniSharpRename<cr> 
nnoremap <F2> :OmniSharpRename<cr>  
" rename without dialog - with cursor on the symbol to rename... ':Rename newname' 
command! -nargs=1 Rename :call OmniSharp#RenameTo("<args>") 

" Force OmniSharp to reload the solution. Useful when switching branches etc. 
nnoremap <leader>rl :OmniSharpReloadSolution<cr> 
nnoremap <leader>cf :OmniSharpCodeFormat<cr> 
" Load the current .cs file to the nearest project 
nnoremap <leader>tp :OmniSharpAddToProject<cr> 

" (Experimental - uses vim-dispatch or vimproc plugin) - Start the omnisharp server for the current solution 
nnoremap <leader>ss :OmniSharpStartServer<cr> 
nnoremap <leader>sp :OmniSharpStopServer<cr> 

" Add syntax highlighting for types and interfaces 
nnoremap <leader>th :OmniSharpHighlightTypes<cr> 
"Don't ask to save when changing buffers (i.e. when jumping to a type definition) 
set hidden 

autocmd FileType cs setlocal omnifunc=OmniSharp#Complete 
"Note: This option must set it in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! 
" Disable AutoComplPop. 
let g:acp_enableAtStartup = 0 
" Use neocomplete. 
let g:neocomplete#enable_at_startup = 1 
" Don't Use smartcase. 
let g:neocomplete#enable_smart_case = 0 
let g:neocomplete#enable_auto_close_preview = 0 
" Define dictionary. 
let g:neocomplete#sources#dictionary#dictionaries = { 
    \ 'default' : '', 
    \ 'vimshell' : $HOME.'/.vimshell_hist' 
     \ } 

" 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>" 
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<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() 

let g:neocomplete#enable_auto_select = 0 
let g:neocomplete#disable_auto_complete = 0 

" Enable heavy omni completion. 

call neocomplete#custom#source('_', 'sorters', []) 

if !exists('g:neocomplete#sources') 
     let g:neocomplete#sources = {} 
endif 

if !exists('g:neocomplete#sources#omni#input_patterns') 
    let g:neocomplete#sources#omni#input_patterns = {} 
endif 

let g:neocomplete#sources#omni#input_patterns.cs = '.*[^=\);]' 
let g:neocomplete#sources.cs = ['omni'] 
let g:neocomplete#enable_refresh_always = 0 
let g:echodoc_enable_at_startup = 1 
let g:neocomplete#enable_insert_char_pre = 1 

ответ

0

По какой-то причине, последняя строка let g:neocomplete#enable_insert_char_pre = 1 вызвала ошибку и комментируя это позволило автозаполнения работать, как ожидалось.