[Linux] Vi/Vim

버발자·2024년 12월 3일

Linux

목록 보기
3/3

기본 에디터 삼대장의 대결

Vi/Vim이란?

Vi는 유닉스 계열 시스템에서 기본으로 제공되는 텍스트 편집기이며, 개선된 버전으로, 더 많은 기능과 편리함을 제공하는 강력한 텍스트 편집기 Vim(Vi IMproved) 이 있습니다. Vi와 Vim은 간단한 텍스트 편집부터 프로그래밍 작업까지 다양한 용도로 사용할 수 있는 유연성과 확장성을 제공합니다.

[예시] 워드 프로세서와 달리 GUI 없이 키보드 중심으로 작업


Vi/Vim의 주요 특징

  1. 모드 기반 편집: Vi와 Vim은 주로 세 가지 모드로 작동합니다.

    • 명령 모드: 텍스트 이동, 복사, 삭제 등의 명령 실행
    • 입력 모드: 텍스트 입력
    • 명령줄 모드: 저장, 검색, 설정 변경 등 수행

    Esc 키를 사용해 모드 간 전환이 가능합니다.

  2. 경량성과 속도: 시스템 자원을 적게 소모하며 대규모 파일도 빠르게 처리합니다.

  3. 확장성과 플러그인 지원: 다양한 플러그인을 추가해 기능 확장이 가능합니다.

  4. 강력한 검색 및 치환 기능: 정규식을 활용한 효율적인 작업.


Vim 설치

리눅스 배포판에 따라 Vi은 기본 설치되어 있을 가능성이 높습니다. 그러나, Vim은 별도로 설치해야 할 수 있으며, 다음과 같이 설치할 수 있습니다.

# Debian/Ubuntu 계열
sudo apt update
sudo apt install vim

# RedHat/CentOS 계열
sudo yum install vim

Vim 환경설정

설치가 끝난 뒤, 그대로 사용을 해도 문제는 없지만 조금 더 에디터를 편리하게 사용하기 위해 설정 값을 주는 것은 좋습니다.

# 사용자 Home 디렉터리로 이동
cd

# .vimrc 설정파일을 생성
vi .vimrc

# 아래의 값을 입력 후 저장 + 종료(:wq)
set smartindent
set tabstop=4
set expandtab
set shiftwidth=4

