치춘짱베리굿나이스

Vim 에디터 단축키 모음 & 팁 본문

UNIX 환경/기타

Vim 에디터 단축키 모음 & 팁

치춘 2021. 3. 21. 03:15

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