Skip to content

Instantly share code, notes, and snippets.

@tot0rokr
Last active January 4, 2023 07:25
Show Gist options
  • Save tot0rokr/332669f2accbbf58e766aa5b71d1068c to your computer and use it in GitHub Desktop.
Save tot0rokr/332669f2accbbf58e766aa5b71d1068c to your computer and use it in GitHub Desktop.
gVim for Windows | Configuration of _vimrc
" 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