Last active
January 4, 2023 07:25
-
-
Save tot0rokr/332669f2accbbf58e766aa5b71d1068c to your computer and use it in GitHub Desktop.
gVim for Windows | Configuration of _vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin('~/.vim/bundle') | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
Plugin 'VundleVim/Vundle.vim' | |
" 추가하고 싶은 플러그인을 아래에 나열하면 됩니다. | |
Plugin 'tpope/vim-sensible' " normal setup | |
Plugin 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } | |
" thema (schema) | |
"Plugin 'junegunn/seoul256.vim' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'vim-airline/vim-airline-themes' | |
Plugin 'altercation/vim-colors-solarized' | |
Plugin 'majutsushi/tagbar' " keyword tag bar | |
Plugin 'Shougo/neocomplcache.vim' " auto completion | |
Plugin 'scrooloose/nerdcommenter' " comment hotkey (macro) | |
Plugin 'wesleyche/SrcExpl' " exploring the source code definition | |
"Plugin 'xolox/vim-easytags' " ctags helper | |
Plugin 'xolox/vim-misc' | |
Plugin 'ronakg/quickr-cscope.vim' " cscope helper | |
" Plugin easymotion` | |
Plugin 'Lokaltog/vim-easymotion' | |
" Plugin argument movable | |
Plugin 'peterrincker/vim-argumentative' | |
" Plugin git | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'tpope/vim-fugitive' | |
" Plugin line orient | |
" Plugin 'tommcdo/vim-lion' | |
" Plugin MarkDown | |
Plugin 'iamcco/markdown-preview.nvim' | |
" Plugin code break game | |
Plugin 'johngrib/vim-game-code-break' | |
" Plugin REST API | |
Plugin 'diepm/vim-rest-console' | |
" Plugin diff character | |
" Plugin 'vim-scripts/diffchar.vim' | |
" Plugin ALE | |
Plugin 'dense-analysis/ale' | |
" Plugin Icon | |
Plugin 'ryanoasis/vim-devicons' | |
" Plugin git conlict. required tpope/vim-fugitive | |
Plugin 'christoomey/vim-conflicted' | |
" Plugin swap recovery | |
Plugin 'chrisbra/Recover.vim' | |
" Plugin indent guide | |
Plugin 'nathanaelkane/vim-indent-guides' | |
" Test Plugin | |
" Plugin 'file:///home/tot0ro/.vim/bundle/sampleplugin' | |
" Plugin 'file:///home/tot0ro/.vim/bundle/kat' | |
" Plugin 'tot0rokr/kat' | |
" Plugin 'file:///home/tot0ro/kat' | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
filetype plugin indent on " required | |
set expandtab | |
set tabstop=4 | |
set shiftwidth=4 | |
set softtabstop=4 | |
set autoindent | |
set textwidth=80 | |
autocmd FileType c setlocal ts=4 sts=4 sw=4 noexpandtab cc=+0 | |
autocmd FileType cpp setlocal ts=4 sts=4 sw=4 expandtab cc=+0 | |
autocmd FileType vim setlocal ts=4 sts=4 sw=4 expandtab cc=+0 | |
autocmd FileType python setlocal ts=4 sts=4 sw=4 expandtab textwidth=88 cc=+0 | |
autocmd FileType markdown setlocal ts=4 sts=4 sw=4 expandtab textwidth=100 cc=+0 | |
autocmd FileType html setlocal ts=4 sts=4 sw=4 expandtab textwidth=100 cc=+0 | |
set hlsearch | |
set cursorline | |
set cursorcolumn | |
function! ToggleCursorHighlight () | |
if &cursorline && &cursorcolumn | |
set nocursorline | |
set nocursorcolumn | |
else | |
set cursorline | |
set cursorcolumn | |
endif | |
endfunction | |
function! ToggleColorColumn () | |
if &cc != 0 | |
set cc=0 | |
else | |
set cc=+0 | |
endif | |
endfunction | |
hi CursorLine ctermbg=237 cterm=None | |
hi CursorColumn ctermbg=237 cterm=None | |
hi ColorColumn ctermbg=105 cterm=None | |
" syntax enable | |
" set wmnu | |
" set nu | |
set fencs=utf-8,euc-kr,ucs-bom,korea | |
" 스왑파일 경로 | |
let swapfile_path = $HOME . '/.vim/temp' | |
if !isdirectory(swapfile_path) | |
call mkdir(swapfile_path, "p", 0700) | |
endif | |
set dir=~/.vim/temp | |
set bdir=~/.vim/temp | |
"set background=light | |
"colorscheme solarized | |
" set font=D2Coding:h14 | |
" ///////////////////////// | |
set background=dark | |
let g:solarized_termcolors=16 | |
set t_Co=16 | |
" colorscheme solarized | |
" ///////////////////////// | |
if has("gui_running") | |
set guifont=D2Coding:h14 | |
" set background=light | |
set background=dark | |
colorscheme solarized | |
"colorscheme seoul256 | |
"set guioptions-=m " 메뉴 삭제 | |
set guioptions-=T " 툴바 삭제 | |
set guioptions-=r " 스크롤 삭제 | |
endif | |
set laststatus=2 " vim-airline을 위해 상태바 2줄 | |
let g:airline#extensions#tabline#enabled = 1 " turn on buffer list | |
let g:airline#extensions#tabline#left_sep = ' ' " ~ | |
let g:airline#extensions#tabline#left_alt_sep = '|' " tabline | |
let g:airline#extensions#tabline#formatter = 'unique_tail' " buffer format | |
" 자동완성 기능 | |
let g:neocomplcache_enable_at_startup = 1 | |
let g:neocomplcache_omni_patterns = {} | |
" | |
" 주석 처리시에 주석과 코드 사이에 한 칸 공백 넣기 | |
let NERDSpaceDelims=1 | |
" gitgutter | |
highlight GitGutterAdd guifg=#009900 ctermfg=10 | |
highlight GitGutterChange guifg=#bbbb00 ctermfg=11 | |
highlight GitGutterDelete guifg=#ff2222 ctermfg=9 | |
" diff | |
highlight DiffAdd ctermbg=22 | |
highlight DiffChange ctermbg=54 | |
highlight DiffDelete ctermbg=88 | |
highlight DiffText ctermbg=237 | |
" ALE | |
" let g:ale_completion_enabled = 1 | |
" set omnifunc=ale#completion#OmniFunc | |
let g:ale_lint_on_text_changed = 'never' | |
let g:ale_lint_on_enter = 0 | |
" IndentGuide | |
let g:indent_guides_enable_on_vim_startup = 1 | |
let g:indent_guides_auto_colors = 0 | |
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermbg=235 | |
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=235 | |
let g:indent_guides_guide_size = 1 | |
let g:indent_guides_start_level = 2 | |
let g:indent_guides_default_mapping = 0 | |
set tag=./tags;/ | |
" easy-tag | |
" let g:easytags_async = 1 " tags async | |
" let g:easytags_auto_highlight = 0 " slowly | |
" let g:easytags_include_members = 1 " tracking member variable | |
" let g:easytags_dynamic_files = 1 " current project tags file load, non-exist global tags load | |
" cscope | |
function! LoadCscope() | |
let db = findfile("cscope.out", ".;") | |
if (!empty(db)) | |
let path = strpart(db, 0, match(db, "/cscope.out$")) | |
set nocscopeverbose " suppress 'duplicate connection' error | |
exe "cs add " . db . " " . path | |
set cscopeverbose " else add the database pointed to by environment variable | |
elseif $CSCOPE_DB != "" | |
cs add $CSCOPE_DB | |
endif | |
endfunction | |
au BufEnter /* call LoadCscope() | |
" SrcExpl | |
let g:SrcExpl_winHeight = 8 "SrcExpl window height | |
let g:SrcExpl_refreshTime = 100 "refreshing time = 100ms | |
let g:SrcExpl_jumpKey = "<ENTER>" "jump to definition | |
let g:SrcExpl_gobackKey = "<SPACE>" "come back | |
let g:SrcExpl_isUpdateTags = 0 "tag file update = off | |
" fzf(command-line fuzzy finder | |
" If installed using git | |
set rtp+=~/.fzf | |
" Key Mapping | |
nmap <F1> :SrcExplToggle<cr>|" 소스익스플로러 토클버튼 | |
nmap <F2> :NERDTreeToggle<cr>|" 너드트리 토글버튼 | |
nmap <F3> :TagbarToggle<cr>|" 탭바 토글버튼 | |
nmap <F4> <C-w>-|" 가로분할 커서 있는 화면 창크기 축소 | |
nmap <F5> <C-w>+|" 가로부할 커서 있는 화면 창크기 확대 | |
nmap <F6> :bp<cr>|" 이전 버퍼 파일로 이동 | |
nmap <F7> :bd<cr>|" 현재 파일 버퍼에서 제거 | |
nmap <F8> :bn<cr>|" 다음 버퍼 파일로 이동 | |
nnoremap U <C-r>|" 되돌리기 | |
nnoremap <C-r> <ESC>|" 컨트롤 R 삭제 | |
nmap <C-h> <C-w>h | |
nmap <C-j> <C-w>j | |
nmap <C-k> <C-w>k | |
nmap <C-l> <C-w>l | |
" Argumentative | |
nmap [; <Plug>Argumentative_Prev | |
nmap ]; <Plug>Argumentative_Next | |
xmap [; <Plug>Argumentative_XPrev | |
xmap ]; <Plug>Argumentative_XNext | |
nmap <; <Plug>Argumentative_MoveLeft | |
nmap >; <Plug>Argumentative_MoveRight | |
xmap i; <Plug>Argumentative_InnerTextObject | |
xmap a; <Plug>Argumentative_OuterTextObject | |
omap i; <Plug>Argumentative_OpPendingInnerTextObject | |
omap a; <Plug>Argumentative_OpPendingOuterTextObject | |
nmap <leader><leader>+ :call ToggleCursorHighlight()<cr> | |
nmap <leader><leader>c :call ToggleColorColumn()<cr> | |
" https://bakyeono.net/post/2015-08-13-vim-tab-madness-translate.html : vim의 tab, buffer 사용법 | |
" linux 커널 ctags, cscope 파일 만드는 법 : $cd linux , $make ARCH=arm64 tags, cscope | |
" https://nolboo.kim/blog/2016/09/20/vim-plugin-manager-vundle/ : vim 플러그인 관리자 Vundle | |
" http://jen6.tistory.com/119 : ctags cscope tapbar 기본 | |
" http://vlee.kr/1142 : vim 플러그인 기본 | |
" | |
" MarkDown Preview | |
nmap <leader><leader>m <Plug>MarkdownPreviewToggle | |
imap <S-CR> <ESC>o | |
nmap <leader><leader>/ :noh<cr> | |
" 버전별 save 만들기 | |
function! SaveBackup () | |
" let b:backup_count = exists('b:backup_count') ? b:backup_count+1 : 1 | |
" return writefile(getline(1,'$'), bufname('%') . '_' . b:backup_count) | |
return writefile(getline(1,'$'), '.' . bufname('%') . '.bak_' . input("version name: ")) | |
endfunction | |
nmap <silent> <C-B> :call SaveBackup()<CR> | |
" swap 파일 제거 | |
function! DeleteSwap() | |
exec "! rm " . &dir . "/" . @% . ".swp" | |
endfunction | |
" skel 파일 자동 생성기 | |
autocmd BufNewFile ~/blog/_posts/**.md 0read ~/blog/_draft/skel.md | |
let c_skel = findfile(".skel/skel.c", ".;") | |
if (!empty(c_skel)) | |
autocmd BufNewFile *.c 0read ~/.skel/skel.c | /\/\/TODO/ | |
endif | |
" 라인 끝 공백 highlight | |
highlight ExtraWhitespace ctermbg=88 | |
match ExtraWhitespace /\s\+$/ | |
let vimrc_adv = findfile("~/.vimrc_adv") | |
if (!empty(vimrc_adv)) | |
source ~/.vimrc_adv | |
endif | |
" COMMIT_EDITMSG | |
autocmd BufEnter COMMIT_EDITMSG set cc=50,72 | |
" Vim undo history | |
let undofile_path = $HOME . "/.vim/undo" | |
if !isdirectory(undofile_path) | |
call mkdir(undofile_path, "p", 0700) | |
endif | |
set undodir=~/.vim/undo | |
set undofile |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment