[VI/VIM] Vi명령어 / Vim명령어 / Command / Vi 간단 정리
2022. 5. 11. 14:06ㆍ🧑🏻💻/Unix
VI = VIM(Vi Improved)
VI는 터미널 환경에서 많이 사용되는 텍스트 에디터.
$ alias
VI 사용 모드
Vi는 4가지의 모드(Command, Input, EX, Visual)가 있습니다. 각 모드의 상태는 좌측하단에 출력되는 상태의 이름을 이용하여 확인 가능.
Command : Vi 실행 기본 상태, ESC 키를 입력하여 모드 설정
Input : 명령모드에서 i,a 등의 입력 키를 이용하여 Input mode로 진입
EX : 명령모드에서 [ : ] 콜론키를 입력하여 진입
Visual : 명령모드에서 [ v ] 키를 입력하여 진입, 블록지정 모드
* vi 에디터 사용중, [ ESC ] 키를 두번 누르면 무조건 vi 명령(command) 모드가 됩니다.
명령어 및 단축키
이동 - 명령모드
[ j ] 상 | ||
[ h ] 좌 | [ k ] 하 | [ l ] 우 |
빠른 위치 탐색 키 - 명령모드
KEY | 동작 | KEY | 동작 |
w | 다음 단어 시작으로 점프 | 0 | 현재 라인 시작으로 점프 (공백 포함) |
W | 다음 단어 시작으로 점프 (특수문자 포함) | ^ | 현재 라인 시작으로 점프 |
e | 다음 단어 끝으로 점프 | $ | 현재 라인 끝으로 점프 (공백 포함) |
E | 다음 단어 끝으로 점프 (특수문자 포함) | g_ | 현재 라인 끝으로 점프 |
b | 이전 단어 시작으로 점프 | gg | 첫 라인으로 점프 |
B | 이전 단어 시작으로 점프 (특수문자 포함) | G | 마지막 라인으로 점프 |
ge | 이전 단어 끝으로 점프 | /a | 문서 내의 'a'를 찾아서 이동 |
gE | 이전 단어 끝으로 점프 (특수문자 포함) | n | (검색 이동 상태에서) 다음 일치 항목으로 이동 |
gd | 지역변수 선언위치로 점프 | N | (검색 이동 상태에서) 이전 일치 항목으로 이동 |
gD | 전역변수 선언위치로 점프 | zz | 화면 위치 중간으로 조정 |
:noh
:nohlsearch #검색 후 하이라이트 끄기
자주쓰는 키 - 명령모드
KEY | 동작 | KEY | 동작 |
u | 한 단계 되돌리기 (반복 입력 가능) | . | 최근 명령어 반복 |
ctrl + r | 되돌리기를 되돌리기 (반복 입력 가능) | yy | 커서 위치의 라인 버퍼로 복사 |
x | 커서 위치 글자 삭제 | 2yy | 커서 위치의 2라인 버퍼로 복사 |
5x | 커서 위치 포함 5글자 삭제 | p(소문자) | 버퍼에 담긴 내용을 커서 다음 라인으로 삽입 |
X | 커서 앞 글자 삭제(BackSpace) | P(대문자) | 버퍼에 담긴 내용을 커서 이전 라인으로 삽입 |
dw | 단어 지우기 | r | 글자 입력시 해당위치의 글자가 치환 |
dd | 커서 위치의 한 라인 삭제 | o(소문자) | 커서 다음 라인에 빈 라인 추가 + 입력 모드 전환 |
2dd | 커서 위치부터 2 라인 삭제 | O(대문자) | 커서 이전 라인에 빈 라인 추가 + 입력 모드 전환 |
dG | 현재 라인부터 마지막 라인 까지 삭제 | J(대문자) | 현재 라인에 공백을 주고 다음 라인을 이어 붙입니다. |
더 많은 명령어 : - VIM 주요 명령어 / 단축키
EX 모드
:%s/old/new/i # 대소문자 구분 안함
:%s/old/new/g # 모든 old -> new로 변경
:%s/old/new/c # check 하며 변경 (y/n/a/q/l)
# y : 현재 커서 변경 (다음 색인)
# n : 현재 커서는 변경하지 않음 (다음 색인)
# a : 전부 변경
# q : 색인 중지
# l : 현재 커서 변경후 색인 중지
:w # 저장하기
:w !sudo tee % # 관리자로 저장하기
:wq! # 저장하고 나가기
:q # 나가기(변경 상태라면 나가지지않음)
:q! # 나가기(변경 무시)
:wqa # 모든 탭 저장하고 나가기