1. 리눅스 파일 편집기 - vim (대표적인 문서 편집기)
- vim 은 유닉스에서 제공한 편집기인 vi 를 업그레이드한 것으로 기본적인 사용법은 vi 와 같다.
- GUI 환경인 그놈에서 제공하는 gedit
구분 | 종류 |
행 단위 편집기 | ed, ex ,sed |
화면 단위 편집기 | vi, emacs |
GUI 편집기 | gedit |
2. 모드형과 비모드형 편집기
- 모드형 : 입력 모드와 명령 모드의 구분이 있음 (= vi 는 모드형 편집기)
- 비모드형: 입력 모드 , 명령 모드가 구분되어 있지 않음
- 입력 모드 ) 텍스트를 입력할 수 있는 모드 / 명령 모드) 텍스트를 수정하거나 삭제하고 복사와 붙이기 등 편집을 하는 모드
- 같은 글자라도 입력 모드에서는 텍스트로 처리하여 입력되고 , 명령 모드에서는 텍스트로 입력되는 것이 아니라 편집 명령으로 사용
구분 | 모드형(vi) | 비모드형(메모장) |
입력모드 | 텍스트 입력 | 텍스트 입력 |
명령모드 1) 복사 | yy | ctrl+c |
2) 붙이기 | p | ctrl+v |
3) 저장 | :wq , ZZ | ctrl+s |
모드 전환 | i, a, o ,ESC | 없음! |
3. vi 사용법
vi
- 기능: 지정한 파일을 편집한다. 파일을 지정하지 않으면 빈 파일이 열리고 이 빈 파일의 이름은 별도로 지정할 수 있다.
- 형식: vi [ 파일 ]
파일을 지정할 경우 : 해당 파일이 있으면 파일의 내용이 보이고 없는 파일이면 빈 파일이 열린다.
파일을 지정하지 않을 경우: 그냥 빈 파일이 열린다. ( 파일명은 저장할 때 지정가능 / :w 파일명)
1) vi 저장과 종료
편집을 완료한 후 vi 를 종료하려면 명령 모드나 마지막 행모드에서 명령을 입력해야 한다.
보통의 편집기처럼 작업한 내용을 저장하지 않고 종료할 수도 있고 , 다른 이름으로도 저장할 수 있다.
모드 | 명령 키 | 기능 |
마지막 행 모드 | :q | vi 에서 작업한 것이 없을 때 그냥 종료 |
:q! | 작업한 내용을 저장하지 않고 종료(강제종료) | |
:w [ 파일명 ] | 작업한 내용을 저장만 함, 파일명을 지정하면 새 파일로 저장됨 | |
:wq , :wq! | 작업한 내용을 저장하고, vi 를 종료 | |
명령 모드 | ZZ | 작업한 내용을 저장하고, vi 를 종료 |
2) 입력 모드로 전환하기
i a o I A O
vi 는 처음에 명령 모드로 시작하여 내용을 입력하려면 입력 모드로 들어가야한다!
명령키 | 기능 |
i (insert) | 커서 앞에 입력 (현재 커서 자리에 입력) |
a (add) | 커서 뒤에 입력 (현재 커서 다음 자리에 입력) |
o (open) | 커서가 위치한 행의 다음행에 입력 |
I | 커서가 위치한 행의 첫 칼럼으로 이동하여 입력 |
A | 커서가 위치한 행의 마지막 칼럼으로 이동하여 입력 |
O | 커서가 위치한 행의 이전 행에 입력 |
입력 모드 후 ESC 로 명령 모드로 빠져 나온다.
3) 커서 및 화면 이동하기
- 커서
명령키 | 기능 |
h / j / k / l | 각각 커서를 ← /↓ / ↑ / → 로 이동한다. |
^ 또는 0 | 커서를 현재 행의 처음으로 이동 |
$ | 커서를 현재 행의 마지막으로 이동 |
- | 커서를 앞 행의 처음으로 이동 |
+ / Enter | 커서를 다음 행의 처음으로 이동 |
H / M / L | 커서를 화면의 맨 윗행, 중간행 , 맨 아랫행으로 이동한다. |
w | 커서를 다음 단어의 첫 글자로 이동 |
b | 커서를 앞 단어의 첫 글자로 이동 |
e | 커서를 다음 단어의 마지막 글자로 이동 |
- 화면
기존 명령 키 | 기능 |
^u (ctrl + u) | 반 화면 위로 이동 |
^d (ctrl + d) | 반 화면 아래로 이동 |
^b (ctrl + b) | 한 화면 위로 이동 |
^f ( ctrl + f) | 한 화면 아래로 이동 |
^y (ctrl+ y) | 화면을 한 행만 위로 이동 |
^e (ctrl + e) | 화면을 한 행만 아래로 이동 |
- 특정 행 바로 이동하기
명령키 | 기능 |
G | 파일의 마지막 행으로 커서가 이동 |
행번호 G | 지정한 행 번호로 커서가 이동 |
: 행번호 | 지정한 행 번호로 커서가 이동 (마지막 행 모드) |
: $ | 파일의 마지막 행으로 커서가 이동(마지막 행 모드) |
4) 내용 수정하기
명령키 | 기능 |
r (replace) | 커서가 위치한 한 글자를 다른 글자로 수정 |
cw , #cw (change word) | 커서 위치부터 현재 단어의 끝까지 수정 . #에는 수정할 단어의 수를 지정, ex. 5cw 는 커서 위치부터 다섯단어를 수정한다. |
s, #s (substitute) | 커서 위치부터 ESC 키를 입력할 때 까지 수정한다. # 에는 수정할 글자 수를 지정, ex. 5s 는 커서위치부터 다섯 글자를 수정한다. |
cc (change) | 커서가 위치한 행의 내용을 모두 수정한다. |
C | 커서 위치부터 행의 끝까지 수정한다. |
원하는 내용으로 수정 후 ESC 를 눌러 명령 모드로 전환하면 수정 완료다!
5) 내용 삭제하기
명령키 | 기능 |
x, #x | 커서 위치의 글자를 삭제, #에는 삭제할 글자 수 지정 |
dw , #dw | 커서 위치의 단어를 삭제, # 삭제 단어 수 |
dd, #dd | 커서 위치 행 삭제, # 삭제 행 수 지정 |
D | 커서 위치부터 행의 끝까지 삭제 |
6) 명령 취소하기
명령키 | 기능 |
u (undo) | 명령을 취소 |
U | 해당 행에서 한 모든 명령을 취소 |
:e! | 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업 |
'리눅스프로그래밍' 카테고리의 다른 글
우분투 리눅스 - vi 환경 설정 (0) | 2020.04.26 |
---|---|
vi - 사용법 (복사, 붙이기, 버퍼,검색, 바꾸기, 기타 유용키) (0) | 2020.04.24 |
우분투 리눅스 - 파일 다루기 (0) | 2020.04.10 |
우분투 리눅스 - 디렉터리 사용 명령 (0) | 2020.03.29 |
우분투 리눅스- 디렉터리와 파일 (0) | 2020.03.29 |