참고
- MS윈도우용 gvim에서 변경된 컬러스킴 유지하는법?
- VI 에디터 유니코드(UTF-8)로 인코딩 전환
- vi 의 encoding, fileencoding, fileencodings 옵션에 대해...
- VI Using Tab page
vi .vimrc
windows /Program Files/vim/_vimrc
set nu!
set ts=4
set tenc=korea
set enc=utf-8 # window 에서 메뉴 한글이 깨질 경우 제거
set fileencoding=utf-8
set fileencodings=utf-8,euc-kr
set guifont=나눔고딕코딩:h10:cHANGEUL
colorscheme desert
편집중일 경우
:set enc=utf-8
:set enc=utf8
set tenc=korea # termencodin
set enc=utf8 # encoding
2022.03.31
github.com/johngrib - vimrc.md
" https://github.com/johngrib/simple_vim_guide/blob/master/md/vimrc.md
set title " 타이틀바 표시
set titlelen=85 " 윈도우 타이틀 길이, with title
set ar " autoread, 외부파일 변경시 자동 로드
set ai " autoindent, 자동 들여쓰기
set cin " cindent C 프로그래밍용 자동 들여쓰기
set si " smartindent, 똑똑한 들여쓰기
set nocompatible " 오리지날 VI와 호환하지 않음
set vb " visualbell, 키를 잘못눌렀을 때 화면 프레시, default:false
set hi=1000 " history 편집기록수 .viminfo 기록
set ruler " 화면 우측 하단에 현재 커서의 위치 줄,칸 표시
set sc " showcmd
set wc=<Tab> " wildchar, command-line 자동완성 기능 키, default=Tab
set wcm=<C-z> " wildcharm, 매크로 내 wildchar
set wig=*.o,*.bak " wildignore, 자동완성 무시패턴, 콤마구분, nodefault
set wic " wildignorecase, 자동완성 대소문자 무시, default:off
set wmnu " wildmenu, command-line 자동완성 기능확장, default:off
set sm " showmatch 괄호 하이라이트
set stal=1 " showtabline, 탭라인노출 0,1,2
set ts=2 " tabstop, 2탭, Tab을 Space로 변경하는 :retab 이 이 값을 참조.
set sw=2 " shiftwidth, cindent, ≪, ≫에서 사용하는 인덴트 길이를 지정
set et " expandtab, Space Tap, with tabstop
set nu rnu " number relativenumber 행번호 표시
set cul " cursorline, 현재커서 라인 하이라이트
set list " listchars 설정 문자로 공백표시
set lcs=tab:»\ ,trail:· " listchars, 공백문자롤 표시방식 설정
set hls " hlsearch 검색 강조
set ic " ignorecase 검색 대소문자 무시
set scs " smartcase, 검색에 대문자가 있으면 ic 무시
set is " incsearch, '/'로 점진적 검색
set lbr " linebreak
set nowrapscan " 검색할 때 문서의 끝에서 처음으로 안돌아감
set bs=eol,start,indent " backspace, 줄끝,시작,들여쓰기 에서 백스페이스 시 이전줄 이동
set ww+=h,l " whichwrap, 라인 처음/끝에서 라인이동
set paste! " 붙여넣기시 계단현상 제거
set ls=2 " laststatus, 마지막 위도우네 statusline 표시여부, 0,1,2
set stl=%h%F%m%r%=[%l:%c(%p%%)] " statusline, 상태표시줄 포맷팅
set lz " lazyredraw, 매크로 작업 표시 여부
set bk " backup 백업
set bdir=~/.vim/backup " backupdir, 백업경로 콤마구분
set udir=. " undodir, undo 파일경로, default:.
set udf " undofile, undo history를 기록한다. default:false
set ul=1000 " undolevels, undo history size,. default:100, unix/window:1000
set bsk=*.bak,.git,~/.viminfo " backupskip, 백업제외 경로패턴 콤마로 구분하여
filetype on " 파일종류에 따른 구문 강조
if !exists("g:syntax_on")
syntax enable
filetype indent on " 파일 종류 구문강조
elseif has("syntax")
syntax on " 구문강조
filetype indent on " 파일 종류 구문강조
endif
" not available in this version 오류일 경우 vi --version 으로 small 버전인지 확인한다.
" small 버전이라면 전체 버전을 설치하자
" sudo apt-get install vim-gui-common vim-runtime
colo desert " sudo wget https://raw.github.com/tomasr/molokai/master/colors/molokai.vim /usr/share/vim/vim82/
" ========== locale language
" https://stackoverflow.com/a/8597411
set fencs=ucs-bom,utf-8e,cp949,uc-kr.latin1 " guess list on file looad
set fenc=utf-8 " fileencoing, file write
set tenc=utf-8 " terminal enc
set enc=utf-8 " encoding, file load
set gfn=Meslo\ LG\ M\ DZ:h11 " guifont, ui font:Meslo LG M DZ, size:h11
if v:lang =~ "euckr$" || v:lang =~ "eucKR$"
set enc=cp949
set fenc=cp949
set fencs=cp949,utf-8
set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
elseif v:lang =~ "^ja_JP"
set enc=euc-jp
set fenc=euc-jp
set fencs=euc-jp,utf-8
set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
elseif v:lang =~ "^zh_TW"
set enc=big5
set fenc=big5
set fencs=big5,utf-8
set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
elseif v:lang =~ "^zh_CN"
set enc=gb2312
set fenc=gb2312
set fencs=gb2312,utf-8
set guifontset=*-r-*
elseif v:lang =~ "utf-8$" || v:lang =~ "UTF-8$"
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,cp949
elseif has("unix")
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,cp949
elseif has ("win32") || has("msys") || has("cygwin")
set enc=cp949
set fenc=cp949
set fencs=utf-8,cp949
else
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,cp949
endif
" ============= Gcc 컴파일 & 실행 설정 ============
noremap :w! " 현재 작업 저장
noremap :!g++ -W -Wall -O2 -g % -o %< " 컴파일
noremap :!%< " 실행
noremap <C-n><C-u> :call ToggleNumber()<CR> " Ctrl+n+u 토글
noremap <A-z> :call ToggleWrap()<CR> " Alt-z 토글
noremap <silent> <A-up> :call <SID>swap_up()<CR>
noremap <silent> <A-down> :call <SID>swap_down()<CR>
function ToggleNumber()
if(&relativenumber == 1)
set nornu
set nu
else
set rnu
endif
endfunction
set wrap " 소프트웨어 줄바꿈
set sbr=+++\ " showbreak, 한라인일 겨우 표시되는 내용, with wrap, 아래 2개와는 상호 배치되는 설정
function ToggleWrap()
if(&wrap == 1)
set nowrap
set ss=2 " sidescroll, 좌우 스크롤 이동 컬럼수, default:0
set siso=10 " sidescrolloff, 좌우 스크롤 offset 설정, default:0
set list listchars+=extends:>,precedes:< " 왼쪽 스크롤이 필요한 경우 <, 오른쪽 스크롤이 필요한 경우 > 를 보여준다.
else
set wrap " 소프트웨어 줄바꿈
set sbr=+++\ " showbreak, 한라인일 겨우 표시되는 내용, with wrap, 아래 2개와는 상호 배치되는 설정
endif
endfunction
" https://stackoverflow.com/a/741819
function s:swap_lines(n1, n2)
let line1 = getline(a:n1)
let line2 = getline(a:n2)
call setline(a:n1, line2)
call setline(a:n2, line1)
endfunction
function s:swap_up()
let n = line('.')
if n == 1
return
endif
call s:swap_lines(n, n - 1)
exec n - 1
endfunction
function s:swap_down()
let n = line('.')
if n == line('$')
return
endif
call s:swap_lines(n, n + 1)
exec n + 1
endfunction
" ===== 확장자가 launch인 파일을 xml과 같이 취급함 (하일라이트)
autocmd BufEnter *.launch set filetype=xml
" ===== 확장자가 xacro인 파일을 xml과 같이 취급함 (하일라이트)
autocmd BufEnter *.xacro set filetype=xml
" ===== 저장 후 다시 파일 편집 들어갈때, 최종 편집 지점에 커서를 위치하도록 설정.
au BufWinLeave * mkview
au BufWinEnter * silent loadview
반응형
'ide > vim' 카테고리의 다른 글
Ubuntu Vim 설정 (0) | 2015.08.10 |
---|---|
vi copy, paste 와 X윈도우 clipboard 사용 (0) | 2014.11.07 |
vi 커닝페이퍼 (0) | 2010.09.06 |
Solaris VI 설정 (0) | 2006.11.16 |
vi 설정 (0) | 2006.10.25 |