코딩고치

[유닉스] Vim 본문

유닉스

[유닉스] Vim

코딩고치 2020. 4. 21. 21:08

Vim

vim은 CLI환경에서 사용하는 텍스트 에디터이다. 유닉스에 설치되어 있는 기본 에디터로 꼭 알아야 할 프로그램이다.

Vim의 입력 모드

일반 모드

(Normal Mode)

입력 모드

(Insert Mode)

비주얼 모드

(Visual Mode)

명령 모드

(Command Mode)

커서 이동 텍스트 입력 텍스트 블록 지정 내용 저장
텍스트 붙여넣기   텍스트 복사 vim 종료
텍스트 삭제     특정 텍스트 검색 및 치환
작업 취소      

모드 이동

각 명령어를 입력하면 다른 모드로 이동할 수 있다.

일반 모드 → 입력 모드: a, i, o, A, I, O (a: 커서가 마지막 글자에서 한 칸 띄운 곳에 위치함, i: 커서가 마지막 위치에 있음, o: 커서가 한 줄 아래 위치함, A: 커서가 맨 끝에 위치함, I: 커서가 첫 줄 맨 앞에 위치함, O: 커서 위에 빈 줄을 만들고 그 줄에 위치함 )

일반 모드 → 비주얼 모드: v, V

일반 모드 → 명령 모드: :, /

다른 모드 → 일반 모드: esc

 

※ 다른 모드로 이동하기 위해서는 꼭 일반 모드로 이동 후 다른 모드로 이동해야 한다.

 

입력 모드

터미널에 vim을 치면 프로그램을 켤 수 있다.

 

vim 실행

vim을 처음 실행하면 일반 모드로 실행된다. 모드 이동 명령어를 통해 다른 모드로 이동할 수 있다.

입력 모드로 이동

i를 눌러 입력 모드로 들어가면 아래 '-- 끼워넣기 --'라고 쓰여있는 것이 보인다. 이것은 입력 모드로 들어갔다는 것을 알려준다. 그리고 글을 입력할 수 있다.

 

명령 모드

파일 저장 및 vim 종료

명령 모드는 :을 눌러서 이동한다.

명령 모드

명령 모드로 이동하게 되면 맨 아래 :이 생긴 것을 볼 수 있다. 이 뒤에 명령어를 써주면 된다. w는 저장 명령어이다.

저장 명령

:w 뒤에 파일 이름을 적으면 된다.

저장 후 모습

저장을 완료하면 다음과 같은 메시지가 뜬다. 2L, 36C는 2줄 36글자라는 의미이다. 저장이 완료되면 자동으로 일반 모드로 돌아온다. vim을 종료하려면 :q를 입력하면 된다.

종료 후 모습

vim이 종료되고 터미널로 이동한다.

exercise 파일 생성

ls로 파일 목록을 보면 exercise가 생성된 것을 볼 수 있다. 다시 exercise를 열기 위해서 터미널에서 vim exercise를 입력하면 된다.

파일을 수정하고 다시 저장할 때에는 이미 만들어져 있는 파일이기 때문에 :w만 입력해 주면 된다. 파일을 수정하고 저장 후 바로 종료하기 위해서는 :wq를 입력하면 된다.

글을 추가로 작성하고 저장하지 않고 종료 명령어를 입력하면 다음과 같은 경고 메시지가 뜬다.

이렇게 저장하지 않고 강제로 종료하려면 :q! 를 입력하면 된다.

 

텍스트 검색 (/)

텍스트 검색을 하기 위해서 명령 모드로 들어가야 하는데 이때에는 :가 아니라 /를 이용하여 이동해야 한다. /뒤에 찾고자 하는 글을 쓰면 된다.

텍스트 검색

/a를 입력하면 a로 커서가 이동하게 된다. 다음 검색 내용으로 이동하려면 n을 누르면 된다. N을 누르면 이전 글자로 커서가 이동한다.

 

텍스트 치환

텍스트 치환은 :s를 이용하면 된다. 

':s/바꿀 단어/새로운 단어'의 형식으로 입력해 주면 된다. 이때 커서는 바꿀 글자가 있는 줄에 위치하여야 한다.

바꿀 범위를 전체로 하기 위해서는 ':%s/바꿀 단어/새로운 단어'로 입력하면 된다.

모든 줄의 Lord가 King으로 바뀌었다. 하지만 2번째 줄을 보면 뒤에 있는 Lord는 바뀌지 않은 것을 볼 수 있다. %s는 첫 번째 나오는 글자만 바꿔주므로 모든 글자를 바꾸려면 ':%s/바꿀 글자/새로운 글자/g'를 입력해 주어야 한다. 또한 사용자가 하나씩 확인해 가면서 글자를 바꾸려면 ':%s/바꿀 글자/새로운 글자/gc'를 입력하면 된다.

 

일반 모드

커서 이동하는 법

1. 방향키

2. 알파벳 키

h: 왼쪽

j: 아래쪽

k: 위쪽

l: 오른쪽

 

숫자 입력 후 방향키나 알파벳 키를 누르면 그 방향으로 숫자만큼 이동한다.

'ctrl + g'를 누르면 현재 커서의 위치를 알려준다.

 

0: 현재 줄의 제일 앞으로 이동

$: 현재 줄의 제일 마지막으로 이동

gg: 첫째줄 제일 앞으로 이동

G: 가장 마지막 줄 제일 앞으로 이동

 

텍스트 삭제하기

x: 텍스트 한 칸씩 삭제

숫자 + x: 숫자만큼 삭제

dd: 한 줄 전부 삭제

2 + dd: 현재 커서 기준으로 아래로 2줄 삭제 (숫자만큼 삭제)

u: 이전 작업 취소

 

비주얼 모드

비주얼 모드에서 방향키를 누르면 블록이 지정된다.

블록 지정 후 작업할 수 있는 것

 

1. 텍스트 삭제

블록 지정 후 x: 블록 지정한 만큼 삭제

u: 작업 취소

 

2. 복사 - 붙여 넣기

y: 복사

블록 지정 후 y키를 누르면 아래 6줄이 복사되었다고 나온다. 복사되면 자동으로 일반 모드로 들어간다.

 

p: 현재 커서 다음에 붙여 넣기

P: 현재 커서 이전 칸에 붙여 넣기

p를 이용하여 붙여넣기

V: 일반 모드에서 V를 누르면 줄단위로 블록 지정할 수 있다.

V를 이용하여 비주얼 모드에 진입한 후 p를 이용하여 붙여 넣기 하면 다음 줄에 복사가 된다.

 

3. 잘라내기

d: 블록 된 부분 삭제 (이 데이터는 임시 저장됨). 이후 p를 누르면 붙여 넣기를 할 수 있다.

Comments