Linux/centOS

[CENTOS] Vim

오늘도개발 2024. 12. 21. 10:53

 

1. Vi 와 Vim 차이

  • vi: 기본적인 텍스트 편집기 Unix 운영체제와 함께 제공되었으며, 간단하고 가벼운 텍스트 편집 도구
  • vim: "Vi IMproved"의 약자로, vi를 개선한 버전

 

 

특징

 

기본 기능 텍스트 편집에 필요한 최소한의 기능만 제공 vi의 기능 + 고급 편집 기능 제공
다중 취소 한 번만 취소 가능 (u) 여러 번 취소 가능 (u, Ctrl-R로 복구)
문법 강조 없음 코드와 텍스트의 문법 강조 지원
플러그인 지원 없음 다양한 플러그인 및 사용자 정의 가능
탭 기능 없음 다중 탭을 사용하여 여러 파일 편집 가능
파일 탐색 기본적인 파일 열기만 지원 파일 탐색기 및 디렉터리 탐색 지원
화면 분할 지원하지 않음 수평/수직 화면 분할로 여러 파일 동시에 보기 가능
검색 기능 단순한 검색 지원 정규 표현식 및 더 강력한 검색 기능 제공
자동 완성 없음 코드 및 텍스트 자동 완성 지원
시작 속도 가볍고 빠름 vi보다 조금 무거움

 

 

 

사용 환경

  • vi: 최소한의 리소스로 실행되므로, 리소스가 제한적인 환경(예: 임베디드 시스템)에서 유용
  • vim: 현대적인 개발 환경에서 더 적합하며, 코드 편집과 고급 작업에 유리

 

 

설치 여부

  • 대부분의 Unix/Linux 시스템에 vi는 기본적으로 설치됨
  • vim은 기본 설치가 아닐 수 있지만, 대부분의 배포판에서 패키지 관리자(예: apt, yum)를 통해 쉽게 설치 가능

 

 

2. Vim 의 특징

 

a. 모드 기반의 편집 : 모드에 따라 동작이 달라짐

 

  • 일반 모드(Normal Mode)
    기본 모드로, 명령어를 입력하거나 파일 탐색 및 텍스트 조작을 할 때 사용
    EX>  x로 문자 삭제, dd로 한 줄 삭제 등.

 

  • 입력 모드(Insert Mode)
    텍스트를 입력할 때 사용
    일반 모드에서 i, a, o 등을 눌러 입력 모드로 전환

 

  • 비주얼 모드(Visual Mode)
    텍스트를 블록 단위로 선택할 때 사용
    일반 모드에서 v, V, Ctrl-V 등을 눌러 시작

 

  • 명령 모드(Command Mode)
    파일 저장, 종료, 검색, 치환 등을 수행하는 명령을 입력할 때 사용
    일반 모드에서 :를 눌러 명령 모드로 전환합니다.

 

b. 문법 강조 및 코드 편집 지원 : 다양한 프로그래밍 언어에 대해 문법 강조(Syntax Highlighting) 지원

 

c. 화면 분할

  • 수평 및 수직으로 화면을 분할하여 여러 파일을 동시에 열거나, 파일과 터미널을 함께 볼 수 있음
    EX>  split → 수평 분할, vsplit → 수직 분할

 

d. 플러그인 지원

  • 파일 탐색 플러그인(NERDTree)
  • 자동 완성 플러그인(YouCompleteMe)
  • Git 통합 플러그인(fugitive)

 

e. 강력한 검색 및 치환

Vim은 정규식을 지원하여 텍스트를 강력하게 검색하고 치환할 수 있음
EX> 검색: /pattern,  치환: s/old/new/g

 

f. 키 매핑 및 사용자 정의 : 사용자는 .vimrc 파일을 통해 키 매핑, 명령어, 설정 등을 커스터마이징할 수 있음

 

 

 

3. Vim의 주요 명령어

 

 

a. 파일 열기와 저장

  • vim filename → 파일 열기
  • :w → 저장
  • :q → 종료
  • :wq 또는 :x → 저장 후 종료
  • :q! → 저장하지 않고 종료

 

b. 텍스트 조작

  • i → 입력 모드 시작
  • x → 커서 위치의 문자 삭제
  • dd → 현재 줄 삭제
  • yy → 현재 줄 복사
  • p → 붙여넣기

 

c. 탐색

  • h, j, k, l → 좌, 하, 상, 우로 이동
  • gg → 파일의 처음으로 이동
  • G → 파일의 끝으로 이동
  • /pattern → 텍스트 검색
  • n → 다음 검색 결과로 이동

 

d. 화면 분할

  • :split → 화면을 수평으로 분할
  • :vsplit → 화면을 수직으로 분할
  • Ctrl-w + h, j, k, l → 분할된 화면 간 이동

 

e. 명령 치환

  • :s/old/new/ → 현재 줄에서 old를 new로 변경
  • :%s/old/new/g → 파일 전체에서 old를 new로 변경

 

 

 

 

4. Vim의 장점

 

  1. 빠른 속도: 키보드에서 손을 떼지 않고 모든 작업을 수행할 수 있어 생산성이 높음
  2. 커스터마이징 가능: 사용자 정의를 통해 편집기를 완전히 개인화할 수 있음
  3. 다양한 언어 지원: 문법 강조 및 자동 완성을 통해 프로그래밍에 최적화
  4. 멀티 플랫폼: 대부분의 운영체제에서 사용 가능

 

 

 

5. Vim의 단점

  1. 학습 곡선: 초보자에게는 모드 기반 인터페이스가 어렵게 느껴질 수 있음
  2. 기본 상태로는 제한적: 플러그인 없이 사용하면 vi와 큰 차이가 없다고 느낄 수 있음

 

6. Vim 연습 사이트

 

튜토리얼 및 시뮬레이터로 연습 가능

 

https://openvim.com/index.html

 

OpenVim - Interactive Vim tutorial

/

openvim.com

 

게임을 통해서 연습 가능

 

https://vim-adventures.com/

 

Learn VIM while playing a game - VIM Adventures

VIM Adventures is an online game based on VIM's keyboard shortcuts. It's the "Zelda meets text editing" game. So come have some fun and learn some VIM!

vim-adventures.com

 

 

'Linux > centOS' 카테고리의 다른 글

[CENTOS] systemctl Command  (0) 2024.12.23
[CENTOS] Task  (0) 2024.12.23
[CENTOS] Command, Pipes  (0) 2024.12.19
[CENTOS] File Soft Link / Hard Link  (0) 2024.12.18
[CENTOS] Linux File Type  (0) 2024.12.17