[Linux] VI editor 완전 정복하기

Sujung Shin·2023년 10월 27일
0

VI editor

최초 실행 시 vi [생성파일이름] 으로 진입한다.

VI mode

(1) 명령 모드


처음 진입 시 명령 모드로 진입하게 된다.
명령 모드에서 편집 모드로 전환하려면 i a o 키를 이용하여 진입하고,
명령 모드에서 Ex 모드로 전환하려면 : \ ? 키를 이용하여 진입한다.

(2) Ex 모드


Ex 모드에서 명령 모드로 가려면 [Esc]키 를 이용하면 된다.

(3) 편집 모드


편집 모드에서 명령 모드로 가려면 [Esc]키를 이용하면 된다.

실습

신규 파일 생성 및 저장

명령 모드로 진입 -> i 키 이용하여 편집 모드로 전환 -> 내용 입력 -> :wq이용하여 ex모드에서 저장 후 종료

기존 파일 열기 후 저장하지 않고 종료

명령 모드로 진입 -> 내용 입력 -> :q! 입력하여 강제종료

🗂️ 파일 저장/종료 관련 명령어들

  • Ex 모드에서 작동함
    기본적으로 w가 저장, q 종료.

🖲️ 커서 이동

명령 모드

  1. h(←), j(↓), k(↑), l(→) : 좌하상우로 이동 가능
  2. ^, $ : 해당 열의 첫 글자, 마지막 글자로 이동
  3. gg, G : 해당 문서의 첫 행, 마지막 행 이동
  4. w(→), b(←): 단어의 뒤, 앞

Ex 모드(행 단위 이동)

  1. :0, :$ - 현재 문서의 첫 행, 마지막 행 이동
  2. :nn, :. - 현재 문서의 nn번째 행, 현재 행 이동

❌ 삭제 기능

명령 모드 삭제 기능

  1. x: 커서에서 삭제
  2. xb: 커서에서 단어 끝까지 삭제
  3. dd : 커서가 위치한 현재 행 삭제
  4. dG : 커서가 위치한 현재 행부터 문서 끝까지 삭제
  5. dgg : 커서가 위치한 현재 행부터 문서 첫 부분까지 삭제
  6. d$ : 커서가 위치한 곳부터 현재 행 끝까지 삭제
  7. d^ : 커서가 위치한 곳부터 행 처음까지 삭제

ex 모드 삭제 기능(행 단위 삭제)

  1. :12d : 12번째 행 삭제
  2. :1, 100d : 1부터 100번째 행 삭제
  3. 1, $d: 모든 행 삭제
  4. :+10d: 현재 행으로부터 10행 뒤에 위치한 행을 삭제
  5. :-2, d : 커서가 위치한 현재 행의 2행 전부터 현재 행까지 삭제

🖨️ 복사 기능


  • {count}y{motion} 형식
  1. yy Y : 한 줄 복사
  2. 2yy : 현재 행 부터 2행 복사
  3. 10yy: 현재 행 부터 10행 복사
  4. yw : 현재 커서 위치부터 단어까지 복사
  5. yG: 현재 행 부터 문서 끝까지 복사
  6. ygg: 현재 행 부터 문서 첫 부분까지 복사

📼 붙여넣기 기능


  • 명령 모드에서 p혹은 P
  1. p: 현재 행 아래에 붙여넣기
  2. P: 현재 행 위에 붙여넣기
    3.2p: 현재 행 아래에 2번 반복해서 붙여넣기

텍스트 변경 기능

r: 1글자 변경
R: 현재 커서 위치에서부터 수정
cw: 한 단어 변경
cc: 한 줄 변경, 현재 행을 모두 지운 후 입력 모드

일괄 텍스트 변경

:s/aaaa/bbbb: 현재 행의 aaaa를 bbbb로 변경
:s/aa/bb/g: 현재 행의 aa를 bb로 모두 변경
:1, $s/00/11/g: 전체 파일에서 00을 11로 변경

vi 환경 설정

  1. :set background=dark|light
    어둡거나 밝은 화면을 기준으로 배색
  2. :set number
    행 앞에 번호 표시
  3. :set cursorline
    커서가 위치한 행을 표시
  4. :set cursorcolumn
    커서가 위치한 열을 표시
profile
백문이불여일타

0개의 댓글

관련 채용 정보