본문 바로가기

대학교 2학년 1학기/리눅스 프로그래밍

문서 편집하기

728x90

1. vi 사용법

- 입력 모드: 실제로 내용을 입력할 수 있는 모드. ex) i, l, a, A, o, O

- 명령 모드: 입력한 키를 명령어로 해석. ex) 커서 이동, 페이지 이동, 글자 삭제, 행 삭제 등

- 마지막 행 모드: 특별 명령 처리. ex) :, /, ?

1-1. vi 시작하고 종료하기

- vi: 지정한 파일을 편집한다.

- 형식: vi [파일]

- 마지막 행 모드로 가려면 :(쌍점)을 누른다.

vi의 저장과 종료 명령 키

- 마지막 행 모드

:q :vi에서 작업한 것이 없을 때 그냥 종료.

:q! :작업한 내용을 저장하지 않고 종료.

:w [파일명] :작업한 내용을 저장만 함. 파일명을 지정하면 새 파일로 저장.

:wq, :wq! :작업한 내용을 저장하고 vi를 종료.

- 명령 모드

ZZ : 작업한 내용을 저장하고 vi를 종료.

 

1-2. 입력 모드로 전환

- i: 커서 에 입력.

- a: 커서 에 입력.

- o: 커서가 위치한 행의 다음 행에 입력.

- O: 커서가 위치한 행의 이전 행에 입력.

- I: 커서가 위치한 행의 첫 칼럼으로 이동하여 입력.

- A: 커서가 위치한 행의 마지막 칼럼으로 이동하여 입력.

 

1-3. 커서 및 화면 이동.

- k: 한 행 위로 이동.

- j: 한 행 아래로 이동.

- l: 한 글자 오른쪽으로 이동.

- h: 한 글자 왼쪽으로 이동.

- ^ 또는 0: 현재 행의 처음으로 이동.

- $: 현재 행의 마지막으로 이동.

- -: 앞 행의 처음으로 이동.

- +: 다음 행의 처음으로 이동.

- H: 맨 윗 행으로 이동.

- M: 중간 행으로 이동.

- L: 맨 아랫 행으로 이동.

- w: 다음 단어의 첫 글자로 이동.

- b: 앞 단어의 첫 글자로 이동.

- e: 다음 단어의 마지막 글자로 이동.

특정 행으로 바로 이동하기

- G: 파일의 마지막 행으로 커서가 이동.

- 행 번호G: 지정한 행 번호로 커서가 이동.

- :행 번호 :지정한 행 번호로 이동.

- :$ :파일의 마지막 행으로 커서가 이동.

 

1-4. 내용 수정하기

- r: 커서가 위치한 글자를 다른 글자로 수정.

- cw, #cw: 커서 위치부터 현재 단어의 끝까지 수정.

- s, #s: 커서 위치부터 Esc 키를 입력할 때까지 수정.

- cc: 커서가 위치한 행의 내용을 모두 수정.

- C: 커서 위치부터 행의 끝까지 수정.

 

1-5. 내용 삭제하기

- x, #x: 커서 위치의 글자를 삭제.

- dw, #dw: 커서 위치의 단어를 삭제.

- dd, #dd: 커서 위치의 행을 삭제.

- D: 커서 위치부터 행의 끝까지 삭제.

 

1-6. 명령 취소하기

- u: 명령을 취소.

- U: 해당 행에서 한 모든 명령을 취소.

- :e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업.

 

1-7. 복사하기 또는 잘라서 붙이기

- yy, #yy: 커서가 위치한 행을 복사

- p: 커서가 위치한 행의 아래쪽에 붙임

- P: 커서가 위치한 행의 위쪽에 붙임

- dd, #dd: 커서가 위치한 행을 잘라둔다.

네임드 버퍼 사용하기

언네임드 버퍼: yy 명령 키로 복사하거나 dd 명령 키로 잘라낼 경우, 버퍼에 저장된다. 언네임드 버퍼는 내용을 하나만 저장할 수 있다.

네임드 버퍼: 각각 다른 이름을 붙인 버퍼에 독립적으로 내용을 저장하고 사용할 수 있다. 이름을 붙일 때는 “+문자 또는 ”+숫자의 형태로 사용한다.

