본문 바로가기

OS/Linux

vi 스크립트 명령어

커서이동

h 커서를 왼쪽으로 이동

j 커서를 아래로 이동

k 커서를 위로 이동

l 커서를 오른쪽으로 이동

W,w 다음 단어의 처음으로 이동

E,e 단어의 끝으로 이동

B,b 단어의 처음으로 이동

※소문자 -> 스페이스바 기준으로 jump

  대문자 -> 단어 + 특수문자 기준으로 jump

 

0(숫자) 행의 처음으로 이동

$ 행의 마지막으로 이동

 

G 문서의 마지막로 이동

gg 문서의 처음으로 이동(전체화면에서)

H 문서의 처음으로 이동(현화면에서)

M 문서의 중간으로 이동

L 문서의 마지막으로 이동

 

책갈피 기능 설정시

m? : ?표에 영어 대문자 또는 소문자중 하나를 입력

 

이동시

back quote + ? : 마크곳으로 이동

quote + ? : 마크된 라인의 처음으로 이동

" : 원래 위치로 돌아감

명령모드

i 현재 위치에서 입력 모드로 변경

a 현재 위치에서 우측으로 한칸 이동 후 입력 모드로 변경

I 행의 제일 처음에서 입력 모드로 변경

A 행의 제일 마지막에서 입력모드로 변경

o,O 커서 아래에 새로운 행을 추가하고 입력모드로 변경

s 현재 문자를 지우고 입력모드로 변경

S 현재 행의 모든 문자를 지우고 입력모드로 변경

 

x 커서가 있는 문자 삭제

X 커서가 입는 앞 문자 삭자

dd 현재 커서의 행 삭제

숫자+dd 현재 커서부터 숫자만큼 행 삭제

yy 현재 커서가 있는 라인을 복사

숫자+yy 현재 커서부터 숫자만큼의 행을 복사

p 복사한 ㄴ용을 현재 라인 이후에 붙여넣기

P 복사한 내용을 현재 라인 이전에 붙여넣기

 

검색모드

/Pattern Pattern이라는 문자를 검색

?Pattern Pattern이라는 문자를 검색

 

차이점

/ n을 통해 아래방향으로 계속 찾고 N을통해 위방향으로 계속찾는데

? n을 통해 위방향으로 찾고 N을 통해 아래방향으로 찾는다.

쉽게말하 정 반대로 움직인다.

치환모드

(길이)s/(a)/(b)/(옵션) a->b라는 문자로 바꾼다. 

범위는 n혹은 n,n혹은 %를 넣을 수 있다.

g 옵션을 주면 적용되는 라인의 모든 부분을 변경

g 옵션을 주지 않으면 처음 찾는 부분만 병경

예시

1. :10s/a/b/g  10번째 라인만 변환

2. :1,12s/a/b/g   1~12라인을 전부 변환

3. :%s/a/b/g  전 범위를 변환

:! vi를 일시 정지하고 명령어 수행

:.! 수행한 명령의 결과를 vi편집기로 출력

창 나누기

[n]split[filename] 수평 나누기

[n]vs[filename]  수직 나누기

 

명령모드에서 Ctrl + wn 은 현재 화면을 수평으로 나누기

명령모드에서 Ctrl + wv 는 현재 화면을 수직으로 나누기

n은 창의 크기를 의미한다.

Ctrl + ww 창간의 이동

 

파일관련

:e 파일열기(전내용은 증발함)

:enew 현재 창을 닫고 빈문서를 연다.

:q 종료(변경된 내용이 없는 경우)

:q! 강제 종료(변경된 내용이 있어도 무시)

:w 파일 저장

:wq 파일 저장 후 종료

파일 및 실행 관련

:w >> [파일이름] Filename에 내용추가

:f   현재 작업중인 파일의 이름과, 라인 수

:[n]r[filename]  Filename 파일의 내용을 현재 편집중인 파일의 n라인부터 삽입

:[n]r![command]  Command 실행결과를 파일의 n라인부터 삽입

기타

:set ts=3 Tab 사이즈 조절

:set nu  Line number 활성화

:set nonu  Line number 비활성화

:nohl  High light 비활성화