지난 시간에 이어 이번에는 간단한 명령에 대해서 알아보자
명령모드에는 표준모드, 입력모드, 명령라인모드가 있다고 했다.
먼저 기본적인 명령라인모드에 대해서 알아보자
명령모드에서는 : 을 설정하여 명령 모드로 넘어 갈 수 있다.
간단한 명령모드의 명령어는 다음과 같다
명 령 | 설 명 |
:w | 저장 |
:w file.txt | File.txt 파일로 저장 |
:w>>file.txt | File.txt 파일에 덧붙여 저장 |
:q | Vi 종료 |
zz | 저장 후 종료 |
:wq! | 강제 저장 후 종료 |
:e file.txt | File.txt 파일을 불러옴 |
:e | 현재 파일을 불러옴 |
다음으로는 입력모드 이다.
- 입력 명령어
명 령 | 설 명 |
A / a | 커서 행의 맨 마지막부터 입력 /커서 위치의 다음 칸부터 입력 |
I / i | 커서 행의 맨 앞에서부터 입력 / 커서 위치의 입력 |
O / o | 커서의 다음 행에 입력 / 커서 이전의 행에 입력 |
s | 커서 위치의 한 글자를 지우고 입력 |
cc | 커서 위치의 한 행을 지우고 입력 |
- 이동 명령어
명 령 | 설 명 |
h | ← |
j | ↓ |
k | ↑ |
l | → |
w | 다음 단어의 첫 글자 이동 |
b | 이전 단어의 첫 글자 이동 |
^ | 행 내의 첫 글자로 이동 (Home) |
$ | 행 내의 마지막 글자로 이동 (End) |
+ | 다음 행의 첫 글자로 이동 |
- | 이전 행의 첫 글자로 이동 |
다음으로는 표준모드 이다.
- 편집 명령어
- 삭제
명 령 | 설 명 |
x, dl | 커서 위치의 글자 삭제 |
X, dh | 커서 바로 앞의 글자 삭제 |
dw | 한 단어를 삭제 |
d0 | 커서의 위치부터 행의 처음까지 삭제 |
D, d$ | 커서 위치부터 행의 끝까지 삭제 |
dd | 커서가 있는 행을 삭제 |
dj | 커서가 있는 행과 그 다음 행을 삭제 |
dk | 커서가 있는 행과 그 앞 행을 삭제 |
- 복사와 붙여 넣기
명 령 | 설 명 |
yw | 현재 커서 위치의 한 단어를 복사 |
yy | 현재 커서 위치의 한 행을 복사 |
P | 붙여 넣기 |
- 잘라내기
잘라내기를 이해하기 위해서는 vi 레지스터에 대해서 자세히 알고 있어야 한다.
Vi 레지스터는 총 17개를 가지고 있다.
만약 dd 명령으로 한 행을 지우면 한 지워짐과 동시에 그 내용이 레지스터 1번째에 들어간다.
그리고 다시 dd 로 한 행을 지우면 1레지스터에 들어 있던 내용은 2에 옮겨가고 1레지스터에 새로운 내용이 들어간다.
즉 한마디로 큐의 원리와 같이 작용됨을 알 수 있다.
이 레지스터를 보다 더 자세히 확인 하기 위해서는 명령 모드 :reg 를 통하여 각 레지스터에 들어 있는 내용을 알 수 있다.
이제 잘라 냈으면 붙여 낼 차례이다.
이때는 p 명령으로 붙여 넣으면 된다.
- 블록 지정
마우스사용에서는 블록지정을 통하여 쉽게 오른쪽 마우스를 누르고 복사 붙여 넣기를 했지만 여기선 어떻게 할 것인가?
그래서 우리는 앞에서 배운 내용을 토대로 5개의 단어를 지우려면 5dw 이런 식으로 숫자를 사용했다.
하지만 우리는 마우스 식으로 블록을 지정해서 간단하게 사용해보자
이때는 v 키를 눌려주라
블록지정이 된 후
사용 가능한 키는
명 령 | 설 명 |
~ | 대소문자 전환 |
d | 삭제 |
y | 복사 |
c | 치환 |
> | 라인 앞에 탭 삽입 |
< | 라인 앞에 탭 제거 |
: | 선택된 영역에 대해서 ex명령 |
J | 행을 합침 |
U | 대문자로 만듦 |
u | 소문자로 만듦 |
- 되돌리기와 되살리기
자 이제 우리게 가장 유용하게 사용하는 되돌리기와 되살리기다.
보통우리는 Ctrl + z 에 익숙할 것이다.
하지만 vim 에서 되돌리기 기능은 u 명령을 사용한다 (원래 u의 명령은 되돌리기가 아닌 명령취소이다.)
그리고 되살리기 기능은 Ctrl + r 키를 사용한다
- 문자열 탐색
Vim 에서 특정한 문자열을 이제 찾아보자
우리가 보통 사용하는 Ctrl + f 키라 생각하자
그냥 단순히 한 문자열만 찾으려면 표준모드에서 /, ? 키를 누른 후 찾기 원하는 문자열을 입력하면 된다.
/[찾고자 하는 문자열] (순방향)
?[찾고자 하는 문자열] (역방향)
- 문자열 치환
우리가 문자열을 왜 찾았단 말인가 ?
보통 바꾸기 위해서 많이 사용되지 않는가?
그렇다 문자열을 치환 즉 바꿔보자
이때는 : 명령을 사용한다
:[범위]/[찾은 문자열]/[바꿀 문자열]/[행 범위]
'[Public] 임베디드 > Linux' 카테고리의 다른 글
[Linux] 파일 시스템 #1 (FAT, NTFS 무슨 차이가 있나요?) (0) | 2011.02.14 |
---|---|
[Linux] vi, vim 활용하기 #1(vi 환경구축하기) (0) | 2011.02.07 |
[Linux] 임베디드 리눅스 시스템의 일반적인 아키텍쳐 (0) | 2010.12.08 |
[Linux] 임베디드 시스템의 개발환경 타입 (1) | 2010.12.07 |