- "a 버퍼에 복사한 내용을 저장하려면 “ayy를 입력, 이를 행의 아래쪽에 붙이려면 ”ap와 같이 ‘버퍼 이름+p’를 입력.

범위 지정 명령 키

- 1,$ 또는 % : 1행부터 마지막 행까지.

- 1,. : 1행부터 커서가 있는 행까지.

- .,$ : 커서가 있는 행부터 마지막 행까지.

- .,.+2 : 현재 행과 두 번째 아랫행까지. (총 세 행))

- 10,20 : 10행부터 20까지.

마지막 행 모드에서의 복사하기, 잘라내기, 붙이기 명령 키

- :#y : #로 지정한 행을 복사.

- :<범위>y : 범위로 지정한 행을 복사.

- :#d : #로 지정한 행을 잘라냄.

- :<범위>d : 범위로 지정한 행을 잘라냄.

- :pu : 현재 행 다음에 버퍼의 내용을 붙임.

- :#pu : #로 지정한 행 다음에 버퍼의 내용을 붙임.

 

1-8. 검색하기와 바꾸기

- /문자열: 문자열을 아래 방향으로 검색.

- ?문자열: 문자열을 위 방향으로 검색.

- n: 원래 찾던 방향으로 다음 문자열 검색, N: 반대 방향으로 다음 문자열 검색.

바꾸기

- :s/문자열1/문자열2 : 커서가 위치한 행에서 첫 번째로 나오는 문자열 1을 문자열 1로 바꿈.

- :%s/문자열1/문자열2/g : 파일 전체에서 모든 문자열 1을 문자열 2로 바꿈.

- :<범위>s/문자열1/문자열2 : 범위 내 모든 각 행에서 첫 번째로 나오는 문자열 1을 문자열 2로 바꿈.

- :<범위>s/문자열1/문자열2/g : 범위 내 모든 행에서 문자열 1을 문자열 2로 바꿈.

- :<범위>s/문자열1/문자열2/gc : 범위 내 모든 행에서 문자열 1을 문자열 2로 바꿀 때 수정 여부 물음.

 

1-9. 기타 유용한 명령 키

- :r 파일 : 지정한 파일을 읽어 들여 현재 커서 위치에 삽입

- :e 파일 : 지정한 파일로 전환(기존 파일은 :w로 저장한 뒤에 실행) :e! 파일 : 저장하지 않고 전환.

- :n : vi시작 시 여러 파일을 지정했을 경우 다음 파일로 작업을 이동.

vi에서 셸 명령 사용하기

- :! 셸 명령 : vi작업을 중단하고 셸 명령을 실행 (명령 하나에 셸 명령 한번)

- :sh : vi를 잠시 빠져나가서 셸 명령을 실행, exit 명령을 입력해서 돌아옴 (제한 x)

기타 명령 키

- Ctrl+l : 현재 화면을 다시 출력 ( 상대방이 보낸 메시지가 출력되어 화면이 이상할 때 )

- Ctrl+g : 현재 커서 위치의 행 번호를 마지막 행에 출력.

- Shift+j or 대문자 L : 현재 행과 아랫행을 연결하여 한 행으로 만듦.

- .(마침표) : 바로 직전에 했던 명령을 반복.

- ~(물결표) : 커서가 놓인 곳의 글자가 소문자면 대문자, 대문자면 소문자로 됨. 커서는 오른쪽 한 칸 이동.

 

2. vi 환경 설정

2-1. vi 내에서 명령으로 설정하기

- :set nu : 행 번호가 표시.

- :set list : 특수문자를 표시.

- :set : set으로 설정한 모든 vi 환경 설정 값을 출력.

- :set all : 모든 환경 변수와 현재 값 표시.

- vi 환경 설정은 셸의 환경 변수인 EXINIT에도 가능함.

728x90

'대학교 2학년 1학기 > 리눅스 프로그래밍' 카테고리의 다른 글

프로세스 관리하기  (0) 2022.05.01
파일 접근 권한 관리하기  (0) 2022.04.04
셸 사용하기  (0) 2022.04.04
디렉터리와 파일 사용  (0) 2022.04.04
리눅스 입문  (0) 2022.04.04