vim 설치
$ sudo apt-get install vim
[sudo] password :
git 설치
$ sudo apt-get install git
.vim/bundle 경로에 폴더 생성
mkdir -p .vim/bundle
mv Vundle.vim .vim/bundle
생성한 .vim/bundle 폴더 이동
$ cd ~/.vim/bundle
vundle 설치
git clone https://github.com/VundleVim/Vundle.vim.git
Vundle.vim 확인
$ ls -l
다른 경로에서 다운 후 복사
mv Vundle.vim .vim/bundle
.vimrc 파일에 plugin 설정 추가
$ vim ~/.vimrc
" VIM 플러그인 설치 목록
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim' " VIM 플러그인 관리 플러그인
Plugin 'The-NERD-Tree' " 파일 탐색기
Plugin 'terryma/vim-multiple-cursors' " 같은 문자열 선택
Plugin 'terryma/vim-smooth-scroll' " 페이지 이동 에니메이션
Plugin 'Raimondi/delimitMate' " 괄호 자동 완성
Plugin 'SirVer/ultisnips' " snippet
Plugin 'honza/vim-snippets' " snippet
Plugin 'Syntastic' " 저장시 문법 검사
Plugin 'scrooloose/nerdcommenter' " 주석 플러그인
"Plugin 'neoclide/coc.nvim', {'branch': 'release'}
call vundle#end()
" The-NERD-Tree
"autocmd BufEnter * lcd %:p:h
"autocmd VimEnter * if argc() | NERDTree | endif
"아무 파일도 열려있지 않은 상태에서 NERDTree만 열려 있다면, NERDTree도 자동으로 종료한다.
"autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"\ne 단축키 세팅
nmap <leader>ne :NERDTreeToggle<cr>
let NERDTreeShowLineNumbers=1
" vim-multiple-cursor
let g:multi_cursor_use_default_mapping=0
" Default mapping
let g:multi_cursor_next_key='<C-j>'
let g:multi_cursor_prev_key='<C-k>'
let g:multi_cursor_skip_key='<C-l>'
let g:multi_cursor_quit_key='<Esc>'
" vim-smooth-scroll
noremap <silent> <c-b> :call smooth_scroll#up(&scroll*2, 10, 5)<CR>
noremap <silent> <c-f> :call smooth_scroll#down(&scroll*2, 10, 5)<CR>
noremap <silent> <c-u> :call smooth_scroll#up(&scroll, 10, 3)<CR>
noremap <silent> <c-d> :call smooth_scroll#down(&scroll, 10, 3)<CR>
" delimitMate
let delimitMate_expand_cr=1
" UltiSnips
"let g:UltiSnipsExpandTrigger="<tab>"
"let g:UltiSnipsJumpForwardTrigger="<tab>"
"let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
"let g:UltiSnipsEditSplit="vertical"
" Syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let g:syntastic_cpp_compiler = 'g++'
let g:syntastic_cpp_compiler_options = "-std=c++11 -Wall -Wextra -Wpedantic"
let g:syntastic_c_compiler_options = "-std=c11 -Wall -Wextra -Wpedantic"
" NERD Commenter
let g:NERDSpaceDelims = 1
let g:NERDCompactSexyComs = 1
let g:NERDDefaultAlign = 'left'
let g:NERDAltDelims_java = 1
let g:NERDCustomDelimiters = { 'c': { 'left': '/*','right': '*/' } }
let g:NERDCommentEmptyLines = 1
let g:NERDTrimTrailingWhitespace = 1
map <Leader>cc <plug>NERDComToggleComment
map <Leader>c<space> <plug>NERDComComment
.vimrc 에서 플러그인 설치
$ vim ~/.vimrc
:PluginInstall
.vimrc 에서 설정 외 플러그인 제거
:PluginClean