[Linux] Vim 에디터 명령어

calm0_0·2023년 10월 4일

Vim 이란?


vi(visual editor)는 유닉스, 리눅스에서 가장 많이 사용하는 에디터이며, vim(vi improved)은 vi에 추가 확장기능을 부여한 에디터이다.

설치 및 실행


리눅스에는 vim 에디터가 설치되어 있다. 만약 설치되어 있지 않다면, 다음 명령어를 사용한다.

$ apt insall vim

vim을 실행하려면 다음 명령어를 사용한다.

# vim [파일명]
$ vim example.txt

이때 해당 파일을 열거나 파일이 없다면 만들어서 연다.


vi 모드


vi에서는 명령 모드, 입력 모드, 마지막 행 모드(ex 명령 모드) 3가지 모드가 존재하낟.

명령 모드

  • vi를 실행하면 접하는 기본이 되는 모드로 커서의 이동, 수정, 삭제, 복사, 붙여넣기, 탐색 등 작업을 수행한다.
  • 입력 모드 전환키인 i, a, o, I, A, O 등을 입력하면 입력 모드로 전환
  • Esc 키를 누르면 다시 명령 모드로 전환

입력 모드

  • 텍스트를 입력하여 문서를 작성할 수 있는 모드
  • 입력 모드로 전환 시 화면 아래에 '--INSERT--' 라고 표시된다.

마지막행 모드 (ex 명령 모드)

  • 명령 모드에서 ':' 키를 입력했을 때 화면 맨 아랫 줄에서 명령을 수행하는 모드
  • 저장, 종료, 탐색, 치환 및 vi 환경 설정 등의 역할 수행

Vim 명령어


vi 열기 명령어

vi {파일명} : 파일 열기, 만일 존재하는 파일이면 수정, 존재하지 않는 파일이면 생성

$ vi example.txt
  • vi {행번호} {파일명} : 파일을 열고, 입력한 행으로 커서 이동
$ vi -10 example.txt
  • vi /"{검색 문자열}" {파일명} : 검색 문자열의 처음 발생 단어부터 열기 이동
$ vi -/"test" example.txt
  • vi -r {파일명} : 손상된 파일 회복
  • view {파일명} : 읽기 전용으로 파일 열기

커서 이동

  • h (←) : 왼쪽으로 커서 이동
  • j (↓) : 아래로 커서 이동
  • k (↑) : 위로 커서 이동
  • l (→) : 오른쪽으로 커서 이동

  • w : 오른쪽 한 단어의 끝 부분으로 커서 이동
  • e : 오른쪽 한 단어의 앞 부분으로 커서 이동
  • b : 왼쪽 한 단어의 앞 부분으로 커서 이동
  • W : 오른쪽 한 단어의 끝 부분으로 커서 이동

  • Enter / + : 한 행 아래로 커서 이동
  • Back space : 한 문자 왼쪽으로 커서 이동
  • Space Bar : 한 문자 오른쪽으로 커서 이동
  • ^ / 0 : 행의 맨 왼쪽으로 커서 이동
  • $ : 행의 맨 오른쪽으로 커서 이동

  • H : 화면의 맨 위로 이동
  • M : 화면의 중간으로 이동
  • L : 화면의 맨 아래로 이동

화면 이동

  • Ctrl + u : 화면의 절반 만큼 위로 이동
  • Ctrl + d : 화면의 절반 만큼 아래로 이동
  • Ctrl + b / Page Up : 한 화면 위로 이동
  • Ctrl + f / Page Down : 한 화면 아래로 이동
  • Ctrl + y : 화면을 한 행 위로 이동
  • Ctrl + e : 화면을 한 행 아래로 이동

입력 모드로 전환

  • i : 현재 커서 앞에서 입력
  • a : 현재 커서 뒤에서 입력
  • o : 현재 커서 아래 행에 개행하고 입력
  • I : 현재 커서 행의 처음에서 입력
  • A : 현재 커서 행의 끝에서 입력
  • O : 현재 커서 위 행에 개행하고 입력

라인 이동

  • gg : 파일의 맨 처음 행으로 가기
  • G : 파일의 맨 마지막 행으로 가기
  • {#}G : 파일의 #번째 행으로 가기

내용 변경

  • cw : 단어 변경
  • cc : 행 변경
  • C : 커서 오른쪽의 행 변경
  • s : 커서가 위치한 문자열 대체
  • S : 커서가 위치한 라인의 문자열 대체
  • r : 커서 위치 문자를 다른 문자로 대체

내용 삭제

  • nx : 커서가 있는 위치부터 n개의 문자를 삭제
  • dw : 현재 커서에 있는 한 단어 삭제
  • dd : 커서가 있는 라인(행) 삭제
  • ndd : 커서가 있는 라인부터 n개의 라인 삭제
  • :{a},{b}d a~b번째 행 삭제

되돌리기

  • u : 이전 명령 취소 (되돌리기)
  • U : 행 변경 사항 취소, 이전의 최종 행 취소
  • . : 이전 최종 명령 반복

검색

  • /{검색할 문자열} : 오른쪽 아래 방향으로 문자열 검색
  • ?{검색할 문자열} : 왼쪽 위 방향으로 문자열 검색
  • n : 문자열의 다음으로 계속 검색
  • N : 문자열의 이전으로 계속 검색

내용 바꾸기

  • :s/{대상문자열}/{바꿀문자열} : 커서가 위치한 행에서 첫번째로 나오는 대상문자열을 바꿀문자열로 치환
  • :%s{대상문자열}/{바꿀문자열} : 파일 전체에서 모든 대상문자열을 바꿀문자열로 치환
  • :{범위}s{대상문자열}/{바꿀문자열} : 범위 내 모든 각 행에서 첫번쨰로 나오는 대상문자열을 바꿀문자열로 치환
  • :{범위}s{대상문자열}/{바꿀문자열}g : 범위 내 모든 행에서 대상문자열을 바꿀문자열로 치환
  • :{범위}s{대상문자열}/{바꿀문자열}gc : 범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꾸되 수정할 지 여부를 묻는다
:5, 10s/old/new/g  # 5~10행까지 모든 old를 new로 교체 

저장 및 종료

  • :w : 변경사항 저장
  • :w {파일명} : 변경사항 입력한 파일명으로 저장
  • :wq : 변경사항 보관 후 vi 종료.
  • :q! : 변경 내용을 저장하지 않고 종료
  • :q : 작업한게 없으면 그대로 종료
  • :e! : 마지막으로 저장했던 내용 이후의 수정한 것들을 취소하고 다시 편집상태로


Reference
https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-Vi-Vim-%EC%97%90%EB%94%94%ED%84%B0-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC
https://winterbloooom.github.io/computer%20science/linux/2022/02/23/vim.html


profile
공부한 내용들을 정리하는 블로그

0개의 댓글