치춘짱베리굿나이스
Vim 에디터 단축키 모음 & 팁 본문
Vim 에디터 단축키
참고로 겁.나.어.렵.습.니.다
☆, ♤, ♡는 임의의 숫자를 의미함
(외울수 있을지도 의문스럽다)
바쁜 사람을 위한 자주쓰는 단축키 모음
- h : ← (좌)
- j : ↓ (하)
- k : ↑ (상)
- l : → (우)
- i : 현재 커서가 위치한 문자 앞에 insert 시작
- o : 현재 커서 아래에 빈 줄 삽입후 insert 시작
- esc : 편집모드 종료 (명령어모드 시작)
- u : 이전 명령 취소
- dd : 해당 커서가 위치한 행 삭제
- p : 캐시에 저장한 값 현재 행 아래에 붙여넣기
- v키 + 커서 : 블럭 선택 모드 (커서는 hjkl, ←↓↑→ 모두 가능)
- 선택 후 y 누르면 캐시에 저장됨 (복사됨)
- 원하는 곳에 커서 놓고 p 누르면 해당 블럭이 붙여넣어짐
- /문자열 : 오른쪽 아래 방향으로 문자열 검색
- n : 위에서 검색했던 문자열 다음 방향 (오른쪽 아래) 으로 계속 검색
- :w : 변경사항 저장
- :wq : 변경사항 저장 후 vi 에디터 종료
- q! : 변경사항 저장하지 않고 vi 에디터 종료
Vim 사용 전 설정사항 (선택)
- :set nu : 화면 왼쪽에 번호 보이기
- :set nonu : 화면 왼쪽에 번호 숨기기
- 탭 설정
- 에디터 설정
- 이때 set cindent, set smartindent 설정을 해두면 자동 들여쓰기가 활성화된다
- 파이썬은 플러그인 설치 필요
- ctrl + l 누르면 불필요한 화면 (이전에 썼던 명령어 등) 정리
커서 이동
- h : ← (좌)
- j : ↓ (하)
- k : ↑ (상)
- l : → (우)
문장 단위 커서 이동
- ^ : 줄의 맨 앞 위치로 커서이동
- $ : 줄의 맨 뒤 위치 로 커서 이동
- 0 : 구문 맨 앞으로 커서이동
- gg : 문서 맨 앞으로 커서 이동
- shift + g : 문서 맨 뒤로 커서 이동
- ☆ + shift + g : 문서의 ☆번째 행으로 이동
- ctrl + g : 현재 커서가 위치한 행 정보
- (파일이름, 전체 줄 개수, 현재 커서가 위치한 행 비율)
- enter : 아래줄로 커서 이동
- backspace : 한 문자 왼쪽으로 커서 이동 (한칸)
- space : 한 문자 오른쪽으로 커서 이동 (한칸)
화면 단위 커서 이동
- shift + h : 화면상 보이는 코드의 맨 처음으로 커서 이동
- shift + m : 화면상 보이는 코드의 중간 지점으로 커서 이동
- shift + l : 화면상 보이는 코드의 맨 끝으로 커서 이동
- ctrl + i : 한 화면 위로 커서 이동
- ctrl + b : 한 화면 아래로 커서 이동
- ctrl + d : 반 화면 위로 커서 이동
- ctrl + u : 반 화면 아래로 커서 이동
- ctrl + e : 한 줄 위로 스크롤
- ctrl + y : 한 줄 아래로 스크롤
단어 단위 커서 이동
- w : 오른쪽에 위치한 단어의 맨 앞 글자로 커서 이동
- 예시: mkdir bak의 mkdir에서 w를 누를 경우 b로 커서 이동
- b : 왼쪽에 위치한 단어의 맨 앞 글자로 커서 이동
- 예시: mkdir bak의 bak에서 b를 누를 경우 m으로 커서 이동
- e : 단어의 맨 뒤 글자로 커서 이동
- 예시: mkdir에서 e를 누를 경우 r로 커서 이동
괄호 단위 커서 이동
- ]] : 커서 앞쪽에 있는 {로 이동
- [[ : 커서 앞쪽에 있는 }로 이동
편집 모드로 변경
- i : 현재 커서가 위치한 문자 앞에 insert 시작
- shift + i : 현재 커서가 위치한 줄 맨 앞에 insert 시작
- a : 현재 커서가 위치한 문자 뒤에 insert 시작
- shift + a : 현재 커서가 위치한 줄 맨 앞에 insert 시작
- o : 현재 커서 아래에 빈 줄 삽입후 insert 시작
- shift + o : 현재 커서 위에 빈 줄 삽입후 insert 시작
- insert 모드로 변경되면 기존 텍스트 에디터와 비슷하게 tab, enter 이용해서 편집 가능
- esc : 편집모드 종료 (명령어모드 시작)
- cw : 해당 커서가 위치한 곳의 단어 삭제 후 insert 시작
- cc : 해당 커서가 위치한 곳의 행 삭제 후 insert 시작
- shift + c : 해당 커서가 위치한 곳부터 행 삭제 후 insert 시작
- s : 해당 커서가 위치한 문자 하나 삭제 후 insert 시작
- shift + s : 해당 커서가 위치한 곳의 행 삭제 후 insert 시작
- r + 문자열 : 해당 커서가 위치한 곳의 문자를 입력한 문자로 변경
편집 취소 & 재실행
- u : 이전 명령 취소
- ctrl + r : 취소한 명령 재실행
- . : 마지막으로 수행한 명령 재실행
문자 조작
- shift + j : 현재 커서가 위치한 행과 바로 아래 행 결합 (줄옮김 삭제)
- ~ : 대소문자 변경
- xp : 커서 위치 문자와 오른쪽 문자 위치교환
- x : 커서 위치 문자 삭제
- ☆ + x : 커서 위치 포함 ☆개의 문자 삭제
- dw : 해당 커서가 위치한 단어 삭제
- db : 해당 커서가 위치한 곳에서 왼쪽 단어 삭제
- dd : 해당 커서가 위치한 행 삭제
- ☆ : dd : 해당 커서가 위치한 줄 포함 ☆개의 줄 삭제
- shift + d : 해당 커서가 위치한 곳부터 행 삭제
- :☆, ♤d : ☆ 번째 행부터 ♤ 번째 행까지 삭제
탭 (tab) 삽입 및 설정
- ☆>> : 현재 행부터 ☆개 행에 탭 1개 삽입
- ☆<< : 현재 행부터 ☆개 행에 탭 1개 삭제
복사, 삽입, 이동
- yy : 커서가 위치한 줄 복사 (캐시에 저장)
- yh : 커서의 왼쪽 문자 복사 (캐시에 저장)
- yl : 커서의 오른쪽 문자 복사 (캐시에 저장)
- yj : 커서가 위치한 줄과 아랫줄 함께 복사 (캐시에 저장)
- yk : 커서가 위치한 줄과 윗줄 함께 복사 (캐시에 저장)
- p : 캐시에 저장한 값 현재 행 아래에 붙여넣기
- shift + p : 캐시에 저장한 값 현재 행 위에 붙여넣기
- :☆, ♤ co ♡ : ☆ 번째 행부터 ♤ 번째 행까지 복사해서 ♡ 행 다음에 붙여넣기
- :☆, ♤ m ♡ : ☆ 번째 행부터 ♤ 번째 행까지를 ♡ 행 위로 이동
- v키 + 커서 : 블럭 선택 모드 (커서는 hjkl, ←↓↑→ 모두 가능)
- 선택 후 y 누르면 캐시에 저장됨 (복사됨)
- 원하는 곳에 커서 놓고 p 누르면 해당 블럭이 붙여넣어짐
검색과 대체
- /문자열 : 오른쪽 아래 방향으로 문자열 검색
- ?문자열 : 왼쪽 위 방향으로 문자열 검색
- 문자열 검색 후 esc 누르면 아래 명령어 사용 가능
- n : 위에서 검색했던 문자열 다음 방향 (오른쪽 아래) 으로 계속 검색
- shift + n : 위에서 검색했던 문자열 이전 방향 (왼쪽 위) 으로 계속 검색
- :s/문자열1/문자열2 : 행 내에서 검색되는 모든 문자열1을 문자열2로 대체
- :☆,.s/문자열1/문자열2 : ☆행부터 현재 커서가 위치한 행까지 검색되는 모든 문자열1을 문자열2로 대체
- :%s/문자열1/문자열2/g : 문서 내에서 검색되는 모든 문자열1을 문자열2로 대체
- .$/문자열1/문자열2 : 커서 위치부터 파일의 끝까지 검색되는 모든 문자열1을 문자열2로 대체
저장 및 종료
- :w : 변경사항 저장
- :w 파일명 : 변경사항을 입력한 파일명으로 저장
- :wq : 변경사항 저장 후 vi 에디터 종료
- shift + z 두번 : 변경사항 저장 후 vi 에디터 종료 (:wq와 동일)
- q! : 변경사항 저장하지 않고 vi 에디터 종료
- q : 수정한 파일 저장하지 않고 vi 에디터 종료
- e! : 수정한 것을 전부 되돌리고 편집 재시작
화면 분할 및 탭
- :new : 가로로 분할된 창 열기 (새 파일)
- :vs : 세로로 분할된 창 열기 (새 파일)
- ctrl + w : 분할된 창 간 이동
- :tabnew: 새로운 탭 열기
- :e 경로명 : 해당 경로 내에서 현재 탭에서 편집할 파일 탐색
- gt : 다음 탭으로 이동
- g + shift + t : 이전 탭으로 이동
행 선택 시의 기호
- . : 현재 행
- % 전체 행
- $ : 파일의 맨 끝 행
- ☆,♤ : ☆행부터 ♤행까지
- *1, $ : 파일의 처음부터 맨 끝행까지 (파일 전체 = %)
Comments