※Mac에서 터미널을 사용해서 원격지의 우분투리눅스 pc로 ssh접속할 때 기준이다.

vi 시작과 종료

시작 - vi

종료 - :q

저장하지 않고 종료: q!


※vi를 사용하다가 "길을 잃었다면" ESC 키를 두 번 입력하라. 그럼 다시 방향을 잡아 줄 것이다.


편집모드

vi로 새 파일 만들기 : vi 파일명 or 파일명.확장자 vi foo.txt (리눅스는 파일에 확장자가 없는 것도 파일로 간주한다.)

저장하기 - :w

텍스트 입력모드 들어가기 - :i


커서 이동



 키

 커서 이동방향 

 l 또는 오른쪽 방향키 

오른쪽 한문자 

 h 또는 왼쪽 방향키 

왼쪽 한문자 

 j 또는 아래쪽 방향키 

한 줄 아래로 

 k 또는 위쪽 방향키 

한 줄 위로 

 0 (zero) 

현재 줄 처음으로 

 shift-6 ( ^ ) 

현재 줄 첫번째 공백이 아닌 글자로 

 shift-( $ ) 

현재 줄 마지막으로 

 w (소문자 w) 

다음 단어나 구두점(마침표) 기호 처음으로 

 shift-w

다음 단어 처음으로, 구두점(마침표) 기호 무시 

 b 

이전 단어나 구두점(마침표) 기호 처음으로 

 shift-B 

이전 단어나 구두점(마침표) 기호 처음으로 

 control - f  또는 fn - 방향키 아래쪽 방향키

한 페이지 아래로 

 control - b  또는 fn - 방향키 위쪽 방향키 

한 페이지 위로 

 number-shift-G 

줄 번호로 이동(1G를 입력하면 파일의 첫줄로 이동) 

 shift-G

파일의 마지막 줄로 


기본 편집

실행 취소 - u 

※실제 vi는 한 단계 수준의 실행취소만 지원. vim은 몇 단계까지도 가능하다.


빈줄 추가

 명령어 

 실행 

 o

 현재 줄 아래에 빈 줄 추가 

 O 

 현재 줄 위에 빈 줄 추가 


텍스트 삭제

d명령어는 단순히 텍스트를 삭제만 하는 것이 아니고 텍스트 "자르기"도 수행한다.

d명령어를 사용할 때마다, 삭제된 내용은 붙이기 버퍼(클립보드를 생각하자)에 복사되어 p명령어로 그 내용을 다시 불러와서 커서 앞 또는 뒤로 붙이기를 수행한다.

y 명령어는 d명령과 매우 비슷한 방법으로 텍스트를 자르고 "복사하는 기능을 수행한다.

 명령어

 삭제 내용 

 x

 현재 문자 

 3x 

 현재 문자를 포함한 다음 2개 문자 

 dd 

 현재 줄 

 5dd 

 현재 줄을 포함한 다음 4줄 

 dW 

 현재 커서 위치에서부터 다음 단어 앞까지 

 d$ 

 현재 커서 위치에서부터 현재 줄 끝까지 

 d0 (숫자0) 

 현재 커서 위치부터 현재 줄 맨 앞까지

 d^ 

  현재 커서 위치부터 그 줄의 공백이 아닌 첫 번째 글자까지

 dG

 현재 줄부터 그 파일 끝까지 

 d20G 

 현재 줄부터 파일의 20번째 줄까지 



텍스트 자르기, 복사하기 그리고 붙이기

예> yy입력해서 현재 줄 복사 -> 마지막 줄(G)로 커서 이동 후 p 입력하여 붙이기 실행.

 명령어

 복사 내용 

yy 

 현재 줄 복사

5yy 

 현재 줄을 포함한 다음 4줄

yW 

 현재 커서 위치부터 다음 단어 앞까지 

y$ 

 현재 커서 위치부터 현재 줄 끝까지 

y0 

 현재 커서 위치부터 현재 줄 맨 앞까지 

y^ 

 현재 줄부터 그 파일 끝까지 

yG 

 현재 줄부터 그 파일 끝까지 

y20G 

 현재 줄부터 파일의 20번째 줄까지 

줄 합치기 - J

예> line3 line4 <-- 이렇게아랫줄과 합쳐준다

line3 

line4


검색 및 치환

줄에서 텍스트 검색 - f명령

※예를 들어 fo명령어는 현재 줄에 있는 o 문자를 찾아 이동시킨다. 검색을 수행하고 나서 ; (세미콜론)을 입력하면 반복검색이 가능하다.

n명령어를 사용하면 이전 검색어로 검색을 반복해 준다. (이건 안되는 듯...)

The quick brwon fox jmped over the lazy dog.


파일에서 텍스트 검색

/ 명령어 사용된다.

예 >

/The

/quick brwon

/Line


전체 검색 및 치환

vi는 ex명령어를 사용하여 해당 줄이나 파일 전체에서 검색할 내용을 찾아서 바꾸기 작업(vi에서는 치환으로 불린다)을 수행한다. 파일 전체에서 Line을 line으로 바꾸기 위해 다음과 같은 명령어를 입력해야 한다.

:%s/Line/line/g

:1,9s/Line/line/g

:1,$s/Line/line/g

항목 

뜻 

 : 

콜론 문자는 ex명령어를 실행한다. 

 % 

작업을 수행할 줄 범위를 보여주고 있다. % 기호의 의미는 첫 번째

 줄부터 마지막 줄까지라는 것을 담고 있다. 그렇지 않으면 1, 5와 같이 범위를 지정할 수 있다(여기에서는 현재 5줄까지만 있다). 

또는 1, $를 입력하면 "1번 줄부터 파일의 끝까지"라는 의미로 해석된다. 줄 범위를 지정하지 않으면 현재 라인에만 작업이 수행된다

 s 

 작업을 지정한다. 이 경우에는 치환 작업이다(검색하여 바꾸기) 

 /Line/line/ 

검색 패턴과 바꾸고자 하는 텍스트를 입력한다 

 g 

전체를 의미한다. 치환 작업은 매 줄마다 검색 문자열 하나씩 실행되는데, g를 사용하지 않으면 각 줄 마다 첫번째 검색 문자열만 변경된다.

:%s/Line/line/gc

:1,9s/Line/line/gc

:1,$s/Line/line/gc

사용자 확인 메시지를 표시하는 치환 명령어를 사용할 수 있다. 명령어 끝에 c를 입력하기만 하면 된다.




Posted by 제로스틴
,