[Linux] vi, vim

vi 모드

vi는 명령 모드와 마지막 행 모드가 있다.

명령 모드는 화면 가운데에 커서가 있는 경우이고,

마지막 행 모드는 ESC를 누르고 : 입력 후 저장 등을 할 수 있는 모드이다. 쓰다보면 감이 온다.

명령 모드

i: 커서 위치에 삽입
a: 커서 다음 위치에 삽입
o: 커서 아래 줄에 삽입

x: 글자 1개 삭제
dw: 단어 1개 삭제
dd: 한 줄 삭제

r: 한 문자 변경
cc: 줄의 내용 변경

u: 명령 취소 (Ctrl + Z)

yy: 현재 줄 복사
p: 붙여 넣기
dd: 잘라내기

k: 커서 위로 ↑
j: 커서 아래로 ↓
h: 커서 왼쪽으로 ←
l: 커서 오른쪽으로 →

0: 줄의 맨 앞으로 (Home)
$: 줄의 맨 뒤로 (End)

(: 문장의 처음
): 문장의 끝
{: 문단의 처음
}: 문단의 끝층

마지막 행 모드

 w: 파일 저장
 w \[파일명\]: \[파일명\]으로 저장

 q: 저장하지 않고 종료
 q!: 강제 종료
 wq: 저장하고 종료
 wq!: 강제로 저장하고 종료

vim

# vi 명령과 동일하다.

gg : 문서 맨 앞으로 이동
G : 파일 끝으로 이동

/ : 검색 (n은 다음 N은 이전)
df( : (전까지 삭제

. : 이전 명령 반복 실행
u : 되감기
ctrl+R : 앞감기

d : 삭제
y : 복사
c : 변경
p : 붙여 넣기
*p : 클립보드에서 붙여 넣기
yy : 현재 줄 복사
dd : 현재 줄 잘라내기
x : 한글자 지우기

aw : 글자 하나
at : tag 하나
as : 문장 하나
ap : 문단 하나
ab : 단어 하나

it : 테그 안 내용
i" : "" 안의 내용
ip : 문단 안의 내용

{ : 문단 시작
} : 문단 끝


f문자 - 문자의 위치로 이동 ; 를 누르면 계속 이동 
F문자 - 백워드로 문자의 위치로 이동 
t문자 - 문자의 앞위치로 이동 
T문자 - 백워드방향으로 문자의 앞위치로 이동 
* - 현재 단어를 포워드 방향으로 찾기 
# - 현재 단어를 백워드 방향으로 찾기 
Ctrl + f - 다음 페이지 이동 
Ctrl + b - 이전 페이지 이동 
Ctrl + u - 페이지절반만큼 다음으로 이동 
Ctrl + d - 페이지절반만큼 이전으로 이동 
H - 현재 화면의 맨 위라인으로 이동 
M - 현재 화면의 중간 라인으로 이동 
L - 현재 화면의 마지막 라인으로 이동 
]] - 포워드 방향으로 여는 컬리 블레이스( { )로 이동 
[[ - 백워드 방향으로 여는 컬리 블레이스( { )로 이동 
][ - 포워드 방향으로 닫는 컬리 블레이스( { )로 이동 
[] - 백워드 방향으로 닫는 컬리 블레이스( { )로 이동

% - {}나 ()에서 현재 괄호의 짝으로 이동 
dw - 단어 잘라내기 
r - 현재 글자 교체하기 
x - 현재 글자 지우기 
X - 앞의 글자 지우기 
> - 들여쓰기 
< - 내어쓰기 
J - 다음 라인을 현재 줄의 끝으로 이어 붙힘 
~ - 선택 문자 대소문자 변경 
Ctrl + A - 숫자를 증가시키기 
Ctrl + X - 숫자를 감소시키기

zc - 코드 접기(fold) 
zo - 접힌 코드 펼치기 
zd - fold 지우기 
zR - 접힌 코드 모두 펼치기 
zM - 코드 모두 접기 
zD - 모든 fold 지우기