Recent Posts
Recent Comments
Archives
- Today
- Total
Byeo
1. Vim 기초 본문
반응형
1. Vim 기초
Vim은 Vi IMproved의 약자로, 익히기 어려운 기존의 vi를 개선하기 위해 Bram Moolenaar가 개발한 text editor입니다. Vim은 마우스를 일절 사용하지 않고도 text를 편집할 수 있도록 다양한 모드와 단축키가 내장되어 있습니다.
기존의 text 편집 툴, window-based 개발환경에 익숙해져 있다면 vim의 필요성을 느끼지 못할 수 있습니다. 그러나 마우스를 사용할 수 없는 CLI (Command Line Interface) 환경에서는 가볍고 최고의 editor로 여겨지고 있어서 한 번 다뤄보고자 합니다.
해당 글은 [포스트]를 따라 연습하며 정리한 글입니다.
Vim Installation
Vim은 다음과 같은 명령어로 설치할 수 있습니다.
sudo apt install vim
실행은 다음과 같이 할 수 있습니다.
vim test.txt
vim을 연습해 보기 위해서 다음 명령어를 실행해 보세요.
vimtutor
그러면 위와 같은 화면을 보실 수 있을 겁니다. 여기서 자유롭게 편집 연습을 해볼 수 있어요. Lesson을 따라가며 익히면 수월합니다. Lesson은 7까지 있고, 기초 숙련도와 목표치에 따라 다르겠지만 대략 최소 30분 정도 소요됩니다.
Vim 단축키
이 아래부터는 빈번하게 사용하는 vim의 단축키들을 정리해 놓았습니다. vimtutor를 따라가면서 연습해 보면 익숙해질 수 있을 것입니다.
파일 저장 기초
:w :현재까지 편집 내용을 저장
:q :편집 내용을 저장하지 않음
단어 단위 이동 명령어
←, →, ↑, ↓: 각각의 방향으로 커서 이동
h, l, k, j: 각각 ←, →, ↑, ↓ 방향으로 커서 이동
0: 줄의 처음으로 이동
^: 문장의 맨 처음으로 이동
$: 문장의 맨 끝으로 이동
w: 다음 단어로 이동
2w: 두 단어 뒤의 첫 글자로 이동
3e: 세 단어 두의 마지막 글자로 이동 (현재가 단어의 마지막 글자가 아니라면 현재 단어 포함)
b: 이전 단어로 이동
4b: 네 단어 이전으로 이동
문서 내 이동 명령어
ctrl + g: 현재 위치 출력
gg: 문서 처음으로 이동
G: 문서 마지막으로 이동
500gg: 500번째 줄로 이동
{: 문단 시작으로 이동
}: 문단 끝으로 이동
ctrl + f: 현재 화면 기준 다음 페이지의 첫 줄로 커서 이동
ctrl + b: 현재 화면 기준 이전 페이지의 마지막 줄로 커서 이동
ctrl + d: 현재 화면 기준 절반 페이지만큼 아래로 커서 이동
ctrl + u: 현재 화면 기준 절반 페이지만큼 위로 커서 이동
shift + h: 현재 화면 기준 페이지 맨 위로 커서 이동
shift + m: 현재 화면 기준 페이지 중간 위치로 커서 이동
shift + l: 현재 화면 기준 페이지 맨 아래로 커서 이동
편집 명령어
## 입력모드 전환 ##
i: 커서의 현재 위치부터 편집 시작
I: 커서의 현재 줄의 문장 처음으로 이동하여 편집 시작
a: 커서의 다음 위치부터 편집 시작
A: 커서의 현재 줄에서 끝으로 이동하여 편집 시작
o: 커서의 다음 줄에 새로운 줄을 만들어 편집 시작
O: 커서의 윗 줄에 새로운 줄을 만들어 편집 시작
s: 커서 위치의 한 글자를 제거한 뒤 편집 시작
S: 커서 위치의 한 줄을 삭제 후 편집 시작
##
~: 대소문자 변환
u: 실행 취소 (Undo)
ctrl + R: 복구 (Redo)
p: 커서의 다음 줄에 붙여 넣기 (줄 단위 복사가 아니라면 커서의 다음 위치)
P: 커서의 이전 줄에 붙여 넣기 (줄 단위 복사가 아니라면 커서의 이전 위치)
3p: 붙여 넣기를 세 번 반복
r: 글자 교체 (ra: 현재 커서 위치의 글자를 a로 교체)
4rx: 현재 커서로부터 4개의 단어를 x로 교체
R: 수정 모드 (일반 문서에서 Insert 키를 누른 것과 동일)
<<: 내어쓰기
>>: 들여쓰기
J: 현재 문장의 개행 제거, 아래 줄과 합치기
ctrl + a: 현재 커서의 단어가 숫자라면 1 증가
ctrl + x: 현재 커서의 단어가 숫자라면 1 감소
제거/복사 명령어
모든 제거 명령어는 클립보드에 보관된다. x로 1 글자를 지웠을 경우 p로 다시 복구 가능
x: 커서 위치의 글자 하나 제거
X: 커서 위치의 이전 글자 하나 제거
dl: 현재 커서 한 글자 제거
de: 현재 커서부터 현재 단어 마지막까지 제거
dw: 현재 커서부터 다음 단어 시작 전까지 제거
d$: 현재 커서부터 줄 마지막까지 제거
d2e: de를 두 번 수행
d3w: dw를 세 번 수행
dd: 줄 전체 제거
2dd: 두 줄 제거
d + ←: 현재 커서의 이전 한 글자 제거
d + →: 현재 커서 제거 (x와 동일)
d + ↑: 현재 줄과 이전 줄 함께 제거
d + ↓: 현재 줄과 다음 줄 함께 제거
위 명령어에서 d를 y로 변경 시, 동일한 범위를 제거 대신 복사한다.
ce: 현재 커서부터 현재 단어 마지막까지 제거 후 편집 가능 (입력모드로 전환)
c4e: 현재 커서부터 4개의 단어를 제거 후 편집 가능 (입력모드로 전환)
c$: 현재 커서부터 줄 마지막까지 제거 후 편집 가능 (입력모드로 전환)
검색 명령어
/단어: 아래 방향으로 단어 검색 (e.g., /banana)
?단어: 위 방향으로 단어 검색 (e.g., ?banana)
n: 정방향으로 계속 검색
N: 역방향으로 계속 검색
ctrl + o: 직전에 검색 되었던 위치로 커서 이동
ctrl + i: ctrl + o로 이동했던 커서를 다시 복구
% on (,{,[,],},): 매칭하는 괄호로 커서 이동 (괄호 디버깅에 유용)
찾아 바꾸기 명령어
:s/old/new :old 단어를 new 단어로 변경 (매 줄마다 첫 단어만 바꿈)
:s/old/new/g :old 단어를 new 단어로 변경 (모든 단어를 찾아 바꿈, globally)
:s/old/new/gc :old 단어를 new 단어로 일일이 체크하면서 변경 (globally, check)
쉘 명령어 실행
:!ls : vim을 잠시 빠져 나가서 ls 실행결과를 보여줌 (:로 시작하는 커맨드는 반드시 엔터로 끝나야 함)
:w TEST : 현재 파일을 TEST라는 파일 명으로 저장
:!rm TEST : TEST라는 파일을 제거
:r TEST : TEST라는 파일을 붙여 넣음
:r !ls : ls 실행 명령 결과를 붙여넣음
비주얼 모드
v: 비주얼 모드로 변경 -> 커서 이동을 통해 블럭 지정 (drag and drop)
shift + v: 커서가 위치한 줄을 블럭 지정
다양한 set command들
:set ic : 대소문자 구분 없이 찾기
:set noic : 대소문자 구분 하면서 찾기
:set hlsearch : 검색 문자 하이라이트
:set nohlsearch : 하이라이트 끄기
:set is
:help w : w와 관련된 명령어 도움말
반응형
'프로그래밍 (Programming) > Vim' 카테고리의 다른 글
6. Vimrc-5 (Space & Tab) (0) | 2021.07.27 |
---|---|
5. Vimrc-4 (편집 위치 불러오기) (0) | 2021.07.15 |
4. Vimrc-3 (Folding) (0) | 2021.07.12 |
3. Vimrc-2 (UI) (0) | 2021.07.09 |
2. Vimrc-1 (테마) (0) | 2021.07.08 |
Comments