vim(1)

정승균·2020년 12월 11일
0

리눅스

목록 보기
12/29
post-thumbnail

Ⅰ. vim 설치 및 실행


1. vim 설치

  • $ sudo apt -y install vim

2. vim 실행

  • $ vim hello.txt : 파일이 없는 경우 생성(저장되지는 않음)

  • $ find . '*.txt' | vim - : - 일 시 stdin을 받음

3. vim의 모드

  • Normal Mode : 기본값으로 일반 커맨드 모드
  • Insert Mode : 텍스트 입력 모드
  • Command Mode : :로 시작하는 커맨드 모드
  • Visual Mode : 텍스트 하이라이트 모드

Ⅱ. Normal Mode


  • 몇몇 커맨드는 앞에 숫자를 붙여서 반복 횟수 지정 가능

1. Mode 전환

명령어설명
a커서 한 칸 뒤에서 Insert 모드로 전환
A행 끝에서 Insert 모드로 전환
i커서 위치에서 Insert 모드로 전환
I행 앞에서 Insert 모드로 전환
o현재 행 밑에 새로운 행을 추가 후 Insert 모드로 전환
O현재 행 위에 새로운 행을 추가 후 Insert 모드로 전환
R글자가 덮어써지는 Replace 모드로 전환
:Command 모드로 전환
v / V / Ctrl-VVisual mode 시작

2. 커서 이동

명령어설명
h / ←커서 왼쪽 이동
j / ↓커서 아래 이동
k / ↑커서 위로 이동
l / →커서 우측 이동
0행 맨 앞으로 커서 이동
^행 맨 앞 문자열로 커서 이동
$행 맨 끝으로 커서 이동
[#]gg#번째 행으로 이동. #이 없으면 첫 행으로 이동
[#]G#번째 행으로 이동. #이 없으면 끝 행으로 이동
Ctrl-B / PgUp한 페이지 위로 이동
Ctrl-F / PgDn한 페이지 밑으로 이동
Ctrl-U반 페이지 위로 이동
Ctrl-D반 페이지 밑으로 이동
w / e / b단어 단위로 이동
W / E / B단어 의미 단위로 이동
( / )문단 단위로 이동
[[ / ]]블록 단위로 이동

3. 편집 기능

명령어설명
x커서 문자 삭제 (Delete키와 동일)
dd행 삭제
D커서부터 행 끝까지 삭제
yy / Y현재 행 복사
p현재 커서 뒤에 붙임, 행을 붙이는 경우 현재 행 밑에 붙임
P현재 커서 앞에 붙임, 행을 붙이는 경우 현재 행 위에 붙임
J아래 행을 현재 행 끝에 붙임
uUndo
Ctrl-RRedo
.이전 명령/입력 반복

4. 검색 기능

a. 행에서 문자 검색

명령어설명
fc오른쪽으로 c를 검색
Fc왼쪽으로 c를 검색
;최근 검색 재실행
,최근 검색을 반대 방향으로 재검색

b. 전체 문서에서 정규표현식 검색

  • hls 옵션이 켜져있는 경우 :nohl으로 일회성으로 하이라이트 제거 가능
  • \c를 expression 앞에 써주면 ignorecase로 검색
  • \M를 expression 앞에 써주면 magic미해석으로 검색
명령어설명
/expressionexpression을 전방 탐색
?expressionexpression을 후방 탐색
*현재 커서에 있는 단어를 전방 탐색
#현재 커서에 있는 단어를 후방 탐색
n다음 탐색
N이전 탐색

5. 기타

명령어설명
ZZup+quit : 변경사항 있을시 저장 / 종료
Ctrl-G현재 문서 위치 정보를 밑에 표시
~대소문자 스위치
%괄호 짝 찾기
Ctrl-A숫자 1증가
Ctrl-X숫자 1감소

Ⅲ. Visual Mode 기능


1. 블럭 지정

  • 블럭 지정후 Normal Mode와 똑같이 사용 가능
명령어설명
v현재 커서 위치에서 블럭 지정
V현재 행부터 블럭 지정
Ctrl-Vcolumn 단위 블럭 지정
gv이전 하이라이트
o시작점/끝점 바꾸기

2. Ctrl-V 편집

명령어설명
I모든 행에 앞에 문자열 삽입
A모든 행 앞에 문자열 삽입
c문자열 치환
d블럭 삭제
y블럭 복사
Esc x 2편집 종료

Ⅳ. Command Mode


  • Esc 로 Normal Mode로 복귀
  • 명령어 뒤에 ! 가 있으면 warning 무시하고 한다는 뜻

1. 편집 기능

명령어설명
:numnum 행으로 이동
:d행 삭제
:y현재 행 복사
:pu현재 커서에 붙임
:file현재 문서 위치 정보를 밑에 표시

2. 저장/종료 기능

명령어설명
:w현재파일에 저장
:w [filename]filename으로 사본 저장 뒤 filename으로 편집
:sav filenamefilename으로 저장, 편집은 원본 파일에 그대로
:up변경 사항 있을시만 저장
:q종료
:xup+q
:a모든 파일에 대하여, 다른 명령어랑 같이 씀

3. 범위 기능

  • d가 아닌 다른 명령어에도 적용됨
명령어설명
:20d20번째 행 삭제
:10,25d10~25번째 행 삭제
:10,$d10행에서 마지막 행까지 삭제
:%d전체 행 삭제
:.,+20d현재 행부터 20행 삭제
:-10,+5d현재 행 위로 10행부터 밑으로 5행 삭제

4. 교체 기능

  • :[range]s/<찾는 문자열>/<교체할 문자열>/<옵션>
  • ' / ' 는 다른 겹치지 않는 문자로 대체 가능 ex) ' , '
옵션설명
g검색된 모든 문자열을 교체(옵션 없을시 처음 1개만 교체)
i검색시 대소문자 무시
c매 교체마다 y/n 묻기
e교체 과정 중 에러 무시

5. 정렬 기능

옵션설명
:center #너비가 #인 가운데 정렬 (기본값 80)
:left ## 이후 왼쪽 정렬
:right #너비가 #인 오른쪽 정렬 (기본값 80)

6. 옵션 기능

명령어설명
:set현재 옵션 보기
:set all모든 옵션 보기
:set [no]option옵션 on/off
:set option!옵션 on/off toggle
:set option=value옵션 값 지정
  • 주요 옵션
명령어설명
nu행 번호 표시
rnu현재 행을 기준으로 행 번호 표시
ai자동 들여쓰기
cindentC언어 스타일 들여쓰기
ts=value탭 너비
sw=value블록 이동 너비
hls검색시 하이라이트 기능
fencs=value지원할 파일 인코딩 리스트( ,로 space없이 구분)
fenc=value현재 파일 인코딩 방식

7. 도움말 기능

명령어설명
:help xNormal mode에서 x에 대한 도움말
:i_CTRL-NInsert mode에서 Ctrl-N에 대한 도움말
:help :wCommand mode에서 :w에 대한 도움말
:help v_uVisual mode에서 u에 대한 도움말
:help -rvim command시 옵션 -r에 대한 도움말
:help 'tabstop'option tabstop 에 대한 도움말
  • help문서에서의 하이퍼링크 기능
명령어설명
Ctrl-]하이퍼링크로 이동
Ctrl-T하이퍼링크 복귀
:tags이동한 하이퍼링크 목록

0개의 댓글