SNOWFLAKES DRAWING PAPER

[Linux] vi 명령어 정리 본문

참고/정보/ubuntu(우분투)/Linux

[Linux] vi 명령어 정리

눈송2 2008. 9. 9. 06:03
개인적인 목적으로 정리하였으므로 다소 알아보기 힘들 수 있습니다.


이동

h,j,k,l
w,W,b,B =단어
e,E =단어의 끝

),( =다음/이전 문장의 처음
},{ =다음/이전 문단의 처음
]],[[ =다음/이전 절의 처음

0,$ =현재 행의 처음,끝
^ =현재 행의 공백이 아닌 처음
+,- =다음/이전행의 공백이 아닌 처음
n| =현재 행의 n열

H =화면 맨 윗행
M =화면 중간행
L =화면 맨 아래행
nH =화면 맨 위에서 n행
nL =화면 맨 아래에서 n행

ctrl+f,b =page up/down
ctrl+d,u =반화면씩
ctrl+e,y =한행씩
z+enter =현재 위치를 화면의 맨 위로
z. =현재 위치를 화면의 중간으로(200z.이면 200번째 행을 화면의 중간으로)
z- =현재 위치를 화면의 맨 아래로
ctrl+l =화면갱신

/ptn =검색
?ptn =뒤로 검색
nN =검색 앞/뒤
/? =이전 검색 앞/뒤
fx =현재 행에서 다음 x(임의의 문자)위치로 이동
Fx
tx =현재 행에서 다음 x(임의의 문자)위치 바로 전으로 이동
Tx
;,, =현재 행에서 이전검색 반복 앞/뒤

ctrl+g =현재 행 수 표시
nG =n행으로
:n
G =마지막 행으로

% =괄호의 쌍 찾기

mx =현재 위치를 x로 marking
`x =x 위치로
`` =이전 위치로
'x =x 위치의 처음으로
'' =이전 위치의 처음으로



편집

i,a =insert/append(50i*...*을 50개 입력)
I,A =행의 처음/끝
o,O =새로운 아래행/위행

r =replace
cw =change word
cc =행 변경
cmotion
C =c$ =커서부터 행 끝까지 변경
R =덮어쓰기
s =문자 지우고 입력
S =행을 지우고 입력

x,X =문자 삭제 앞/뒤
dw =delete word(공백까지 삭제)
de =delete word(공백은 남김...단어만)
dd =행 삭제
d0,d$
d motion
D =커서부터 행 끝까지
p,P =paste 앞/뒤
"np =n버퍼 paste

yw =단어 복사
yy =행 복사
"ayy =a버퍼에 복사(a-z)
y motion
"ap =a버퍼의 내용을 paste(버퍼는 a-z, A-Z는 기존 버퍼에 추가하는 것)
"aP

. =redo (ctrl+r)
u,U =undo
J =행 합치기
~ =대문자<->소문자 변환

어떤 줄에 처음 등장하는 old를 new로 바꾸려면          :s/old/new
한 줄에 등장하는 모든 old를 new로 바꾸려면            :s/old/new/g
두 줄 #,# 사이에서 치환을 하려면                      :#,#s/old/new/g
파일 내의 모든 문구를 치환하려면                      :%s/old/new/g
바꿀 때마다 확인을 거치려면 'c'를 붙여서              :%s/old/new/gc


v =영역설정 문자단위 (motion)
V =영역설정 행단위 (motion)
ctrl+v =영역설정 직사각형 형태

:x (수정시 저장)
ZZ =:wq =무조건 저장후 종료
w =저장
:w! =무조건 저장
:30,60w newfile =30-60행을 newfile로 저장
:30,60w>>file =file에 append
:w %.new
:q
:q! =무조건 종료(저장안함)
Q =vi to ex
vi =ex to vi
:e file2 =file2 편집
:r newfile =newfile 읽어오기(:r !date =시스템 날짜정보 읽어오기)
:n =다음파일 편집
:e! =마지막 저장상태로 (처음으로 되돌리기)
:e# =파일을 번갈아가며 편집
:sh =shell...ctrl+d(or exit)로 돌아오기
:% =현재 파일명
:# =다음 파일명



기타

:sp =split window (ctrl+w+s)
:new =new file (ctrl+w+n)
ctrl+ww =window change
:clo =close window (ctrl+w c)
:clo!
:on =only this window (ctrl+w+o)
:on!
:resize (+|-)n
ctrl+w = =모든 창의 높이를 같게
ctrl+w - =창 높이 줄이기 (앞에 n)
ctrl+w + =창 높이 늘리기 (앞에 n)
:zn+enter =현재 창의 크기를 n으로

:tags =tag stack 내용 표시
ctrl+] =tag stack
ctrl+T

vi -r file =이전 작업상태로 복원



:set hls =검색 highlight(해제시 :nohlsearch)
:set all =모든 option 표시
:set option? =option의 현재 값을 표시
:set =.exrc파일이나 현재 세션에서 특별히 값을 바꾼 option을 표시
:set ic =검색시 대소문자 구분 안함

:set autoindent(>>,<< =기본 8칸씩 이동)
:set shiftwidth=4(>>,<<에 의한 이동을 4칸으로 설정)


:so .xxx =.exrc 이외의 설정파일 불러오기(.xxx는 임의의 파일명)


:ab =현재 정의된 축약어 표시
:ab 축약어 원본 =원본에 대한 축약어 정의
:unab 축약어 =축약어 해제

:map =현재 mapping된 문자 표시
:map x sequence =임의의 문자 x에 명령어 sequence를 mapping(:map v dwelp...단어 순서 바꾸기)
Comments