치악산 복숭아

[시스템 프로그래밍 기초] vi 명령어 정리 본문

CS/시스템 프로그래밍 기초

[시스템 프로그래밍 기초] vi 명령어 정리

Juliie 2023. 3. 26. 16:05

1. vi 시작하기

vi filename
  • filename의 이름을 가진 파일이 존재한다면 open, 없다면 create 한다
  • 리눅스, 유닉스에는 확장자라는 개념이 없음(r w x 개념만 있다)

2. vi 실행모드의 종류

(1) Command mode (명령 모드)

  • 문자열을 검색할 수 있다
  • 에디팅 모드에서 esc키를 눌러서 커맨드 모드로 진입할 수 있다

(2) Editing mode (수정 모드)

  • 문자를 삽입, 수정할 수 있다
  • 커맨드 모드에서 `a`(append), `i`(insert) 문자를 입력해서 에디팅 모드로 진입할 수 있다

3. vi 커맨드 모드에서의 명령어

(1) vi 종료하기

:q 에디터 종료
:q! 파일의 변경사항을 저장하지 않고 종료 ( ↔️ :wq)
  • :q의 경우변경사항이 있는데 이 명령어를 사용하면 아래의 에러메시지가 표출된다 

(2) vi 변경사항 저장하기

:wq 변경사항 저장 및 종료
:w 변경사항 저장 (종료 X)

 (3) vi 커서 이동하기

h 왼쪽으로 한 칸 이동
l 오른쪽으로 한 칸 이동
j 한 줄 아래로 이동
k 한 줄 위로 이동

맥os의 터미널은 영문자가 아닌 방향키로도 이동 가능하던데 리눅스는 다른걸까?

 

(4)  vi 문자 지우기

x 커서가 가리키는 문자 한 개 삭제,
(2x는 문자 두개 삭제...nx로 응용 가능)
u 실행 취소
dd 커서가 있는 라인 전부 삭제
(ndd로 응용 가능)
s 해당 문자 치환
d^ 커서가 위치한 라인의 첫 문자열 ~ 커서 아래 문자열 직전까지 삭제
(사라진 문자열은 클립보드로 들어간다. 잘라내기 느낌?)
d$ 커서 아래 문자열 ~ 커서가 위치한 라인의 끝 문자열까지 삭제
dw 커서가 위치한 문자열 삭제
p 현재 문자열 아래 붙여넣기
yy 한 줄 복사, (ny로 응용 가능)

(5)  vi 커서 점프하기

:lineNumber 파일의 특정한 lineNumber번째 라인으로 이동
^f 다음 페이지로 이동
^b 이전 페이지로 이동
w 다음 단어로 커서 이동, (nb로 응용 가능)
b 이전 단어로 커서 이동
nG n번째 라인으로 커서 이동

 

Comments