ทำไม YouCompleteMe ไม่ทำงานของพารามิเตอร์ทั้งหมด?


10

ฉันต้องการใช้ YouCompleteMe กับ C ++ semantic semantic แต่หลังจากผ่านไปหลายชั่วโมงฉันไม่สามารถหาสาเหตุที่มันไม่ทำงานอย่างที่คาดไว้

ดูเหมือนว่าทุกอย่างจะทำงานได้ แต่ฉันไม่สามารถทำพารามิเตอร์ฟังก์ชันให้สมบูรณ์ได้

ฉันใช้ Vim บน Archlinux (Gnome Terminal บน Openbox):

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

ฉันติดตั้ง YCM ตามคำแนะนำ (ด้วยการinstall.pyสนับสนุนสคริปต์และเสียงดังกราว) ฉันยังลองกับแพ็คเกจ AUR YCM และได้รับปัญหาเดียวกัน

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

นั่นคือสิ่งที่ปรากฏบนหน้าจอเมื่อพยายามทำให้เสร็จสมบูรณ์: ปัญหา YCM

ผมใช้ YCM-Generator .ycm_extra_conf.pyสำหรับ

ฉันเพิ่งจะสูญเสียบางสิ่งที่โง่ไปเพราะขาดความรู้ Vim หรือไม่? ดูเหมือนจะเป็นสิ่งที่เหมือนกับการทำแผนที่แป้นพิมพ์ลัดที่ไม่ดี ... แต่ไม่สามารถเข้าใจได้ว่ามีอะไรผิดปกติ นี่คือ. 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

ขอบคุณสำหรับความช่วยเหลือของคุณ!

คำตอบ:


8

ในที่สุดก็พบมัน! พารามิเตอร์การทำให้สมบูรณ์ไม่ใช่ส่วนหนึ่งของพฤติกรรม YCM ดูปัญหา YCM นี้

มีทางแยกเก่าจาก oblitumที่สามารถให้ฟีเจอร์นี้ได้ นั่นคือสิ่งที่ทำให้ฉันเข้าใจผิด

แต่น่าเสียดายที่ส่วนนี้ของทางแยกดูเหมือนไม่มีใครดูแลและหลังจากพยายามสองสามครั้งฉันก็ไม่สามารถทำงานได้

ดังนั้นฉันจึงลองใช้clang_completerซึ่งมีคุณสมบัติการเติมพารามิเตอร์ที่ฉันต้องการ


1
นั่นclang_completerจะเป็นgithub.com/Rip-Rip/clang_completeหรือปลั๊กอินอื่นหรือไม่
muru

ใช่นั่นคือปลั๊กอินนี้
hippunk

ถ้าคุณคอมไพล์ YCM ด้วย--clang-completerมันทำงานได้ไหม? ฉันคิดว่าฉันใช้การทำพารามิเตอร์ให้สำเร็จตลอดเวลาที่ทำงาน ไม่สามารถตรวจสอบได้ในขณะนี้ ...
eckes

ทางแยกของฉันได้รับการปรับปรุงและสร้างใหม่มันเทียบได้กับต้นแบบต้นน้ำ สิ่งที่ไม่ได้รับการบำรุงรักษาคือสาขานั้นโดยเฉพาะฉันได้ละทิ้งโซลูชันนี้เพื่อให้เห็นว่าอะไรคือสิ่งที่อยู่ในมือของหัวหน้าตอนนี้
pepper_chico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.