[VI/VIM] Vi명령어 / Vim명령어 / Command / Vi 간단 정리

2022. 5. 11. 14:06🧑🏻‍💻/Unix

 

~ V I M ~

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			# 모든 탭 저장하고 나가기