vi 편집기 (vi Editor) 📝
리눅스의 대표적인 터미널 기반 텍스트 편집기입니다. **명령 모드(Command Mode)**와 입력 모드(Insert Mode), **ex 모드(ex Mode)**를 오가며 사용합니다.
vi 실행 옵션
vi -R [파일]: 읽기 전용으로 파일을 엽니다.vi -r [파일]: 비정상 종료 시 생성된 스왑 파일 목록을 확인하고 파일을 복구합니다.vi +[숫자] [파일]: 지정한 숫자 행으로 이동하여 파일을 엽니다.vi +/[문자열] [파일]: 파일 내에서 처음 발견되는문자열로 커서를 이동하여 파일을 엽니다.- 예:
vi +/ihd /etc/hosts
- 예:
명령 모드 (Command Mode) 주요 키
파일을 열면 기본적으로 명령 모드로 시작합니다.
입력 모드로 전환
a: 현재 커서 뒤(오른쪽)에서 입력 시작A: 현재 행의 맨 뒤에서 입력 시작i: 현재 커서 위치에서 입력 시작I: 현재 행의 맨 앞에서 입력 시작o: 현재 커서 아래에 새 행을 추가하고 입력 시작O: 현재 커서 위에 새 행을 추가하고 입력 시작
커서 이동
h, j, k, l: 왼쪽, 아래, 위, 오른쪽으로 한 칸씩 이동w: 다음 단어의 시작으로 이동e: 현재 단어의 끝으로 이동^또는0: 현재 행의 맨 앞으로 이동$: 현재 행의 맨 뒤로 이동G: 파일의 마지막 행으로 이동[숫자]G: 지정한숫자행으로 이동 (예:10G→ 10번째 행으로)
삭제 (잘라내기)
x: 커서가 위치한 곳의 문자 하나를 삭제dd: 커서가 위치한 행 전체를 삭제dw: 커서 위치부터 오른쪽으로 한 단어 삭제
복사 및 붙여넣기
yy: 현재 커서가 위치한 행 전체를 복사yw: 커서 위치부터 오른쪽으로 한 단어 복사p: 복사하거나 삭제한 내용을 커서 아래에 붙여넣기P: 복사하거나 삭제한 내용을 커서 위에 붙여넣기
실행 취소 및 반복
u: 이전 명령을 취소 (Undo)U: 현재 행에서 수행된 모든 변경 사항을 취소.: 마지막으로 수행한 명령을 반복
검색
/: 문자열을 검색 (아래 방향으로)?: 문자열을 검색 (위 방향으로) —n: 검색된 다음 문자열로 이동N: 검색된 이전 문자열로 이동
ex 모드 (ex Mode) 주요 명령어
명령 모드에서 :를 누르면 화면 하단에 프롬프트가 나타나며 ex 모드로 진입합니다.
저장 및 종료
| 명령어 | 설명 |
|---|---|
:w | 저장 (Write) |
:q | 종료 (Quit) |
:q! | 변경 사항을 저장하지 않고 강제 종료 |
:wq | 저장하고 종료 |
ZZ | (명령 모드에서) 저장하고 종료 |
:!bash | 현재 편집 상태를 유지한 채로 셸 실행 (exit로 복귀) |
환경 설정 (:set)
| 명령어 | 설명 |
|---|---|
:set nu | 행 번호 표시 (Number) |
:set nonu | 행 번호 숨기기 |
:set ai | 자동 들여쓰기 (Auto Indent) |
:set ic | 검색 시 대소문자 무시 (Ignore Case) |
:set sm | 괄호의 짝을 찾아 표시 (Show Match) |
:set list | 탭, 줄바꿈 등 특수 문자를 눈에 보이게 표시 |
vi 문자 치환 (Substitution)
-
기본 형식:
:[범위]s/[찾을패턴]/[바꿀내용]/[옵션] -
범위 지정:
%: 문서 전체[시작행],[끝행]: 특정 행 범위 (예:1,10).: 현재 커서가 있는 행$: 마지막 행
-
옵션:
g(global): 범위 내에서 패턴과 일치하는 모든 문자열을 치환 (없으면 행당 첫 번째만)i(ignore case): 대소문자를 구분하지 않음c(confirm): 치환할 때마다 사용자에게 확인을 받음
-
예시:
:%s/\<linux\>/Linux/gi- 문서 전체(
%)에서linux라는 단어(\<linux\>)를 대소문자 구분 없이(i) 찾아, 일치하는 모든 단어(g)를Linux로 바꾼다.
- 문서 전체(
vi 영구 설정
- vi 실행 시 항상 특정 옵션(예: 행 번호)을 적용하려면 홈 디렉터리에 설정 파일을 만듭니다.
~/.exrc:vi편집기의 설정 파일.~/.vimrc:vim편집기의 설정 파일.- 파일에
set nu와 같은 ex 명령어를 저장하면 됩니다.
- 파일에
기타 텍스트 에디터 ⌨️
에디터 종류 및 개발자
- vi: 빌 조이 (UC 버클리)
- vim: 브람 무레나르 (
vi의 개선 버전, Vi IMproved) - emacs: 리처드 스톨만 (GNU 프로젝트)
- pico: MIT에서 개발한 유닉스 기반 에디터
- nano: GNU 프로젝트에서
pico를 기반으로 개발한 텍스트 에디터 - gedit: GNOME 데스크톱 환경의 기본 그래픽 텍스트 에디터
NANO 주요 단축키
Ctrl+G: 도움말Ctrl+O: 저장Ctrl+X: 종료Ctrl+K: 한 줄 잘라내기Ctrl+U: 붙여넣기Ctrl+W: 검색
emacs 주요 단축키
Ctrl+x,Ctrl+c: 종료Ctrl+x,Ctrl+s: 저장Ctrl+f: 앞으로 한 칸Ctrl+b: 뒤로 한 칸Ctrl+n: 다음 줄Ctrl+p: 이전 줄Ctrl+a: 줄의 시작으로Ctrl+e: 줄의 끝으로