컴퓨터공부/Linux & Unix

vi 단축키

achivenKakao 2007. 6. 7. 00:09
[07.08.27] 업데이트 됨

s는 한개 제거 하면서 글쓰기
S는 한줄 지우면서 글쓰기
cw는 현재 커서 뒤에것 다 지우면서 글쓰기(지우는 단위는 단어) - change word
C는 현재 커서 뒤에것 다 지우면서 글쓰기(지우는 단위는 줄 - 한줄 통째로 지워진다.)
S는 현재 줄 제거 하면서 글쓰기
dw는 현재 커서 뒤에것 다 지우기 (지우는 단위는 단어) - 끝나면 메뉴 모드 - delete word

w - word
d - delete
c - change

+

< vi에서 열은 파일 전체선택하기 >
gg 는 파일을 제일 처음으로 옮기는 명령이다.
G 는 파일의 제일 끝으로 옮기는 명령이다.
v, V 는 블럭 지정 명령이다.
VG 제일 처음에서 전체를 선택할때 사용
vgg 는 제일 끝에서 전체를 선택할 때 사용

+

vi에서 탐색 후 확인하고 대체
:g/search-string/s//replace-string/gc?


+

vi 편집기 사용법


vi 시작
vi filename 파일열기, 작성
vi +18 filename 18행으로 파일 열기
vi +/"string" fn "string"의 처음 발생 단어부터
vi -r filename 손상된 파일 회복
view filename 읽기 전용으로 파일 열기
커서명령(이동)
h(←) 왼쪽으로 커서 이동
j(↓) 아래로 커서 이동
k(↑) 위로 커서 이동
l(→) 오른쪽으로 커서 이동
w 한 단어 오른 쪽으로 커서 이동?
b 한 단어 왼쪽으로 커서 이동?
Return 한 행 아래로 커서 이동
Back Space 한 문자 왼쪽으로 커서 이동
Space Bar 한 문자 오른 쪽으로 커서 이동
H 화면의 맨위로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl + F 한 화면 앞으로 이동
Ctrl + D 반 화면 앞으로 이동
Ctrl + B 한 화면 뒤로 이동
Ctrl + U 반 화면 뒤로 이동
문자와 행 삽입
a 커서 오른쪽에 문자 삽입
A 커서 오른쪽, 행의 끝에 문자 삽입
i 커서 왼쪽에 문자 삽입
I 커서 왼쪽, 행의 처음에 문자 삽입
o 커서 아래에 행 삽입
O 커서 위에 행 삽입
텍스트 변경
cw (종료:ESC) 단어변경
cc (종료:ESC) 행 변경
C  (종료:ESC) 커서 오른쪽의 행 변경
s   (종료:ESC) 커서가 위치한 문자열 대체
r 커서 위치의 문자를 다른 문자로 대체
r - Return 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자 교환
~ 문자형(대.소문자)변경
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종 행 취소
. 이전 최종 명령 반복

텍스트 삭제
x 문자 삭제
dw 단어 삭제
dd 행 삭제
D 커서 오른쪽 행 삭제
:5,10 d 5-10 번째 행 삭제
텍스트 복사 및 이동
yy 행 yank 또는 복사
Y 행 yank 또는 복사?
dd 행 삭제
P yank되거나 삭제된 행 현재 행 위에 삽입
p yank되거나 삭제된 행 현재 행 아래에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 위로 이동
행 번호 설정
:set nu 행 번호 표시
:set nonu 행 번호 숨기기
행 찾기
G 파일의 마지막 행으로 가기
21G 파일의 21번째 행을 가기
탐사 및 대체
/string/ string 탐색
?string? string 역방향 탐색
n(N) string의 다음(이전) 계속 탐색
:g/search-string/s//replace-string/gc?
각 발생 탐색 후 확인하고 대체
:s/srt/rep 현재 행의 str을 rep로 대체
:1,.s/str/rep/ 1부터 현재 행의 str을 rep로 대체
:%s/str/rep/g ?파일 전체 str을 rep로 전부 대체
화면정리
:Ctrl-1 불필요한 화면정리 후 다시 표시
파일을 파일로 삽입
:r filename 커서 다음에 파일 삽입
:34 r filename 파일을 34번째 행 다음에 삽입
보관 및 종료
:w 변경사항 보관
:w filename 버퍼를 파일로 보관
:wq 변경사항 보관 후 vi 종료
ZZ 변경사항 보관 후 vi 종료?
:q! 변경사항 보관하지 않고 종료