Setup Dev. Env./Vim

vim plugin 세팅

ubiquitous4g 2021. 4. 15. 20:28

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