리눅스 (2) - vim
리눅스 (2) - vim
우분투 리눅스를 기준으로 글을 작성한다.
1. Vim이란? (개요 및 특징)
- 정의: Vi IMproved의 약자로, 터미널 환경에서 가볍고 빠르게 사용할 수 있는 텍스트 에디터.
- 장점:
- 마우스 없이 키보드만으로 빠른 편집 가능
- 리눅스/유닉스 계열 서버 환경에 기본 내장되거나 설치가 쉬움
- 서버 단에서 직접 설정 파일 작성 및 로그 확인 시 유용
2. 설치 및 시작하기
- 설치 명령:
- Ubuntu/Debian:
sudo apt install vim
- Ubuntu/Debian:
- 파일 열기/생성:
vim [파일명]
3. 반드시 알아야 할 Vim의 4가지 모드
- 일반 모드 (Normal Mode):
- 진입:
Esc - 이동, 삭제, 복사 등 기본 명령을 수행하는 모드 (기본 상태)
- 진입:
- 입력 모드 (Insert Mode):
- 진입:
i(현재 위치 입력),a(다음 위치 입력),o(새 줄 추가 입력) - 글자를 직접 입력하는 모드
- 진입:
- 비주얼 모드 (Visual Mode):
- 진입:
v(문자 단위 선택),V(줄 단위 선택),Ctrl + v(블록 단위 선택) - 텍스트 범위를 지정할 때 사용
- 진입:
- 명령행 모드 (Command-line Mode):
- 진입:
: - 저장, 종료, 검색/대체 등 명령어를 실행하는 모드
- 진입:
4. 필수 명령어 및 단축키 정리
(1) 커서 및 화면 이동
- 커서 이동
h,j,k,l: 좌, 아래, 위, 우 이동w/b: 다음 단어 첫 글자로 이동 / 이전 단어 첫 글자로 이동^/$: 현재 행의 첫 문자로 이동 / 현재 행의 맨 뒤로 이동0: 현재 행의 맨 앞으로 이동 (공백 포함)H/M/L: 현재 화면의 맨 위 / 중간 / 맨 아래 행으로 이동gg/G: 문서 맨 처음 / 문서 맨 끝으로 이동
- 행 지정 이동
숫자G또는:숫자: 해당 행 번호로 바로 이동:$: 파일의 마지막 행으로 이동
- 화면 스크롤
Ctrl + u/Ctrl + d: 반 화면 위 / 아래로 이동Ctrl + b/Ctrl + f: 한 화면 위 / 아래로 이동Ctrl + y/Ctrl + e: 한 행만 위 / 아래로 이동
(2) 내용 수정 및 삭제
- 내용 수정
r: 커서 위치의 한 글자 수정cw(또는숫자cw) : 단어 수정 (숫자 입력 시 지정한 개수만큼 단어 수정)s(또는숫자s) : 지정한 글자 수만큼 삭제 후 입력 모드 전환cc: 현재 행 전체 내용 수정C: 커서 위치부터 행 끝까지 수정
- 내용 삭제
x(또는숫자x) : 글자 삭제dw(또는숫자dw) : 단어 삭제dd(또는숫자dd) : 행 삭제 (잘라내기)D: 커서 위치부터 행 끝까지 삭제
(3) 복사, 붙여넣기 및 레지스터(버퍼)
- 복사 및 붙여넣기
yy(또는숫자yy) : 현재 행 복사p/P: 커서 아래 행에 붙여넣기 / 커서 윗 행에 붙여넣기
- 버퍼(Register) 활용
"버퍼이름yy: 지정한 버퍼에 현재 행 복사 (예:"ayy)"버퍼이름p: 지정한 버퍼의 내용 붙여넣기 (예:"ap)
(4) 검색, 치환 및 파일 조작 (Command Mode)
- 검색
/문자열: 아래 방향으로 검색 (n: 다음,N: 이전)?문자열: 위 방향으로 검색
- 치환 (Replace)
:s/기존/바꿀문자/: 현재 행에서 첫 번째 일치 단어 치환:%s/기존/바꿀문자/g: 문서 전체에서 모든 단어 치환:%s/.*/\L&/: 문서 전체를 소문자로 변경:%s/.*/\U&/: 문서 전체를 대문자로 변경
- 외부 파일 및 쉘(Shell) 명령어
:r 파일경로: 지정한 파일 내용을 읽어와 현재 커서 위치에 삽입:e 파일경로: 현재 파일을 저장하고 지정한 파일로 전환:n: vi 실행 시 여러 파일을 지정했을 때 다음 파일로 이동:!명령어: Vim을 종료하지 않고 쉘 명령어 실행 (돌아오려면Enter):sh: 일시적으로 쉘로 나감 (Vim으로 복귀 시exit입력)
(5) 명령 취소 및 작업 복구
u: 마지막 작업 취소 (Undo)Ctrl + r: 취소한 작업 다시 실행 (Redo)U: 해당 행에서 수행한 모든 변경 사항 취소:e!: 마지막 저장 이후의 수정 사항을 모두 버리고 다시 읽어오기
5. 작업 생산성을 높여주는 환경 설정 (~/.vimrc)
- 주요 설정 예시 소개: ```text set number “ 줄 번호 표시 set hlsearch “ 검색어 하이라이트 set ignorecase “ 검색 시 대소문자 구별 안 함 set smartcase “ 대문자 포함 검색 시 대소문자 구별 set tabstop=4 “ Tab 간격 설정 set expandtab “ Tab을 공백으로 변환 set autoindent “ 자동 들여쓰기 syntax on “ 구문 강조 활성화
```
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.