YouCompleteMe işlev işlevlerini neden değiştirmiyor?


10

YouCompleteMe'yi C ++ anlamsal tamamlama ile kullanmak istiyorum, ancak saatlerce denedikten sonra neden beklendiği gibi çalışmadığını bulamıyorum.

Her şey çalışıyor gibi görünüyor ama işlev parametrelerini tamamlayamıyorum.

Ben Vim Archlinux (Openbox'ta Gnome Terminali) üzerinde çalıştırıyorum:

Linux Arch-PC 4.2.5-1-ARCH #1 SMP PREEMPT Tue Oct 27 08:13:28 CET 2015 x86_64 GNU/Linux

YCM'yi talimatları izleyerek yükledim ( install.pykomut dosyası ve clang desteği ile). Ayrıca AUR YCM paketi ile de denedim ve aynı sorunu aldım.

YcmDebugInfo:

Printing YouCompleteMe debug information...
-- Server has Clang support compiled in: True
-- Clang version: clang version 3.7.0 (tags/RELEASE_370/final)
-- Flags for /home/arthur/vimtest/main.cpp loaded from /home/arthur/vimtest/.ycm
_extra_conf.py:
-- ['-x', 'c++', '-Wall', '-isystem', '/home/arthur/.vim/bundle/YouCompleteMe/th
ird_party/ycmd/ycmd/../clang_includes']
-- Server running at: http://127.0.0.1:54555
-- Server process ID: 11520
-- Server logfiles:
--   /tmp/ycm_temp/server_54555_stdout.log
--   /tmp/ycm_temp/server_54555_stderr.log

Tamamlamaya çalışırken ekranda görünen şey budur: YCM sorunu

İçin YCM-Jeneratör kullandım .ycm_extra_conf.py.

Vim bilgisi eksikliğimden dolayı aptalca bir şey mi kaçırıyorum? Kötü klavye kısayolları eşleme gibi bir şey gibi görünüyor ... ama tam olarak neyin yanlış olduğunu anlayamıyorum. Bu benim .vimrc:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

    " let Vundle manage Vundle, required
    Plugin 'VundleVim/Vundle.vim'

    Plugin 'scrooloose/nerdtree'
    Plugin 'mbbill/undotree'
    Plugin 'majutsushi/tagbar'
    Plugin 'bling/vim-airline'
    Plugin 'tpope/vim-fugitive'
    Plugin 'vim-scripts/c.vim'
    Plugin 'Valloric/YouCompleteMe'
    Plugin 'sjl/badwolf'        
    Plugin 'rdnetto/YCM-Generator'

call vundle#end()            " required
filetype plugin on    " required

"Settings
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set smartindent
set autoindent
set backspace=indent,eol,start
set background=dark 
set shiftround
set ignorecase
set showmode
set ruler
set showcmd
set mouse=a
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

"Plugins Settings :
    "badwolf
        colorscheme badwolf
    "YCM :
        let g:ycm_collect_identifiers_from_tags_files = 1
    "airline :
        set laststatus=2
        let g:airline_powerline_fonts = 1




"Shortcuts
    nnoremap <F3>  :UndotreeToggle<cr> 
    nnoremap <F4>  :TagbarToggle<cr> 
    nnoremap <F2>  :NERDTreeToggle<cr> 


syn on
set nu

Yardımın için teşekkürler!

Yanıtlar:


8

Sonunda buldum! Parametreleri tamamlamak, YCM davranışının bir parçası değildir. Bu YCM sorununa bakın .

Orada oblitum kalma eski çatal bu özelliği yerine getirirdi. Beni yanlış yönlendiren buydu.

Ne yazık ki, çatalın bu kısmı bakımsız görünüyor ve birkaç denemeden sonra onu çalıştıramadım.

Bu yüzden, clang_completerhangi parametre tamamlama özelliğini aradığımı denedim .


1
O misiniz clang_completerolmak github.com/Rip-Rip/clang_complete veya başka eklenti?
muru

Evet, bu eklenti.
hippunk

YCM'yi ile derlerseniz --clang-completer, o zaman çalışır mı? Bence işte her zaman param tamamlamayı kullanıyorum. Şu anda kontrol
edilemiyor

çatalım güncellendi ve yeniden düzenlendi, yukarı akış ustasıyla eşit. Korunmayan şey, o dalın özel olarak, şu an çatalın efendisinde olanların lehine bu çözümü terk ettim.
pepper_chico
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.