ide/vim

vim window vimrc 설정

C/H 2013. 4. 1. 18:24

참고

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