vi 편집기 정리 | 명령어와 치환, 설정까지

love_1006·2025년 4월 20일

linux

목록 보기
2/6
post-thumbnail

vi 편집기 주요 키워드

 

입력 모드 전환 키

설명
i현재 커서 왼쪽에 삽입
a현재 커서 오른쪽에 삽입
o현재 커서 아랫줄에 삽입
I현재 줄의 맨 앞에 삽입
A현재 줄의 맨 뒤에 삽입
O현재 줄의 윗줄에 삽입
s현재 문자를 지우고 삽입
S현재 줄을 지우고 삽입
Esc명령 모드로 전환

 


복사 & 붙여넣기

설명
yy, Y현재 줄 복사 (yank)
p복사한 줄을 아래에 붙여넣기
P복사한 줄을 에 붙여넣기

 


삭제 명령어

설명
x현재 커서 위치 문자 삭제
dd현재 줄 삭제

 


실행 취소 및 검색

키 / 명령어설명
uundo (이전 명령 취소)
/문자문자를 검색

/문자는 n(아래방향), N(윗 방향) 키를 입력해 다음 문자로 넘어간다.

 


ex 명령모드 주요 기능

저장 및 종료

명령어설명
:w저장
:q종료
:wq!강제 저장 후 종료 (읽기 전용 포함)

 

파일 열기

명령어설명
:e 파일명새 파일 열기
:r 파일명현재 위치에 외부 파일 내용 삽입

 

이동

명령어설명
:숫자해당 줄로 이동
:$마지막 줄로 이동

 

파일 전환

명령어설명
:n 파일명현재 파일 종료 후 다른 파일 열기
:n#직전에 편집하던 파일로 돌아가기

 

셸 실행

명령어설명
:!bashbash 셸 잠깐 실행 → exit 하면 vi로 복귀

주로 아래의 경우에 사용된다.

  • 파일 편집 중 디렉토리 구조 확인하고 싶을 때
  • 외부 파일 내용을 cat, less로 보고 싶을 때
  • 간단한 명령어로 결과 확인하고 다시 돌아올 때

한 번만 간단하게 확인하고 싶을 때는 :!ls -l 식으로 사용하는 것도 가능하다.

 


ex 모드 특수 문자

기호의미
.현재 줄
n+mn번째 줄부터 m줄 더한 위치
$마지막 줄
n,mn번째 줄부터 m번째 줄까지
%전체 줄 (1,$)
^줄의 시작
\특수 기능 제거
\<, \>단어의 시작과 끝

 


문자열 치환

명령어설명
:s/문자/새문자현재 줄 첫 번째 일치 항목만 변경
:s/문자/새문자/g현재 줄 전체 변경
:s/문자/새문자/gi대소문자 무시 후 현재 줄 전체 변경
:s/문자/새문자/gc변경 전 확인(prompt) 후 적용

 

예시

  • :1,$ s/love/llll/g
    -> 모든 love가 llll로 변경

 

  • :% s/love/aaaa/gl
    -> 대소문자를 무시한 모든 love가 aaaa로 변경

 

  • :.,.+3 s/love/[change]/gl
    -> 현재 커서의 위치부터 +3번째 줄 까지의 대소문자를 무시한 모든 love가 [change]로 변경

 

  • :% s/^love/lalala/
    -> 줄 시작이 love인 모든 love를 lalala로 변경

 

  • :% s/\>/cccc/g
    -> 정확히 love라는 단어가 들어가는 부분만 cccc로 변경

 

  • :% s/\<love>/& \& jeju
    -> & \& : 첫번째 &는 love를 의미

환경 설정 관련 키워드

설정설명
set number줄 번호 표시
set ai자동 들여쓰기 (auto indent)
set sm괄호 짝 표시 (show match)
set ic검색 시 대소문자 무시
set list탭, 스페이스 등을 표시
syntax off색상 강조 끄기
  1. set nu
  1. set sm

 


기타 특수 기능

명령설명
ab, unab약어 등록 / 해제
map, unmap단축키 매핑 / 해제
  • :ab [약어] [문자] 식으로 구성
    - :ab를 통해 현재 생성 된 약어 확인
    - :una [약어]를 통해 약어 삭제
  • :map [키] [기능] 식으로 구성
    - map를 통해 설정 된 단축키 확인
    - unmpa [키]를 통해 단축어 삭제

0개의 댓글