Vi/Vim 사용법

  1. Vim 실행: vim [파일명] 명령어를 사용해 파일을 엽니다. 예를 들어:
    vim example.txt
    새 파일을 생성하거나 기존 파일을 편집할 수 있습니다.

  2. 모드 전환

    • 명령 모드 (Command Mode):
      • 파일을 처음 열었을 때 기본 모드는 명령 모드입니다. 이 모드에서는 텍스트를 편집하지 않고 파일을 탐색하거나 명령을 실행할 수 있습니다.
      • 명령 모드로 돌아가기: 언제든지 ESC 키를 눌러 명령 모드로 돌아갈 수 있습니다.
    • 입력 모드 (Insert Mode):
      • i: 현재 커서 위치에서 입력을 시작합니다.
      • I: 현재 줄의 맨 앞에서 입력을 시작합니다.
      • a: 커서>  뒤에서 입력을 시작합니다.
      • A: 현재 줄의 맨 끝에서 입력을 시작합니다.
      • o: 현재 줄 아래에 새로운 줄을 추가하고 입력을 시작합니다.
      • O: 현재 줄 위에 새로운 줄을 추가하고 입력을 시작합니다.
      • 입력 모드에서는 원하는 텍스트를 입력하고, 완료 후 ESC 를 눌러 명령 모드로 돌아갑니다.
    • 명령줄 모드 (Command-Line Mode):
      • 명령 모드에서 : 키를 눌러 명령줄 모드로 진입합니다.
      • 저장하기 (:w), 종료하기 (:q), 저장 후 종료하기 (:wq), 저장하지 않고 종료 (:q!) 등의 명령어를 사용할 수 있습니다.
  3. 파일 이동

    • 명령 모드에서 다양한 키를 사용해 파일을 탐색 할 수 있습니다.
    • 기본 이동:
      • h: 왼쪽으로 한 칸 이동
      • j: 아래로 한 줄 이동
      • k: 위로 한 줄 이동
      • l: 오른쪽으로 한 칸 이동
    • 단어 단위 이동:
      • w:다음 단어의 시작 부분으로 이동
      • b: 이전 단어의 시작 부분으로 이동 
      • e: 단어의 끝 부분으로 이동
    • 문장 단위 이동:
      • 0: 현재 줄의 처음으로 이동
      • $:현재 줄의 끝으로 이동
    • 페이지 이동:
      • Ctrl + f: 다음 페이지로 이동
      • Ctrl + b: 이전 페이지로 이동
    • 특정 줄로 이동:
      • :[숫자]: 해당 줄 번호로 이동 (예: :10 → 10번째 줄로 이동)
  4. 텍스트 삭제

    • 기본 삭제:
      • x: 커서 위치의 문자 삭제
      • dd: 현재 줄 삭제
      • d$: 커서부터 줄의 끝까지 삭제
      • dw: 현재 위치에서 다음 단어 삭제
    • 범위 삭제:
      • Visual 모드 사용: v를 눌러 텍스트 선택 후 d 키를 눌러 선택한 범위를 삭제할 수 있습니다.
  5. 텍스트 복사와 붙여넣기

    • Visual 모드 (v): 커서로 텍스트를 선택합니다.
    • 복사하기 (y): 선택한 텍스트를 복사합니다.
    • 잘라내기 (d): 선택한 텍스트를 잘라냅니다.
    • 붙여넣기 (p): 현재 커서 위치에 복사하거나 잘라낸 텍스트를 붙여넣습니다.
  6. 실행 취소와 되돌리기

    • 실행 취소: u 키를 사용하여 마지막 변경을 취소합니다.
    • 다시 실행: Ctrl + r 키로 실행 취소한 작업을 다시 실행합니다.
  7. 검색과 치환

    • 검색:
      • /텍스트: 파일 내에서 특정 문자열을 검색합니다. n 키를 눌러 다음 결과로 이동하고 Shift + n(N) 키로 이전 결과로 이동합니다.
    • 치환:
      • 특정 문자열을 다른 문자열로 치환하기 위해 명령줄 모드에서 다음과 같은 명령을 사용할 수 있습니다.
      • :%s/old/new/g: 파일 전체에서 oldnew로 모두 변경
      • :n,m s/old/new/g: n번째 줄부터 m번째 줄까지 oldnew로 변경
  8. 복수 파일 작업

    • 여러 파일 열기:
      • vim file1.txt file2.txt와 같이 여러 파일을 한 번에 열 수 있습니다.
    • 파일 간 전환:
      • :n: 다음 파일로 이동
      • :prev: 이전 파일로 이동
  9. 탭 기능(Vim)

    • 탭 열기: :tabe [파일명] 명령어로 새 탭을 열 수 있습니다.
    • 탭 간 이동: gt로 다음 탭으로 이동하거나 gT로 이전 탭으로 이동합니다.
  10. 설정 변경

    • 줄 번호 표시: :set number로 줄 번호를 표시할 수 있습니다.
    • 줄 번호 숨기기: :set nonumber로 줄 번호를 숨길 수 있습니다.
    • 자동 들여쓰기: :set autoindent 명령어로 자동 들여쓰기를 활성화할 수 있습니다.

Vim의 활용 사례

  1. 소스 코드 편집: 프로그램 작성 및 빠른 수정.
  2. 원격 서버 작업: SSH 환경에서 간단한 텍스트 편집 가능.
  3. 대규모 파일 편집: 빠른 검색 및 치환 작업 수행.

Vim 관련 유의사항

  1. 초기 진입장벽: Vi/Vim은 처음 사용할 때 복잡하게 느껴질 수 있지만, 명령어에 익숙해지면 강력한 생산성을 제공합니다.
  2. 설정 파일 활용(Vim): ~/.vimrc 파일에 개인 설정을 저장하여 작업 효율성을 높일 수 있습니다.
  3. 비정상 종료: Vi/Vim을 비정상적으로 종료했다면 작성했던 폴더에 .swp파일이 남게된다. 만약 수정하던 Vi/Vim파일을 들어가게 된다면 경고창이 뜰 것인데, Q를 눌러 끝내고 ls -al 명령어를 통해 .swp 파일을 확인 하고 삭제 후 다시 실행하는 것이 좋다.
profile
버그를 잡는 게 아니라, 버그가 나를 잡고 있다.

0개의 댓글