Linux - VI(입력, 삭제, 복사, 붙여넣기)

2021. 7. 19. 19:59Linux

편집기에는 모드형과 비모드형이 있습니다. 윈도우의 워드, 메모장과 같이 별다른 모드가 없는 것을 비모드형 편집기라고 하고 VI와 같이 입력모드, 명령모드 그리고 전시간에 배운 마지막행 모드 처럼 여러 모드가 있는 편집기를 모드형 편집기라고 합니다. 

처음 VI를 키면 아무것도 입력 할 수 없는 상태입니다. 그 상태가 명령모드입니다.

명령모드에서는 대부분의 키가 명령어라고 생각하시면 됩니다. (지금은 무슨 말인지 모르실 수 도 있지만 곧 아시게 될겁니다.)

 

입력모드

명령모드 상태에서 a i o A I O(입력모드로 전환하라는 명령어 키) 중 하나를 입력하면 입력모드로 전환됩니다. 즉 파일에 입력할 수 있는 상태가 됩니다.

 

Esc 키를 누르면 다시 명령모드로 전환됩니다

 

마지막행 모드

: / ?(마지막행 모드로 전환하라는 명령어 키) 중 하나를 입력하면 마지막행 모드로 전환됩니다.

1. : 저장, 종료할때 사용합니다

:w : 저장

:q : 종료

:q! : 강제 종료(저장 안됩니다)

:wq, :wq! : 저장후 종료

명령어 모드에서 ZZ키는 :wq와 같은 역할을 합니다.

 

2. /, ? : 검색 할때 사용합니다

/검색할 단어 : 검색할 단어를 아래 방향으로 검색

?검색할 단어 : 검색할 단어를 위 방향으로 검색

n : 검색된 방향으로 다음 단어 검색(/를 사용했을 때는 맨 위에서부터 아래로, ?를 사용했을 때는 맨 아래에서 위 방향으로 다음 단어 검색)

 

좌 /검색할 단어 우 n 명령어를 쳤을때(아래 방향으로 다음 단어를 찾아갑니다) 

 

좌 ?검색할 단어 우 n 명령어를 쳤을때(위 방향으로 다음 단어를 찾아갑니다)

 

내용 삭제(잘라내기)

복사, 붙여넣기

 

 

사실 방금 배운 삭제를 제가 잘라내기라고 적은 이유가 있습니다.

윈도우에서 잘라내기를 사용하면 방금 지운 내용을 붙여넣기 할 수 있다는 사실을 알고 계신가요?

VI에서도 마찬가지입니다. x, dw, dd로 잘라낸 내용은 p명령어를 통해 붙여넣기 할 수 있습니다.

 

버퍼(Buffer)

잘라내기와 복사를 하면 버퍼에 저장이 됩니다. 하지만 한 내용을 버퍼에 저장하고 다른 내용을 또 버퍼에 저장을 하면

앞서 저장한 내용이 삭제 되는 것을 알 수 있습니다.

예를 들어 1를 복사한뒤 붙여넣기를 하면 1이 출력됩니다. 2를 복사하면 앞서 복사한 1은 버퍼에서 사라지고 2만 남습니다. 즉 붙여넣기를 하면 2만 출력됩니다.

저희는 지금부터 버퍼에 이름을 붙여줄것입니다. 그럼 위와 같은 문제를 해결 할 수 있습니다.

사용법 : "버퍼명 yy(복사)     "버퍼명 p

 

예시)

버퍼 연습을 하겠습니다   "ayy  "c2yy

what is buffer?  "byy

 

"ap = 버퍼 연습을 하겠습니다

"bp = what is buffer?

"cp = 버퍼 연습을 하겠습니다

        what is buffer?

 

 

이것은 복사 뿐만 아니라 잘라내기에서도 사용할 수 있습니다.

"adw    "ap

"bdd    "bp

 

버퍼명은 문자뿐만 아니라 숫자로도 할 수 있습니다.

"1yy = 1이라는 버퍼에 복사한 내용 저장                  

"22yy = 2라는 버퍼에 2행 복사한 내용 저장              

"32dd = 3이라는 버퍼에 2행 삭제한 내용 저장          

 

되돌리기

윈도우에서 되돌리기, 전으로 돌아가기는 Ctrl + z 를 사용 했습니다.

리눅스 Vi에서는 u를 사용하면 됩니다.

 

이상으로 입력, 삭제, 복사, 붙여넣기에 대해 알아보았습니다. 다음 시간에는 치환, 범위 지정 등 VI의 나머지 기능들을 알아보는 시간을 가지도록 하겠습니다.

 

 

 

다음 내용

Linux - VI(범위지정, 치환, 다중 파일 편집)