본문 바로가기

Lecture & Tip/linux programming[리눅스]

[펌]vi 명령어들..

요새 vi를 많이 쓰는데..아직 명령어들이 익숙치 않아서..

--------------------------------------------

<명령모드>

. : 마지막 명령 실행

N. : 마지막 명령 N번 실행

Ctrl+R : Redo

0 : 줄의 처음으로 이동

$ : 줄의 끝으로 이동

w, b : 단어단위 커서이동

f : f다음에 오는 문자를 찾는다(동일행 내에서)

J : 줄 병합

m[0-9a-zA-Z] : 위치기억

'[0-9a-zA-Z] : 기억위치로 이동

'' : 이전 커서위치로 이동

[i : 함수의 프로토타입보기

*,# : 선택단어 찾기

% : 대응하는 괄호로 이동



q[0-9a-zA-Z] : 레코딩(매크로기능과 유사)

q : 레코딩 종료

@[0-9a-zA-Z] : 레코딩 실행

N@[0-9a-zA-Z] : 레코딩 N번 실행



^wn 새로운 창 나누기
^wo 현재 커서가 있는 창을 전체창으로..(여러개 창으로 나뉘어 있을때)
^ww 시계방향으로 창 사이를 이동
^w<방향키> 두개의 창 사이를 방향키의 방향으로 이동
^w+ 창 크게
^w- 창 작게
z<숫자> 창 높이설정
^w= 열려있는 창들의 크기를 모두 같게
^wc

^6 : 이전파일





v : 선택모드

V : 라인선택모드

Ctrl+V : 블럭선택모드

> y : 선택영역복사

> x : 선택영역잘라내기

> <,> : 선택영역 들여쓰기,내어쓰기



c : 문자의 치환

d : 문자의 삭제

y : 문자의 복사

> w : 한단어를 치환/삭제/복사

> $ : 현재커서부터 끝까지 치환/삭제/복사

> ^ : 행의 시작부터 현재커서까지 치환/삭제/복사

> G : 커서에서부터 파일의 나머지모두 치환/삭제/복사

> c,d,y : 한줄 전체 치환/삭제/복사





<라인모드>

:e filename : filename을 연다

:r filename : 현 문서에 filename을 삽입한다

:w filename : 현재파일을 filename으로 저장

:시작줄,끝줄 s/단어1/단어2/g : 시작줄부터 끝줄범위에있는 단어1을 단어2로 치환(g가 없으면 줄당1회만)

:! : command 실행

:sh : shell실행

:Ctrl+Z : vi백그라운드로 실행

:map : 명령문자열을 키보드의 키에 지정. 예):map #1 i\fl^V

:ab : 약어. 예) :ab ux UNIX(tm)

:vs : 가로로 창을 나눔. 예):Nvs ./ : N컬럼의 크기의 창에 현재디렉토리의 내용을 보여준다

:split(sp) : 세로로 창을 나눔. 사용법은 vs와 동일

:only : 창이 나눠있는 경우 현재열려있는 창 최대화

:args : 열려있는 파일목록표시. 현재파일은 []로 묶어표시

:marks : 열려있는 파일보기

:ls : 현재 열려있는 버퍼를 확인. 편집중에 다른파일 여러개를 연경우 이미 열린파일을 찾을 수 있음. N번 파일로 이동시 :bN

:fileformat(ff) : 줄바뀜 변환. 예)ff=unix : unix형태(\n)로 변경 unix,dos,mac가능



:s : 치환

:g : ?? 예):g/^$/d : 빈줄 지우기



<편집모드>

Ctrl+N,P : 자동완성기능









^ : 행의 시작

$ : 행의 끝

. : 한문자

[] : 집합. ^는 여집합, -는 범위

* : 0이상의 반복

\< : 단어의 시작(예- /\

\> : 단어의 끝(예 - /ful\> : ful로 끝나는 단어검색)





a부터 z까지의 버퍼에 명령을 지정

매크로 명령을 입력모드에서 편집후 "D 명령으로 버퍼에 저장

@ 으로 실행

예) i\fl^[Ea\fP^[ "aD @a