[기술교육] vi tutorial

vi tutorial : 김기남 책임님

여러 단축키들

단축키를 다 외워도 좋지만, 이러한 단축키가 있다는 것을 기억하고 나중에 기억 안 나면 구글링 하기

이동 관련

  • w : 다음 단어로 (앞글자로)
  • e : 다음 단어로 (끝글자로)
  • 0 : 문장의 가장 처음으로
  • $ : 문장의 가장 마지막으로
  • ctrl+f : 다음 페이지로
  • ctrl+b : 이전 페이지로
  • H, M, L : 커서를 페이지의 가장 위, 중간, 가장 아래로 이동
  • gg, [[ : 파일의 제일 처음으로
  • G, ]] : 파일의 제일 마지막으로
  • :num : num라인으로 이동 (:0, :1000 등)

입력, 수정 관련

  • cc, C : 커서가 있는 행을 지우고 에디터 모드로
  • cw : 커서가 있는 단어를 지우고 에디터 모드로
  • r : 현재 커서의 글자를 바꾸고 커맨드 모드로
  • R : insert처럼 현재 커서의 글자를 바꿀 수 있음
  • dd : 한 줄 지우고 커맨드 모드
  • dw : 한 단어 지우고 커맨드 모드
  • x : 한 글자 지우고 커맨드 모드
  • D : 현재 커서 뒤에 있는 줄 지우고 커맨드 모드
  • u : Undo
  • ctrl+r : Redo

combination

  • dG : 현재 위치부터 파일 끝까지 지워라
  • 4dw : 4단어 지우기
  • 5x : 5글자 지우기
  • 4dd : 4줄 지우기
  • . : 내가 가장 마지막에 했던 명령어 반복

search

  • /string : 아래로 단어 찾기 (/can 등)
  • ?string : 위로 단어 찾기
  • n : 다음 단어
  • N : 전 단어
  • :noh : 하이라이팅 지우기

ex 모드

  • :wq - save and quit
  • :w <filename> - save to the file
  • :q! - force quit (without saving)

reload

  • :edit, :e, :e!, :edit! : 새로 파일을 읽어들임

replace

  • :%s/string/replace
  • :%s/string/replace/[option]
  • c : interactive 모드
  • i : 대소문자 구분없이
  • :10,25s/string/replace - 10행부터 25행까지만 치환
  • :.,$s/string/replace - 현재 행부터 마지막 행까지 치환

Shell

  • :sh - terminal로 나갔다옴 (다시 돌아오려면 exit)
  • :!cmd (ex. :!ls) - 동작이 바로 실행되고 아무키나 누르면 다시 돌아옴
  • :r !cmd (ex. :r !cat test.txt) - 해당 결과를 붙여넣음

copy & paste

  • yy : copy a line
  • p : paste a line

visual block

  • v : mark the start position of buffer (블럭 지정할 수 있게 커서가 바뀜. 요즘에는 그냥 마우스로도 잡을 수 있다.)
  • d : deletion
  • y : copy
  • p : paste
  • v 누르고 영역 지정 한 다음에 {d,y,p}

customization

  • :set ai - autoindent
  • :set paste - autoindent 상태에서 paste 할때
  • :set nu - 라인 숫자 보기
  • :set no{} - 옵션 해지 (:set nonu, :set noai)
  • :set - 현재 설정 보기
  • :syntax on
  • :set showmatch - matching braces