Missing Semester -(3)

황수정·2021년 1월 5일

Missing Semester

목록 보기
3/7

[강의] https://www.youtube.com/watch?v=a6Q8Na575qc
[강의노트] https://missing-semester-kr.github.io/2020/editors/

Vim

Vim의 철학

When programming, you spend most of your time reading/editing, not writing. For this reason, Vim is a modal editor: it has different modes for inserting text vs manipulating text. Vim is programmable (with Vimscript and also other languages like Python), and Vim’s interface itself is a programming language: keystrokes (with mnemonic names) are commands, and these commands are composable. Vim avoids the use of the mouse, because it’s too slow; Vim even avoids using the arrow keys because it requires too much movement.
The end result is an editor that can match the speed at which you think.

  • 속도향상을 위해 불필요한 마우스 사용을 피함
  • 텍스트 삽입 모드와 텍스트 조작 모드가 다름

텍스트 편집

  • i 삽입 모드 시작
    그러나 텍스트를 조작 / 삭제하려면 백 스페이스 이상을 사용하고 싶습니다.
  • o/ O아래 / 위에 줄 삽입
  • d{motion} {motion} 삭제
    예 : dw단어 삭제, d$줄 끝까지 d0삭제 , 줄 시작까지 삭제
  • c{motion} {motion} 변경
    예 : cw단어 변경
  • d{motion}다음 처럼i
  • x문자 삭제 (동일 dl)
  • s대체 문자 (같음 xi)
  • 비주얼 모드 + 조작
    텍스트 선택, d삭제 또는 c변경
  • u실행 취소, 다시 실행
  • y복사 / "yank"( d복사 와 같은 다른 명령 )
  • p 붙여 넣기

    Count

    • 3w 3 단어 앞으로 이동
    • 5j 5 줄 아래로 이동
    • 7dw 7 단어 삭제

버퍼, 탭 및 창

Vim은 "버퍼"라고하는 열린 파일 세트를 유지합니다. Vim 세션에는 여러 탭이 있으며 각 탭에는 여러 창 (분할 창)이 있습니다. 각 창에는 단일 버퍼가 표시됩니다. 웹 브라우저와 같이 익숙한 다른 프로그램과 달리 버퍼와 창 사이에는 일대일 대응이 없습니다. 창은 단지 보기입니다. 주어진 버퍼는 동일한 탭 내에서도 여러 창 에서 열릴 수 있습니다. 예를 들어 파일의 서로 다른 두 부분을 동시에 볼 때 매우 편리 할 수 있습니다.
기본적으로 Vim은 단일 창을 포함하는 단일 탭으로 열립니다.

기본 적으로 하나의 창에서 열리지만 여러 창으로 열어서 보기도 가능하다.

Command-Line

  • :q 종료 (창 닫기)
  • :w 저장 ( "쓰기")
  • :wq 저장하고 종료
  • :e {name of file} 편집 할 파일 열기
  • :ls 열린 버퍼 표시
  • :help {topic} 열린 도움
  • :help :w:w명령에 대한 도움말을 엽니다.
  • :help ww운동에 대한 도움말을 엽니다
  • !를 붙이면 강제

Movement

  • 기본 동작 : hjkl(왼쪽, 아래, 위, 오른쪽)
  • 단어 : w(다음 단어), b(단어 시작), e(단어 끝)
  • 줄 : 0(줄 시작), ^(공백이 아닌 첫 번째 문자), $(줄 끝)
  • 화면 : H( 화면 상단), M(화면 중간), L(화면 하단)
  • 스크롤 : Ctrl-u(위로), Ctrl-d(아래로)
  • 파일 : gg( 파일 시작), G(파일 끝)
  • 줄 번호 : :{number}또는 {number}G(줄 {number})
  • 기타 : %(해당 항목)
  • 찾기 : f{character}, t{character}, F{character},T{character}
    현재 줄에서 앞으로 / 뒤로 {character} 찾기 / 찾기
    ,/ ;경기 탐색 용
  • 검색 : /{regex}, n/ N일치 항목 탐색

profile
알고리즘 , 웹 공부 중인 개발자 지망생

0개의 댓글