[linux] vi 편집기 사용 명령어
로빈아빠
본문
vi 편집기 사용 명령어
* 시작 명령어
vi 편집기의 호출, 화일 열기등 시작 명령어는 아래 표와 같습니다.
vi 편집기 호출
vi file-name 화일 열기 또는 작성
vi +18 file-name 18번째 행으로 화일 열기
vi +/"star" file-name "star"라는 단어의 첫번째 발생으로 화일 열기
vi -r file-name 손상된 화일 복구
view file-name 일기 전용 화일 열기
이 시작 명령어는 쉘 상태에서 사용되는 것이며, 일단 화일을 열면 명령어 상태에서 시작됩니다.
* 커서의 이동
한 화일 또는 편집기 내에서 이동하고 할 때에는 아래와 같은 글쇠를 사용합니다. 가급적 화살표 글쇠는 사용하지 마십시오. 화살표 글쇠들은 듣지 않는 경우가 대부분이며, 아래의 글쇠들이 익숙해지기만 하면 왜 vi 편집기가 이토록 복잡한 글쇠들을 사용하는가 아시게 될겁니다.
*** 커서 이동 명령 ***
h 왼쪽으로 이동
j 아래로 이동
k 위로 이동
l 오른쪽으로 이동
w 한단어 오른쪽으로 이동
W 한단어 오른쪽으로 이동(past punctuation)
b 한단어 왼쪽으로 이동
B 한단어 왼쪽으로 이동(past punctuation)
Retuen 한행 아래로 이동
Back Space 한문자 왼쪽으로 이동
Space Bar 한문자 오른쪽으로 이동
H 화면의 맨 위로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl-F 한 화면 앞으로 이동
Ctrl-D 반 화면 앞으로 이동
Ctrl-B 한 화면 뒤로 이동
Ctrl-U 반 화면 뒤로 이동
* 삽입 명령어
명령어 모드에서 실제로 화일 작성을 하고자 한다면 아래의 삽입 명령어로 비로소 편집 상태로 들어 가게 됩니다. 이 삽입 명령을 이용하여 편집 모드로 들어간 후에는 Esc 또는 Ctrl-] 글쇠로 다시 명령어 모드로 나올 수 있다는 것을 잊으시면 안 됩니다.
*** 입력키의 종류 (커서 이동모드 에서 텍스트 모드로 전환할때 사용) ***
a - 커서 위치의 다음 칸부터 입력하기
A - 커서가 있는 줄의 끝부터 입력하기
i - 커서 위치부터 입력하기 (키보드의 insert도 같은 기능)
I - 커서가 있는 줄의 맨 앞에서부터 입력하기
o - 커서 바로 아래에 줄을 만들고 입력하기 (open line)
O - 커서 바로 위에 줄을 만들고 입력하기
s - 커서가 있는 단어를 지우고 입력하기
S - 커서가 있는 행을 지우고 입력하기
* 단어, 줄 또는 일부의 변경
단어의 일부, 줄의 일부를 변경하는 명령어입니다.
*** 텍스트 변경 ***
cw 단어(커서가 위치한 곳부터 그 단어의 끝까지) 변경
cc 한 행 변경
C 커서오른쪽행 변경
s 커서가 위치한 문자 대체
r 커서가 위치한 한 문자를 다른 문자로 대체
r-Return 행 분리
J 아래행을 현재 커저가 위치한 행으로 결합
xp 커서가 위치한 문자 오른쪽에 있는 문자 교환
~ 문자형(대문자, 소문자) 변경
u 이전 명령 취소
U 행 변경사항 취소
:u 이전의 최종 행 취소
* 삭제
한 글자, 단어, 줄, 일부 내용을 지우는 명령어 입니다.
*** 텍스트 삭제 ***
x 한 문자 삭제
X - dh 커서 바로 앞의 글자 삭제
dw 단어(또는 커서 오맨Β各 단어 일부) 변경
dd 한 행 삭제
p yank 되거나 삭제된 행을 현재행 아래에 삽입
P yank 되거나 삭제된 행을 현재행 위에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 다음으로 이동
================================================
글자단위이동
h - 한 칸 왼쪽으로 이동하기
l - 한 칸 오른쪽으로 이동하기
j - 한 줄 아래로 이동하기
k - 한 줄 위로 이동하기
단어단위이동
w - 다음 단어의 첫 글자로 이동
W - 다음 단어의 첫 글자로 이동하기
b - 이전 단어의 첫 글자로 이동
B - 이전 단어의 첫 글자로 이동하기
e - 단어의 마지막 글자로 이동
E - 단어의 마지막 글자로 이동하기
(이동과 이동하기의 차이점은 해보면 약간있는데 별차이 없는듯)
줄단위이동
^ - 그 줄의 첫 글자로 이동, shift와 함께 사용
$ - 그 줄의 마지막 글자로 이동하기, shift와 함께 사용
0 - 그 줄의 처음으로 이동
enter - 다음 줄의 첫 글자로 이동하기
+ - 다음 줄의 첫 글자로 이동
- - 윗줄의 첫 글자로 이동하기
삭제 키의 종류
x - dl 커서 위치의 글자 삭제
X - dh 커서 바로 앞의 글자 삭제
dw - 한 단어를 삭제
d0 - 커서 위치부터 줄의 처음까지 삭제
D - d$ 커서 위치부터 줄의 끝까지 삭제
dd - 커서가 있는 줄을 삭제
dj - 커서가 있는 줄과 그 다음 줄을 삭제
dk - 커서가 있는 줄과 그 앞줄을 삭제
수정 키의 종류
r - 커서 위치의 한 글자 수정하기
R - 커서 위치부터 esc를 누를 때까지 다른 글자로 수정하기. 단, 같은 줄에만 해당
s - 커서 위치의 한 글자를 여러 글자로 수정하기
ch - 커서 바로 앞의 한 글자를 여러 글자로 수정하기
cw - 커서 위치의 한 단어를 수정하기
c0 - 커서 위치부터 줄의 처음까지 수정하기
C - 커서 위치부터 줄의 끝까지 수정하기
cc - 커서가 있는 줄을 수정하기
cj - 커서가 있는 줄과 그 다음 줄을 수정하기
ck - 커서가 있는 줄과 그 앞줄을 수정하기
복사와 붙여넣기
yw - 커서 위치부터 단어의 끝까지 복사하기
y0 - 커서 위치부터 줄의 처음까지 복사하기
y$ - 커서 위치부터 줄의 끝까지 복사하기
yy - 커서가 있는 줄을 복사하기
yj - 커서가 있는 줄과 그 다음 줄을 복사하기
yk - 커서가 있는 줄과 그 앞줄을 복사하기
p - 커서의 다음 위치에 붙여넣기
P - 커서가 있는 위치에 붙여넣기
작업취소명령
u - 작업 취소하기(undo)
U - 그 줄에 행해진 작업 모두 취소하기
. - 조금 전에 했던 명령을 반복하기
================================================
* 줄 번호 매기기
각 줄의 앞에 줄 번호가 나타납니다.
*** 행 번호 설정 ***
:set nu 행 번호 표
:set nonu 행 번호 숨기기
* 원하는 곳으로의 이동
원하는 줄로 커저를 옮기고자 할 때 사용합니다.
*** 행 찾기 ***
G 화일의 마지막 행으로 가기
21G 21번째 행으로 가기
* 찾기, 바꾸기
글자, 단어 등 일정 패턴을 찾거나 다른 패턴으로 바꾸고자 할 때 사용하는 명령어입니다.
*** 탐색 및 대체 ***
/string/ 원하는 string 탐색
?string? 원하는 string 을 찾기 ㎸ 역방향으로 탐색
n string의 다음 발생 찾기
:s/문자열/새문자열/ 현재 줄에 있는 첫번째 해당 문자열을 새 문자열로 치환
:s/문자열/새문자열/g 현재 줄에 있는 모든 해당 문자열을 새 문자열로 치환
:g/문자열/명령 해당 문자열을 찾을 때마다 명령을 수행
:g/문자열/s/새문자열/g 파일 전체에 대해 해당 문자열을 새문자열로 치환
* 화면 다시 그리기
여러 종류의 시스템 메세지로 인하여 화면이 뒤섞이게 되면 편집 내용을 다시 그려 주는 명령어입니다.
*** 화면 정리 ***
Ctrl-L 불필요한 화면 내용 제거, 화면 다시 그리기
* 다른 화일 읽어 오기
다른 화일을 읽어 들이는 명령어입니다.
*** 다른 화일의 내용 삽입 ***
:r file-name 커서 다음에 화일의 내용을 읽어들임
:30 r file-name 30번째 행의 다음에 화일의 내용을 읽어서 삽입
* 저장, 종료
화일을 저장하고 편집기 프로그램을 종료하는 명령어입니다.
*** 화일 보관 및 종료 ***
:w 변경사항 보관
:w file-name file-name의 화일에 기록
:wq 변경사항 보관후 vi 종료
ZZ 변경사항 보관후 vi 종료
* vi 환경설정
:set number : 행번호 보이게 ( = :se nu)
:set nonumber : 행번호 안보이게
:set autoindent : 들여쓰기 설정
:set noautoindent : 들여쓰기 제거
:set list : 문단,조판부호 보기
:set nolist : 문단,조판부호 안보이게
:set window=30 : 한 화면당 행의 갯수 30개로 지정
:set ignorecase : 검색시 대소문자 구별 제거
:set noignorecase : 검색시 대소문자 구별
:set all : 현재 설정된 vi 모든 설정값 보기
* 시작 명령어
vi 편집기의 호출, 화일 열기등 시작 명령어는 아래 표와 같습니다.
vi 편집기 호출
vi file-name 화일 열기 또는 작성
vi +18 file-name 18번째 행으로 화일 열기
vi +/"star" file-name "star"라는 단어의 첫번째 발생으로 화일 열기
vi -r file-name 손상된 화일 복구
view file-name 일기 전용 화일 열기
이 시작 명령어는 쉘 상태에서 사용되는 것이며, 일단 화일을 열면 명령어 상태에서 시작됩니다.
* 커서의 이동
한 화일 또는 편집기 내에서 이동하고 할 때에는 아래와 같은 글쇠를 사용합니다. 가급적 화살표 글쇠는 사용하지 마십시오. 화살표 글쇠들은 듣지 않는 경우가 대부분이며, 아래의 글쇠들이 익숙해지기만 하면 왜 vi 편집기가 이토록 복잡한 글쇠들을 사용하는가 아시게 될겁니다.
*** 커서 이동 명령 ***
h 왼쪽으로 이동
j 아래로 이동
k 위로 이동
l 오른쪽으로 이동
w 한단어 오른쪽으로 이동
W 한단어 오른쪽으로 이동(past punctuation)
b 한단어 왼쪽으로 이동
B 한단어 왼쪽으로 이동(past punctuation)
Retuen 한행 아래로 이동
Back Space 한문자 왼쪽으로 이동
Space Bar 한문자 오른쪽으로 이동
H 화면의 맨 위로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl-F 한 화면 앞으로 이동
Ctrl-D 반 화면 앞으로 이동
Ctrl-B 한 화면 뒤로 이동
Ctrl-U 반 화면 뒤로 이동
* 삽입 명령어
명령어 모드에서 실제로 화일 작성을 하고자 한다면 아래의 삽입 명령어로 비로소 편집 상태로 들어 가게 됩니다. 이 삽입 명령을 이용하여 편집 모드로 들어간 후에는 Esc 또는 Ctrl-] 글쇠로 다시 명령어 모드로 나올 수 있다는 것을 잊으시면 안 됩니다.
*** 입력키의 종류 (커서 이동모드 에서 텍스트 모드로 전환할때 사용) ***
a - 커서 위치의 다음 칸부터 입력하기
A - 커서가 있는 줄의 끝부터 입력하기
i - 커서 위치부터 입력하기 (키보드의 insert도 같은 기능)
I - 커서가 있는 줄의 맨 앞에서부터 입력하기
o - 커서 바로 아래에 줄을 만들고 입력하기 (open line)
O - 커서 바로 위에 줄을 만들고 입력하기
s - 커서가 있는 단어를 지우고 입력하기
S - 커서가 있는 행을 지우고 입력하기
* 단어, 줄 또는 일부의 변경
단어의 일부, 줄의 일부를 변경하는 명령어입니다.
*** 텍스트 변경 ***
cw 단어(커서가 위치한 곳부터 그 단어의 끝까지) 변경
cc 한 행 변경
C 커서오른쪽행 변경
s 커서가 위치한 문자 대체
r 커서가 위치한 한 문자를 다른 문자로 대체
r-Return 행 분리
J 아래행을 현재 커저가 위치한 행으로 결합
xp 커서가 위치한 문자 오른쪽에 있는 문자 교환
~ 문자형(대문자, 소문자) 변경
u 이전 명령 취소
U 행 변경사항 취소
:u 이전의 최종 행 취소
* 삭제
한 글자, 단어, 줄, 일부 내용을 지우는 명령어 입니다.
*** 텍스트 삭제 ***
x 한 문자 삭제
X - dh 커서 바로 앞의 글자 삭제
dw 단어(또는 커서 오맨Β各 단어 일부) 변경
dd 한 행 삭제
p yank 되거나 삭제된 행을 현재행 아래에 삽입
P yank 되거나 삭제된 행을 현재행 위에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 다음으로 이동
================================================
글자단위이동
h - 한 칸 왼쪽으로 이동하기
l - 한 칸 오른쪽으로 이동하기
j - 한 줄 아래로 이동하기
k - 한 줄 위로 이동하기
단어단위이동
w - 다음 단어의 첫 글자로 이동
W - 다음 단어의 첫 글자로 이동하기
b - 이전 단어의 첫 글자로 이동
B - 이전 단어의 첫 글자로 이동하기
e - 단어의 마지막 글자로 이동
E - 단어의 마지막 글자로 이동하기
(이동과 이동하기의 차이점은 해보면 약간있는데 별차이 없는듯)
줄단위이동
^ - 그 줄의 첫 글자로 이동, shift와 함께 사용
$ - 그 줄의 마지막 글자로 이동하기, shift와 함께 사용
0 - 그 줄의 처음으로 이동
enter - 다음 줄의 첫 글자로 이동하기
+ - 다음 줄의 첫 글자로 이동
- - 윗줄의 첫 글자로 이동하기
삭제 키의 종류
x - dl 커서 위치의 글자 삭제
X - dh 커서 바로 앞의 글자 삭제
dw - 한 단어를 삭제
d0 - 커서 위치부터 줄의 처음까지 삭제
D - d$ 커서 위치부터 줄의 끝까지 삭제
dd - 커서가 있는 줄을 삭제
dj - 커서가 있는 줄과 그 다음 줄을 삭제
dk - 커서가 있는 줄과 그 앞줄을 삭제
수정 키의 종류
r - 커서 위치의 한 글자 수정하기
R - 커서 위치부터 esc를 누를 때까지 다른 글자로 수정하기. 단, 같은 줄에만 해당
s - 커서 위치의 한 글자를 여러 글자로 수정하기
ch - 커서 바로 앞의 한 글자를 여러 글자로 수정하기
cw - 커서 위치의 한 단어를 수정하기
c0 - 커서 위치부터 줄의 처음까지 수정하기
C - 커서 위치부터 줄의 끝까지 수정하기
cc - 커서가 있는 줄을 수정하기
cj - 커서가 있는 줄과 그 다음 줄을 수정하기
ck - 커서가 있는 줄과 그 앞줄을 수정하기
복사와 붙여넣기
yw - 커서 위치부터 단어의 끝까지 복사하기
y0 - 커서 위치부터 줄의 처음까지 복사하기
y$ - 커서 위치부터 줄의 끝까지 복사하기
yy - 커서가 있는 줄을 복사하기
yj - 커서가 있는 줄과 그 다음 줄을 복사하기
yk - 커서가 있는 줄과 그 앞줄을 복사하기
p - 커서의 다음 위치에 붙여넣기
P - 커서가 있는 위치에 붙여넣기
작업취소명령
u - 작업 취소하기(undo)
U - 그 줄에 행해진 작업 모두 취소하기
. - 조금 전에 했던 명령을 반복하기
================================================
* 줄 번호 매기기
각 줄의 앞에 줄 번호가 나타납니다.
*** 행 번호 설정 ***
:set nu 행 번호 표
:set nonu 행 번호 숨기기
* 원하는 곳으로의 이동
원하는 줄로 커저를 옮기고자 할 때 사용합니다.
*** 행 찾기 ***
G 화일의 마지막 행으로 가기
21G 21번째 행으로 가기
* 찾기, 바꾸기
글자, 단어 등 일정 패턴을 찾거나 다른 패턴으로 바꾸고자 할 때 사용하는 명령어입니다.
*** 탐색 및 대체 ***
/string/ 원하는 string 탐색
?string? 원하는 string 을 찾기 ㎸ 역방향으로 탐색
n string의 다음 발생 찾기
:s/문자열/새문자열/ 현재 줄에 있는 첫번째 해당 문자열을 새 문자열로 치환
:s/문자열/새문자열/g 현재 줄에 있는 모든 해당 문자열을 새 문자열로 치환
:g/문자열/명령 해당 문자열을 찾을 때마다 명령을 수행
:g/문자열/s/새문자열/g 파일 전체에 대해 해당 문자열을 새문자열로 치환
* 화면 다시 그리기
여러 종류의 시스템 메세지로 인하여 화면이 뒤섞이게 되면 편집 내용을 다시 그려 주는 명령어입니다.
*** 화면 정리 ***
Ctrl-L 불필요한 화면 내용 제거, 화면 다시 그리기
* 다른 화일 읽어 오기
다른 화일을 읽어 들이는 명령어입니다.
*** 다른 화일의 내용 삽입 ***
:r file-name 커서 다음에 화일의 내용을 읽어들임
:30 r file-name 30번째 행의 다음에 화일의 내용을 읽어서 삽입
* 저장, 종료
화일을 저장하고 편집기 프로그램을 종료하는 명령어입니다.
*** 화일 보관 및 종료 ***
:w 변경사항 보관
:w file-name file-name의 화일에 기록
:wq 변경사항 보관후 vi 종료
ZZ 변경사항 보관후 vi 종료
* vi 환경설정
:set number : 행번호 보이게 ( = :se nu)
:set nonumber : 행번호 안보이게
:set autoindent : 들여쓰기 설정
:set noautoindent : 들여쓰기 제거
:set list : 문단,조판부호 보기
:set nolist : 문단,조판부호 안보이게
:set window=30 : 한 화면당 행의 갯수 30개로 지정
:set ignorecase : 검색시 대소문자 구별 제거
:set noignorecase : 검색시 대소문자 구별
:set all : 현재 설정된 vi 모든 설정값 보기
관련링크
댓글목록
등록된 댓글이 없습니다.