选项卡上的NVim Omnisharp-Vim自动完成功能不起作用

问题描述

使用NeoVim和自动完成功能无法完成建议。

例如:

开始输入诸如public之类的单词时,我会弹出窗口。 我只是开始输入pu,然后会弹出对话框提示完整的单词,但是当我点击tab时,只是在单词未完成的情况下添加一个tab。

如果有帮助,请访问init.vim


"set this to 1 to use ultisnips for snippet handling
let s:using_snippets = 0

" vim-plug: {{{
call plug#begin('~/.vim/plugged')

Plug 'omnisharp/omnisharp-vim'

" Mappings,code-actions available flag and statusline integration
Plug 'nickspoons/vim-sharpenup'

" Linting/error highlighting
Plug 'dense-analysis/ale'

" Vim FZF integration,used as OmniSharp selector
Plug 'junegunn/fzf'
Plug 'junegunn/fzf.vim'

" Code Snippets
Plug 'SirVer/ultisnips'

" Autocompletion
Plug 'prabirshrestha/asyncomplete.vim'

" Colorscheme
Plug 'gruvBox-community/gruvBox'

" Statusline
Plug 'itchyny/lightline.vim'
Plug 'shinchu/lightline-gruvBox.vim'
Plug 'maximbaz/lightline-ale'

" File Navigation
Plug 'preservim/nerdtree'

" Snippet support
if s:using_snippets
  Plug 'sirver/ultisnips'
endif

call plug#end()
" }}}
"
" Line Numbers
:set number relativenumber

:augroup numbertoggle
:  autocmd!
:  autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
:  autocmd BufLeave,FocusLost,InsertEnter   * set norelativenumber
:augroup END

" fuzzy file search
set runtimepath^=~/.vim/bundle/ctrlp.vim

" Settings: {{{
filetype indent plugin on
if !exists('g:Syntax_on') | Syntax enable | endif
set encoding=utf-8
scriptencoding utf-8

set completeopt=menuone,noinsert,noselect,preview

set backspace=indent,eol,start
set expandtab
set shiftround
set shiftwidth=4
set softtabstop=-1
set tabstop=8
set textwidth=80
set title

set hidden
set nofixendofline
set nostartofline
set splitbelow
set splitright

set hlsearch
set incsearch
set laststatus=2
set noruler
set noshowmode
set signcolumn=yes

set mouse=a
set updatetime=1000
" }}}

" Colors: {{{
augroup ColorschemePreferences
    autocmd!
    " These preferences clear some gruvBox background colours,allowing transparency
    autocmd ColorScheme * highlight normal     ctermbg=NONE guibg=NONE
    autocmd ColorScheme * highlight SignColumn ctermbg=NONE guibg=NONE
    autocmd ColorScheme * highlight Todo       ctermbg=NONE guibg=NONE
    " Link ALE sign highlights to similar equivalents without background colours
    autocmd ColorScheme * highlight link ALEErrorSign   WarningMsg
    autocmd ColorScheme * highlight link ALEWarningSign ModeMsg
    autocmd ColorScheme * highlight link ALEInfoSign    Identifier
augroup END

" Use truecolor in the terminal,when it is supported
if has('termguicolors')
  set termguicolors
endif

set background=dark
colorscheme gruvBox
" }}}

" ALE: {{{
let g:ale_sign_error = '•'
let g:ale_sign_warning = '•'
let g:ale_sign_info = '·'
let g:ale_sign_style_error = '·'
let g:ale_sign_style_warning = '·'

let g:ale_linters = { 'cs': ['OmniSharp'] }
" }}}

" Asyncomplete: {{{
let g:asyncomplete_auto_popup = 1
let g:asyncomplete_auto_completeopt = 1
" }}}

" Sharpenup: {{{
" All sharpenup mappings will begin with `<Space>os`,e.g. `<Space>osgd` for
" :OmniSharpGotoDeFinition
" let g:sharpenup_map_prefix = '<Space>os'
let g:sharpenup_map_prefix = ',os'

let g:sharpenup_statusline_opts = { 'Text': '%s (%p/%P)' }
let g:sharpenup_statusline_opts.Highlight = 0

augroup OmniSharpIntegrations
  autocmd!
  autocmd User OmniSharpProjectUpdated,OmniSharpReady call lightline#update()
augroup END
" }}}

" Lightline: {{{
let g:lightline = {
\    'colorscheme': 'gruvBox',\    'active': {
\      'right': [
\        ['linter_checking','linter_errors','linter_warnings','linter_infos','linter_ok'],\        ['lineinfo'],['percent'],\        ['fileformat','fileencoding','filetype','sharpenup']
\      ]
\    },\    'inactive': {
\      'right': [['lineinfo'],['sharpenup']]
\    },\    'component': {
\      'sharpenup': sharpenup#statusline#Build()
\    },\    'component_expand': {
\      'linter_checking': 'lightline#ale#checking',\      'linter_infos': 'lightline#ale#infos',\      'linter_warnings': 'lightline#ale#warnings',\      'linter_errors': 'lightline#ale#errors',\      'linter_ok': 'lightline#ale#ok'
\     },\    'component_type': {
\      'linter_checking': 'right',\      'linter_infos': 'right',\      'linter_warnings': 'warning',\      'linter_errors': 'error',\      'linter_ok': 'right'
\     }
\   }
" Use unicode chars for ale indicators in the statusline
let g:lightline#ale#indicator_checking = "\uf110 "
let g:lightline#ale#indicator_infos = "\uf129 "
let g:lightline#ale#indicator_warnings = "\uf071 "
let g:lightline#ale#indicator_errors = "\uf05e "
let g:lightline#ale#indicator_ok = "\uf00c "
" }}}

" OmniSharp: {{{
let g:OmniSharp_server_stdio = 1
let g:OmniSharp_translate_cygwin_wsl = 1
let g:OmniSharp_popup_position = 'peek'
if has('nvim')
  let g:OmniSharp_popup_options = {
  \ 'winhl': 'normal:normalFloat'
  \}
else
  let g:OmniSharp_popup_options = {
  \ 'highlight': 'normal',\ 'padding': [0,0],\ 'border': [1]
  \}
endif
let g:OmniSharp_popup_mappings = {
\ 'sigNext': '<C-n>',\ 'sigPrev': '<C-p>',\ 'pageDown': ['<C-f>','<PageDown>'],\ 'pageUp': ['<C-b>','<PageUp>']
\}

if s:using_snippets
  let g:OmniSharp_want_snippet = 1
endif

let g:OmniSharp_highlight_groups = {
\ 'ExcludedCode': 'NonText'
\}
" }}}
"

imap <c-space> <Plug>(asyncomplete_force_refresh)
inoremap <expr> <Tab>   pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr>    pumvisible() ? asyncomplete#close_popup() : "\<cr>"

解决方法

我很愚蠢,我应该使用Ctl + P或Ctl + N。 菜鸟。 入场券