명령 모드에서 명령어
i : 현재 커서 위치에 삽입 (입력모드로 넘어감)
a : 현재 커서 바로 다음위치에 삽입 (입력모드로 넘어감)
o : 현재 줄 다음 위치에 삽입 (입력모드로 넘어감)
x : 커서가 위치한 곳의 글자 1개 삭제. (5x : 문자 5개 삭제)
dw : 커서가 위치한 곳에서 부터 단어 삭제 (커서가 위치한 곳 부터 띄어쓰기 까지)
dd : 커서가 위치한 곳의 한 줄 삭제 (삭제이지만, p로 복구가능)
u : 방금 한 명령 취소 (ctrl + z 라고 생각하면 됩니다)
yy : 현재 줄을 버퍼로 복사 (한 줄을 ctrl + c 한다고 생각하면 됩니다.)
5줄 복사 : 5yy
p : 현재 커서가 있는 줄 바로 아래에 버퍼 내용 붙여넣기 (이전에 복사한 줄을 현재 커서 아래부터 ctrl + v 한다고 생각하면 됩니다.)
5dd를 이용해서 다섯줄을 지운 것도 p 한번으로 붙여넣기 가능합니다.
그렇다면 : 잘라내기 dd -> 붙여넣기 p
(N)dd : N 행 삭제, 잘라내기임 => vi에서 여러줄을 삭제하고 싶다면 (N)dd 를 사용
k : 위
j : 아래로
l : 오른쪽
h : 왼쪽
0 : 커서가 있는 줄의 맨 앞으로 감
$ : 커서가 있는 줄의 맨 뒤로 감
( : 현재 문장의 처음
) : 현재 문장의 끝
{ : 현재 문단의 처음
} : 현재 문단의 끝
숫자- : 숫자 만큼 윗 줄로 이동
숫자+ : 숫자 만큼 아래 줄로 이동
G : 파일의 끝으로 이동.대문자로**(Shift + g)
r : 한 문자 변경
cc : 커서가 있는 그 줄의 내용 변경
마지막 행 모드에서 명령어
w : 현재 파일명으로 파일 저장. (저장만)
w [파일명] : 입력한 파일명으로 파일 저장. (저장만)
q : vi 종료 (저장 x)
q! : vi 강제 종료 ( ! 가 붙으면 강제로 수행)
wq : 저장 후 종료
wq! : 강제 저장 후 종료
f [파일명] : 파일이름을 [파일명]으로 변경, 예시 : f abc.txt
숫자 : 해당 라인으로 커서 이동
$ : 파일의 맨 끝 줄로 이동
e! : 마지막 저장 이후 모든 편집 취소
/문자열 : 현재 커서 위치에서 부터파일 앞쪽으로 문자열 탐색
?문자열 : 현재 커서 위치에서 부터 파일 뒤쪽으로 문자열 탐색
set nu : vi 라인 번호 출력
set nonu : vi 라인 번호 출력 취소
출처: https://blockdmask.tistory.com/25 [개발자 지망생]
출처: https://iamfreeman.tistory.com/entry/vi-vim-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-%EB%8B%A8%EC%B6%95%ED%82%A4-%EB%AA%A8%EC%9D%8C-%EB%AA%A9%EB%A1%9D
좋은 글 감사합니다! 😊