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의 장점
- 빠른 속도: 키보드에서 손을 떼지 않고 모든 작업을 수행할 수 있어 생산성이 높음
- 커스터마이징 가능: 사용자 정의를 통해 편집기를 완전히 개인화할 수 있음
- 다양한 언어 지원: 문법 강조 및 자동 완성을 통해 프로그래밍에 최적화
- 멀티 플랫폼: 대부분의 운영체제에서 사용 가능
5. Vim의 단점
- 학습 곡선: 초보자에게는 모드 기반 인터페이스가 어렵게 느껴질 수 있음
- 기본 상태로는 제한적: 플러그인 없이 사용하면 vi와 큰 차이가 없다고 느낄 수 있음
6. Vim 연습 사이트
튜토리얼 및 시뮬레이터로 연습 가능
https://openvim.com/index.html
OpenVim - Interactive Vim tutorial
/
openvim.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 |