cmod.ify

Vim 편집기 및 단축키 본문

BASIC/LINUX

Vim 편집기 및 단축키

modifyC 2026. 1. 6. 18:32
728x90
반응형

1. 리눅스 편집기의 종류

리눅스 환경에서 사용하는 편집기는 작동 방식에 따라 크게 세 가지로 나뉜다.

  • 행 단위 편집기: 한 번에 한 줄씩 편집하는 도구 (예: ed, ex, sed)
  • 화면 단위 편집기: 터미널 화면 전체를 사용하며 편집 (예: vi, vim)
  • GUI 편집기: 윈도우 메모장처럼 그래픽 환경에서 사용 (예: gedit)

2. 모드형 vs 비모드형 편집기

가장 대표적인 편집기인 VimNano의 차이점을 이해하는 것이 중요하다.

구분 모드형 편집기 (Vim) 비모드형 편집기 (Nano)
특징 입력 모드와 명령 모드가 엄격히 구분됨 입력과 명령 구분이 없음 (메모장 방식)
장점 숙련 시 키보드만으로 초고속 편집 가능 직관적이고 배우기 쉬움
단점 초기 학습 곡선이 높음 복잡한 편집 작업 시 효율이 떨어짐
조작 i, esc, : 등의 키로 모드 전환 Ctrl이나 Alt와 같은 특수 키 조합 사용

3. Vim(Vim Improved) 시작하기

Vim은 기존 vi의 기능을 확장하여 현재 가장 일반적으로 사용되는 텍스트 편집기다.

설치 및 실행

  • 설치: sudo apt install vim
  • 시작: vim [파일경로]
    • 파일이 있으면 편집 모드, 없으면 새 파일이 생성된다.
    • 경로 생략 시 Vim 도움말이 출력된다.
    • 권한이 없으면 [읽기 전용]으로 열리니 주의하자.

동작 모드 전환 

  1. 명령 모드 (기본): 시작 시 상태. 수정, 삭제, 복사 등을 수행한다.
  2. 입력 모드: 글자를 입력하는 상태. (i, a, o, A, O 입력 시 전환)
  3. 마지막 행 모드: 저장 및 종료를 수행하는 상태. (:, /, ? 입력 시 전환)
  4. 복귀: 어떤 모드에서든 ESC를 누르면 명령 모드로 돌아온다.

저장 및 종료

명령어 모드 기능 설명
ZZ 명령 모드 저장 후 즉시 종료
:wq 마지막 행 저장 후 종료 (변경사항 적용)
:q 마지막 행 저장하지 않고 종료
:q! 마지막 행 강제 종료 (변경사항 무시)

4. 실습: 파일 만들기 및 입력 모드 차이

vim test.txt 명령어로 파일을 열고 내용을 입력해 보자. 입력 모드로 전환할 때 사용하는 키에 따라 커서 위치가 달라진다.

  • i (insert): 현재 커서 에서 입력 시작
  • a (append): 현재 커서 에서 입력 시작
  • o (open line): 현재 줄 다음 행에 새 줄을 만들고 입력 시작

5. 커서 이동 명령어 총정리

Vim의 진가는 명령 모드에서의 빠른 이동에 있다.

기본 및 문서 이동

분류 명령어 기능 설명 비유 및 팁
기본 방향 h 왼쪽 (\leftarrow) 이동 검지 위치
  j 아래 (\downarrow) 이동 아래로 뚝 떨어지는 느낌
  k 위 (\uparrow) 이동 위로 솟은 모양
  l 오른쪽 (\rightarrow) 이동 오른쪽 끝 위치
단어 단위 w 다음 단어의 첫 글자로 이동 word (다음 단어)
  b 이전 단어의 첫 글자로 이동 back (이전 단어)
  e 현재/다음 단어의 끝 글자로 이동 end (단어 끝)
줄 내부 0 줄의 맨 앞으로 이동 숫자 0 (시작점)
  $ 줄의 맨 뒤로 이동 문장의 끝(종착역)
  ^ 줄의 첫 번째 문자로 이동 공백 제외 첫 글자
문서 전체 gg 문서의 맨 첫 줄로 이동 Go Go (처음으로)
  G 문서의 맨 마지막 줄로 이동 끝판왕 (마지막으로)
  [숫자]G [숫자] 번째 행으로 이동 특정 줄로 점프
페이지 Ctrl + f 다음 페이지로 이동 forward
  Ctrl + b 이전 페이지로 이동 backward
  Ctrl + d 반 페이지 아래로 이동 down
  Ctrl + u 반 페이지 위로 이동 up
화면 기준 H 현재 화면의 맨 윗줄로 이동 High
  M 현재 화면의 중간 줄로 이동 Middle
  L 현재 화면의 맨 아랫줄로 이동 Low
