[메모] ubuntu 13.04 설정 YouComplete Me

레 퍼 런 스 http://www.cnblogs.com/csuftzzk/p/3435710.html  그러나 이 글 에 따 르 면 컴 파일 에 오류 가 발생 할 수 있 기 때문에 일부 경 로 는 수정 되 었 습 니 다. vimrc 설정 은 약간 다 릅 니 다.
syntastic 플러그 인 은 효과 가 좋 지 않 습 니 다. 자주 오보 되 고 카드 도 있 습 니 다.
준비 하 다
1. cmake, python - dev 설치
sudo apt-get install cmake python-dev

2. 최신 VIM 설치
sudo add-apt-repository ppa:nmi/vim-snapshots
sudo apt-get update
sudo apt-get install vim

3. Vundle, Vundle 을 다운로드 하면 vim 플러그 인 을 관리 할 수 있 고 편리 하 며 참고 할 수 있 습 니 다.  http://blog.csdn.net/codebistu/article/details/8257138
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

4. vundle 를 다운로드 한 후 설정 ~ /. vimrc 파일 은 다음 과 같 습 니 다. 그리고 vim 창 을 열 고 명령 을 실행 합 니 다. Bundle Install, vundle 는 자동 으로 네트워크 에 가서 관련 플러그 인 을 다운로드 하고 설치 합 니 다.플러그 인 을 삭제 하 는 것 도 간단 합 니 다. 먼저 ~ /. vimrc 에서 이 플러그 인 항목 을 제거 한 다음 vim 에 들 어가 명령 을 수행 합 니 다: BundleClean.
set nocompatible              " be iMproved
Bundle 'scrooloose/syntastic'

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'

" My bundles here:
"
" original repos on GitHub
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non-GitHub repos
Bundle 'git://git.wincent.com/command-t.git'
" Git repos on your local machine (i.e. when working on your own plugin)
Bundle 'file:///Users/gmarik/path/to/plugin'
" ...
Bundle 'Valloric/YouCompleteMe'
filetype plugin indent on     " required!

5. LLVM + Clang 의 소스 코드 컴 파일
mkdir ~/llvmsrc
cd ~/llvmsrc
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

cd ~/llvmsrc/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang

cd ~/llvmsrc/llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite

cd ~/llvmsrc
./llvm/configure --enable-optimized
make

2. 설정, 컴 파일 YouComplete Me 1. 앞에서 vundle 를 사용 하여 YouComplete Me 의 원본 코드 를 다운로드 하 였 습 니 다.2. 컴 파일
mkdir ~/ycm_build
cd ~/ycm_build
cmake -G "Unix Makefiles"  ~/.vim/bundle/YouCompleteMe/cpp -DEXTERNAL_LIBCLANG_PATH=~/llvmsrc/llvm/Release+Asserts/lib/libclang.so
make ycm_core
make ycm_support_libs

3. 설정 ~ /. vim / bundle / YouComplete Me / cpp / ycm /. ycmextra_conf.py。- isystem 플래그 를 사용 하여 시스템 의 헤더 파일 을 추가 하여 분석 하고 - I 플래그 는 3 분 의 헤더 파일 을 추가 하여 분석 합 니 다.flags 마지막 에 다음 과 같이 추가:
'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/',
'-isystem',
'/usr/include/i386-linux-gnu/c++'

4. 또한 보완 효율 을 높이 기 위해 서 는 Ctags 로 생 성 된 tags 파일 을 유지 하고 ~ /. vimrc 에 let g: ycm 를 추가 할 수 있 습 니 다.collect_identifiers_from_tag_files = 1. 그 중에서 vim 에서 사용: echo tagfiles () 는 현재 사용 하고 있 는 tags 파일 을 볼 수 있 습 니 다.
5. 나의. vimrc 설정 내용:
"        vi     ,         bug   
set nocompatible

" bundle setting 
au GUIEnter * call libcallnr("vimtweak.dll", "SetAlpha", 234)

filetype off                  " required!

set completeopt-=preview

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required! 
Bundle 'gmarik/vundle'

" My bundles here:
" original repos on GitHub
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non-GitHub repos
Bundle 'git://git.wincent.com/command-t.git'
" Git repos on your local machine (i.e. when working on your own plugin)
Bundle 'file:///Users/gmarik/path/to/plugin'
Bundle 'Valloric/YouCompleteMe'
Bundle 'scrooloose/syntastic'
Bundle 'c.vim'
Bundle 'a.vim'

let g:ycm_collect_identifiers_from_tag_files = 1
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'


set backspace=indent,eol,start

set tabstop=4
set shiftwidth=4

set expandtab

set cindent

"       ,              
set ruler

set showcmd
set hlsearch
set incsearch
set cino=g0:0          " let class's public: don't indent

" F12 run python
map <F12> :!/usr/bin/python %

" map <c-w><c-t> :Tlist<cr>
" map <c-w><c-m> :WMToggle<cr>
" map <c-w><c-f> :FirstExplorerWindow<cr>
" map <c-w><c-b> :BottomExplorerWindow<cr>
":set cscopequickfix=s-,c-,d-,i-,t-,e-
":cs add /home/broom/yeast/trunk/cscope.out /home/broom/yeast/trunk/
" let g:winManagerWindowLayout='FileExplorer|TagList'
":let Tlist_Use_Right_Window=1
":nmap wm :WMToggle<cr>
nnoremap <silent> <F3> :Grep<CR>

"        
syntax on

filetype plugin indent on
set viminfo='20,\"50

"        
set history=1000

" Only do this part when compiled with support for autocommands
if has("autocmd")
    " In text files, always limit the width of text to 78 characters
    autocmd BufRead *.txt set tw=78
    " When editing a file, always jump to the last cursor position
    autocmd BufReadPost *
        \ if line("'\"") > 0 && line ("'\"") <= line("$") |
        \   exe "normal g'\"" |
        \ endif
endif
" set bg=dark

"     
set nu
imap <c-w> <Esc>

autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete


filetype plugin on


"------------------------------------------------------------------------------
function! SET_PYTHON_IDENT()
	set shiftwidth=2
	set softtabstop=2
	set tabstop=2
	set backspace=2
	set smarttab
endfunction

au FileType python,ruby :call SET_PYTHON_IDENT()

"c-support year date time
let g:C_FormatDate            = '%Y-%m-%d'
let g:C_FormatTime            = '%H:%M:%S'
let g:C_FormatYear            = '%Y'

" Encoding related
set encoding=UTF-8
" set langmenu=zh_CN.UTF-8
" language message zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencoding=utf-8

set t_Co=256
colorscheme desertEx
"colorscheme evening
"colorscheme peaksea
"colorscheme blackboard       " Ruby      
"colorscheme molokai         " Sublime Text    
"colorscheme ubloh           "            

au GUIEnter * call libcallnr("vimtweak.dll", "SetAlpha", 234)

좋은 웹페이지 즐겨찾기