손이 먼저 반응하는 Practical Vim을 읽고

Hyun·2024년 10월 9일
3

공부한거 정리

목록 보기
21/21
post-thumbnail

손이 먼저 반응하는 Practical Vim을 읽고

  • 책을 읽으며 잘 써먹을만한 부분들을 정리하였다.

일반 모드

  • A

    • 맨 끝으로 커서 이동 후 INSERT 모드로 변경
  • O

    • 새로운 Line을 시작한 뒤 INSERT 모드로 변경
  • s

    • 현재 커서의 값을 삭제 후 INSERT 모드로 변경
  • .

    • 마지막 수행한 명령을 반복
  • f{찾는문자}

    • 현재 행에서 문자 찾기

    • 현재 커서로 부터 가장 가까운 곳으로 먼저 이동한다.

    • F 사용 시, 현재 위치에서 앞으로 찾는다.

  • t{찾는문자}

    • 현재 행에서 문자를 찾은 뒤, 바로 이전으로 커서 이동

    • T 사용 시, 현재 위치에서 앞으로 찾는다.

찾기 명령어는 ;으로 반복 가능하고 ,으로 이전 위치로 돌아갈 수 있다.

찾기 명령어는 yf{문자} 혹은 yt{문자}와 같이 yank 명령어와 조합하여 사용할 수 있다.

  • ciw

    • 현재 커서 내 단어 삭제 후 INSERT 모드로 변경

    • ciw의 경우 단어를 둘러싼 빈칸을 제거하지 않아 좀 더 자연스럽게 INSERT 가능하다.

    • 반면 caw는 빈칸 한개를 제거하므로 앞 단어에 INSERT 입력 글자가 붙게된다.

  • daw

    • 현재 커서 내 단어 삭제

    • daw의 경우 뒤의 빈칸 한개를 제거하므로 자연스럽게 삭제 가능하다.

    • 반면 caw 는 빈칸을 제거하지 않아 두 칸의 공백이 생긴다.

  • ^

    • 현재 행의 첫 번째 문자로 이동
  • $

    • 현재 행의 마지막 문자로 이동
  • w

    • 다음 단어 시작 위치로 이동

    • W의 경우 공백 단위로 묶이는 WORD 단위 이동을 한다. (좀 더 빠른 이동)

  • b

    • 커서가 현재 단어 시작 위치가 아니라면, 현재 단어 시작 위치로 이동

    • 만약 커서가 현재 단어 시작 위치라면, 이전 단어의 시작 위치로 이동

    • B의 경우 WORD 단위 이동

  • e

    • 커서가 현재 단어의 마지막 위치가 아니라면, 현재 단어의 마지막 위치로 이동

    • 만약 커서가 현재 단어의 마지막 위치라면, 다음 단어의 마지막 위치로 이동

    • E의 경우 WORD 단위 이동

  • *

    • 커서가 위치한 단어를 바탕으로 검색하여, 다음 위치로 이동
  • /{검색어}<CR>

    • 검색어를 바탕으로 커서 이동이 가능하다.

    • n 을 누르면 다음 위치로 이동, N을 누르면 이전 위치로 이동

    • 레지스터 값을 검색어로 사용할 수 있다.

    • 정규 표현식을 사용하는 경우 /\v{검색어}와 같이 사용하여 정규표현식에 대한 이스케이프를 처리하지 않을 수 있다.

    • 정규 표현식을 사용하지 않고 literal 검색을 하려면 /\V{검색어}와 같이 사용한다.


마크

  • 마크를 직접 생성하거나, 자동으로 생성되는 마크를 이용하여 커서 위치를 빠르게 이동시킬 수 있다.

  • m{마크명}

    • 현재 커서에서 마크 생성

    • mm 이런식으로 마크를 생성하면 빠르게 만들 수 있다.

  • `{마크명} (벨로그 마크다운은 백틱 이스케이프 안됨?!)

    • 마크로 이동한다.
  • 기본 생성되는 마크들을 이용하는 방법은 다음과 같다.

    • ``

      • 마지막 이동 전 위치로 이동
    • `.

      • 마지막 변경 위치로 이동
    • `~

      • 마지막 INSERT 모드 위치로 이동

비주얼 모드

  • <Ctrl-q>

    • 블록 비주얼 모드 (윈도우에선 Ctrl-q로 동작, 일반적으로는 Ctrl-v로 동작)

    • 자유로운 비주얼 모드 선택 가능 (세로로 쭈욱 늘이는 것도 가능하다.)

    • 만약 모든 줄에 ;를 붙여주고 싶은 시나리오라면 다음과 같이 수행한다.

      • <Ctrl-q>

      • <Shift-G>

      • $

      • <Shift-A>

      • 마지막에 붙이고 싶은 문자

      • ESC

  • gv

    • 이전에 선택한 영역을 다시 선택
  • r{바꿀문자}

    • 선택한 영역을 해당 문자로 치환
  • o

    • 선택 영역내의 커서위치를 반대 방향 끝으로 이동

EX 명령

  • :를 눌러 시작하는 명령

  • EX 명령에서는 레지스터 값을 사용할 수 있다.

    • 만약 현재 커서가 위치한 단어를 EX 명령에서 사용하고 싶다면 <Ctrl-r><Ctrl-w>를 사용하면 된다.
  • @:

    • 방금 전 수행한 EX 명령을 재수행

    • EX 명령은 : 입력 후 키보드 방향키를 사용하여 히스토리를 뒤져볼 수도 있다.

  • :%s/검색 단어/치환 단어/gc

    • 가장 많이 사용하는 치환 EX 명령

    • ssubstitue 치환의 약자

    • % 는 모든 행 적용

    • g 는 현재 행에 모두 적용

    • c 는 치환 전에 확인 후 치환 적용 여부 결정

      • y
        • 타겟 치환
      • n
        • 타겟 치환 안함
      • q
        • 치환 종료
      • a
        • 현재 치환을 포함한 남은 모든 치환을 수행
    • 검색 패턴은 비워두면 이전 검색 패턴을 재사용한다.


레지스터와 복사 붙여넣기

  • VIM에서 대부분의 삭제, 치환 동작은 잘라내기로 동작한다.

    • d, c, s, x
  • 레지스터는 "{레지스터명} 와 같이 사용할 수 있고, 뒤에 쓰고 싶은 명령어를 덧붙인다.

    • 특별히 레지스터를 지정하지 않는다면 무명 레지스터에 값들이 저장되고 사용된다.

    • INSERT 모드, EX 명령 입력 시엔 <Ctrl-r>을 눌러 "입력을 대신할 수 있다.

      • INSERT 모드에선 <Ctrl-r>{레지스터명}을 통해 값을 붙여넣을 수 있다.
    • "0은 복사용 레지스터로 d, c, s, x와 같은 명령에 의해 영향을 받지 않는다.

    • "_는 블랙홀 레지스터로 이곳에 저장된 값은 바로 사라진다.

  • p

    • 복사된 값을 커서 뒤에 붙여넣는다.
  • P

    • 복사된 값을 커서 앞에 붙여넣는다.
  • 비주얼 모드 선택 후 p로 값을 붙여넣으면 변경 전 내용이 무명 레지스터에 저장된다.


출처

손이 먼저 반응하는 Practical Vim

2개의 댓글

comment-user-thumbnail
2024년 12월 1일

주먹이 먼저 반응하네요.

1개의 답글

관련 채용 정보