vim(vi) 즐겨 사용하는 설정
Note
|
vi 환경에서 코딩 작업 등을 할때 사전에 설정해 두면 편리한 기능 들을 정리 |
set 명령
- :set ai (autoindent)
-
윗라인과 같이 자동으로 들려쓰기
- :set si
-
코딩 할때 if, for 같은 것을 입력 하고 다음 라인으로 이동시 자동으로 들려쓰기
- :set paste
-
붙여 넣기 할 경우 ai, si 옵션에 의한 계단 현상 방지
- :set ts=4 (tabstop)
-
[tab] 키를 입력 하였을때 이동하는 크기 조정 (일반적으로 ts=4 가 적정함)
- :set sw=4 (shiftwidth)
-
set si
했을 경우 들려쓰기 하는 깊이+>
시프트 할 경우 깊이 - :set et (expandtab)
-
[tab] 키를 입력 하였을때 tab에 대당하는 space 만큼 이동
Python, YAML 등 들려쓰기가 민감한 언어에서 유용 - :set encoding=cp949|utf8
-
작업 하는 컴퓨터 또는 개발 언어에서 기본 인코딩 타입을 설정
- :set fenc=cp949|utf8
-
다른 인코딩으로 저장 하고 싶을때 명령을 내리고 저장하면 해당 인코딩으로 저장
- :set t_ti= t_te=
-
터미널 환경에서 vi를 종료 할때, 편집 하던 화면이 그대로 남도록 함
- :set ruler
-
우측 하단에 라인 및 컬럼 위치 표시및 전체 문서의 위치를 %로 표시
- :set sc
-
완성중인 명령을 표시, 비주얼 모드 에서는 선택된 블럭의 라인수를 표시
- :set ff=unix|dos|mac
-
개행 문자를 OS 타입에 맞게 변경
- :set key=<password>, set key=
-
문서를 암호화 시키고, 암호를 풀수 있음
- :set ic (ignorecase)
-
매칭 검색 시 대소문자를 구별 하지 않음
- :set hlsearch
-
검색어 하이라이팅
- :set wam
-
저장하지 않고 종료시에 경고메시지 출력
- :set sm (showmatch)
-
괄호를 닫을때 열기 괄호를 보여줌
- :set nocp (nocompatible)
-
오리지널 vi와의 호환성을 없애고 vim만의 기능을 쓸 수 있게함
- :syntax on|off
-
문법 강조를 켜거나 끔
- :colors desert
-
칼라 스킴 설정
-
지원하는 언어와 칼라스킴은 아래의 위치에서 확인 가능
문법강조: /usr/local/share/vim/vim73/syntax 칼라스킴: /usr/local/share/vim/vim73/colors
NoteOS에 따라 위치는 다를 수 있음 -
모든 명령의 취소는 no를 앞에 붙여 주시면 됨
:set noai
-
vim 실행시 설정을 자동으로 로딩하려면 홈디렉토리에
.vimrc
에 작성set ts=4 set si set ai set sw=4 set encoding=cp494
NoteWindows 는 vim 설치 디렉토리에 _vimrc 파일 사용
-
편집 작업시 유용한 기능
-
화면 스크롤
^F : 한 화면 앞으로 스크롤 ^B : 한 화면 뒤로 스크롤 ^D : 반 화면 앞으로 스크롤 ^U : 반 화면 뒤로 스크롤 ^E : 한줄 앞으로 스크롤 ^Y : 한줄 뒤로 스크롤 H (shift+h) : 화면의 맨 윗줄로 M (shift+m) : 화면의 중간 줄로 L (shift+l): 화면의 맨 아랫줄로
-
화면 나누기
: vs --> 수직으로 나눔 : sp --> 스평으로 나눔 ^ww --> 화면 간의 이동
-
숫자 변경
Ctrl + A --> 커서 위치의 숫자 증가 Ctrl + X --> 커서 위치의 숫자 감소
-
마크 이동
m[a~z] --> 현재의 위치를 기록 '[a~z] --> 기록한 위치로 이동 '' --> 이동하기 전의 위치로 이동
-
접기
접기: V 로 블럭 설정을 한후에 'zf' 펴기: 'zo' 를 하면 다시 펴짐
-
함수/변수명 자동 완성
호출 하고자 하는 변수명이나 함수명의 앞글자만 쓰고서 '<Ctrl> + p' 를 입력 하면 자동 완성 됨
-
잠시 쉘로 나가기
^z, 들어 올때는 fg
유용한 팁
-
공백 라인 제거
:g/^$/d
-
정렬 및 중복 라인 제거
:sort # 정렬 :sort! # 역순 정렬 :sort n # 숫자 기준으로 정렬 :sort! n # 숫자 기준으로 역순 정렬 :sort u # 정렬 후 중복라인 제거 :sort nu # 숫자 기준으로 정렬 후 중복라인 제거 :sort i # 대/소문자 구분 하지 않고 정렬
Tip각 옵션을 ':sort nu' 처럼 조합해서 사용 가능 -
매칭 변경
:1,$ s/<매칭스트링>/<변경스트링>/g # 전체 라인에 대한 매칭 변경 :% s/<매칭스트링>/<변경스트링>/g # 위와 동일한 결과 :5,10 s/<매칭스트링>/<변경스트링>/g # 5~10 라인에 대한 매칭 변경 (라인은 비주얼 모드(V) 선택 가능)
Tip매칭 스트링에 특수 문자 있을 경우 이스케이프문자 \ 특수 문자 앞에 넣어 줘야 함 -
블록 선택 후 주석 처리
shift + v # 블럭 선택 :'<,'>norm i# # '#'으로 주석처리 ('#' 을 다른 기호로 바꿀 수 있음) :'<,'>norm x # 주석 제거 (한컬럼을 지우는 작업) :'<,'>norm 2x # 주석 제거 (두컬럼을 지우는 작업)
-
컬럼 열로 간격 조정
:%!column -t
-
두번째 컬럼으로 정렬
:%!sort -k2 # 두번째 필드 기준으로 정렬 :%!sort -k2n # 두번째 필드 기준으로 숫자 방식으로 정렬 :%!sort -k2nr # 두번째 필드 기준으로 숫자 방식으로 역순 정렬
Note컴럼 구분을 스페이스로 해야 정상적으로 되는 듯 함…
유용한 플러그인
- syntastic
-
문법체크 플러그인 (https://github.com/vim-syntastic/syntastic)
- neocomplete.vim
-
자동완성 플러그인 (https://github.com/Shougo/neocomplete.vim)
- vim-airline
-
스테이터스 라인 제공 (https://github.com/vim-airline/vim-airline)
'리눅스 (Linux)' 카테고리의 다른 글
Netatalk 리눅스에서 AFP 서버 구성 (0) | 2021.03.18 |
---|---|
Linux 소소한 명령 및 팁 요약 (0) | 2021.03.17 |
CentOS의 firewalld 관리 (0) | 2021.03.14 |