기타 % 괄호((), {}, [])의 짝으로 이동 코딩 시 짝 찾기 필수

 

화면 및 페이지 스크롤 (^는 Ctrl 키)

분류 명령어 기능 설명 비유
반 화면 ^u / ^d 반 화면 위로 / 아래로 이동 Up / Down
한 화면 ^b / ^f 이전 페이지 / 다음 페이지 이동 Backward / Forward
줄 스크롤 ^y / ^e 커서 고정, 화면만 한 줄 위 / 아래 이동 미세 스크롤
화면 기준 H / M / L 화면 내 맨 위 / 중간 / 맨 아래 이동 High / Mid / Low
기타 % 괄호 짝 찾기 코딩 필수 키

 

글 작성 및 편집 

분류 명령어 기능 설명
이동 행번호G 지정한 행 번호로 바로 이동 (예: 10G)
  :행번호 (명령행 모드) 지정한 행으로 이동
삭제 x 현재 커서 위치의 글자 1개 삭제
  #x 현재 커서부터 #개의 글자 삭제
  dw 현재 커서 위치의 단어 삭제
  #dw 현재 커서부터 #개의 단어 삭제
  dd 현재 커서가 있는 행 삭제 (잘라내기)
  #dd 현재 커서부터 #개의 행 삭제
  D 커서 위치부터 행의 끝까지 삭제
취소 u 이전 명령 취소 (Undo)
  U 해당 행에서 한 모든 명령 취소
  :e! 마지막 저장 이후의 변경사항 모두 버리고 새로 시작
복사/붙여넣기 yy 커서가 있는 행 복사
  #yy 커서부터 #개의 행 복사
  p (소문자) 커서 아래쪽에 붙여넣기
  P (대문자) 커서 위쪽에 붙여넣기

 

검색 및 탐색

기능 명령어 설명
아래 방향 검색 /문자열 현재 커서 아래로 검색
위 방향 검색 ?문자열 현재 커서 위로 검색
정방향 다음 n 원래 찾던 방향으로 다음 단어 찾음
역방향 다음 N 반대 방향으로 다음 단어 찾음
행 번호 출력 Ctrl + G 현재 행 번호와 파일 정보를 하단에 띄움

 

치환

범위 명령어 설명
현재 행 (1개) :s/A/B 현재 줄의 첫 번째 A를 B로 바꿈
현재 행 (전체) :s/A/B/g 현재 줄의 모든 A를 B로 바꿈
파일 전체 :%s/A/B/g 파일 전체의 모든 A를 B로 바꿈
치환 전 확인 :%s/A/B/gc 바꿀 때마다 물어보고 바꿈
전체 소문자로 :%s/.*/\\L&/g 파일 내 모든 대문자를 소문자로 변환
전체 대문자로 :%s/.*/\\U&/g 파일 내 모든 소문자를 대문자로 변환
  set ignorecase 대소문자 구분하지 않고 변경

 

파일 관리 및 셸(Shell) 연동

기능 명령어 설명
파일 읽어오기 :r [파일경로] 지정한 파일을 커서 위치에 슥 집어넣음
다른 파일 열기 :e [파일명] 현재 파일 닫고 새 파일로 전환 (저장 필수)
다음 파일 이동 :n vim a.txt b.txt 처럼 열었을 때 다음 파일로 감
셸 명령 실행 :![명령어] Vi 잠시 멈추고 셸 명령 실행 (Enter 치면 복귀)
셸로 나가기 :sh 잠시 셸로 나감 (돌아올 땐 exit 입력)

 

환경 설정 (set 옵션)

옵션 명 설명 반대 옵션
set nu 줄 번호를 보여줌 set nonu
set ic 검색 시 대소문자 구분 안 함 set noic
set list 탭(^I), 줄바꿈($) 등 숨은 문자 표시 set nolist
set showmode 하단에 현재 모드(INSERT 등) 표시 set noshowmode
set set 현재 설정된 모든 옵션 값 확인 -
set all 모든 환경 설정 변수와 현재 값 출력 -

 

기타 팁 (Vim 전용)

  • Shift + j: 현재 줄이랑 바로 아래 줄을 한 줄로 합쳐버림.
  • . (마침표): 방금 했던 편집 명령 그대로 다시 실행함 (반복 작업 시 사).
  • Ctrl + l: 화면 밀리거나 깨졌을 때 새로고침함.
728x90
반응형

'BASIC > LINUX' 카테고리의 다른 글

[LINUX] FILE SYSTEM  (0) 2026.01.08
Shell  (0) 2026.01.07
리눅스 쉘(Shell) 기본 명령어  (0) 2026.01.06
OpenSSH 서버 설치 및 가상머신 포트 포워딩 설정  (0) 2026.01.06
리눅스 개요 및 설치  (0) 2026.01.06