사이트 내 전체검색
[linux] vi 편집기 사용 명령어
로빈아빠
https://cmd.kr/server/204 URL이 복사되었습니다.

본문

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 모든 설정값 보기

댓글목록

등록된 댓글이 없습니다.

1,139 (15/23P)

Search

Copyright © Cmd 명령어 3.144.43.194