vim의 학습 곡선은 상당히 크므로 ( 이미지 ) 처음에 많은 VIM 명령 범주가 표시되면이 편집기에 대한 관심이 사라집니다. 다음 기사는 ” Learn Vim Progressively ” 에서 번역되었으며 , 초보자를위한 최고의 VIM 업그레이드 튜토리얼이라고 생각합니다. 모든 명령이 나열되어 있지는 않지만 가장 유용한 명령 만 있습니다.
———————————————————————————
![](https://kimxp.com/wp-content/uploads/2020/05/image-19.png)
가장 빠른 속도로 인류 역사상 최고의 텍스트 편집기 VIM을 배우고 싶습니까? 먼저 VIM에서 살아남는 방법을 이해 한 다음 다양한 트릭을 조금씩 배워야합니다.
Vim the Six Billion Dollar 에디터
더 좋고, 더 강하고, 더 빠릅니다.
vim을 배우면 마지막 텍스트 편집기가 될 것입니다. 이보다 더 나은 텍스트 편집기는 없으며 배우기가 매우 어렵지만 사용하기가 매우 쉽습니다.
다음 네 단계를 제안합니다.
- 생존
- 기분이 좋다
- 기분이 좋아지고 강해지며 빠릅니다.
- VIM의 힘을 사용하십시오
이 기사를 마치면 vim의 슈퍼 스타가 될 것입니다.
학습을 시작하기 전에 몇 가지 경고를해야합니다.
- vim을 배우는 것은 처음에는 고통 스러웠습니다.
- 시간이 필요하다
- 악기를 배우는 것처럼 지속적인 연습이 필요합니다.
- 3 일 안에 다른 편집자보다 vim을 더 효율적으로 연습 할 것을 기대하지 마십시오.
- 실제로, 3 일 대신 2 주간의 힘든 훈련이 필요합니다.
목차
- 1 단계 생존
- 2 단계 느낌 양호
- 레벨 3, 강하고 빠름
- …보다 나은
- 강함
- 더 빠른
- 레벨 4 Vim 전력
- 현재 행에서 커서를 이동하십시오. 0 ^ $ f F t T ,;
- 영역 선택 <action> a <object> 또는 <action> i <object>
- 블록 작업 : <Cv>
- 자동 프롬프트 : <Cn> 및 <Cp>
- 매크로 기록 : qa 작업 순서 q, @a, @@
- 시각적 선택 : v, V, <Cv>
- 분할 화면 :: 분할 및 vsplit.
- 결론
1 단계 생존
- vim 설치
- vim 시작
- 아무것도 하지마! 먼저 읽어주세요
편집기를 설치 한 후에는 반드시 무언가를 입력 한 다음 편집기가 어떻게 보이는지 확인해야합니다. 그러나 이것은 vim의 경우가 아닙니다. 아래 명령을 따르십시오.
- Vim을 시작한 후 vim은 정상 모드입니다.
- 삽입 모드로 들어가서 키를 누르십시오 i. (Chen Hao 참고 : vim의 왼쪽 하단에 – 삽입 –이 표시되어 삽입하면 입력 할 수 있음을 나타냅니다)
- 이때 “메모장”을 사용하는 것처럼 텍스트를 입력 할 수 있습니다.
- 당신이 돌아가려면 일반 모드에서 누르면
ESC
키를 누릅니다.
이제 삽입 모드 와 일반 모드 사이를 전환 하는 방법 을 알았습니다 . 다음은 정상 모드 에서 생존 할 수있는 몇 가지 명령입니다 .
i
→ 삽입 모드에서 누르면 일반 모드ESC
로 돌아갑니다 .x
→ 커서 아래의 문자를 삭제하십시오.:wq
→ 저장 + 종료 (:w
저장,:q
종료) (Chen Hao 참고 : w 다음에 파일 이름을 따를 수 있습니다)dd
→ 현재 줄을 삭제하고 삭제 된 줄을 클립 보드에 저장p
→ 클립 보드 붙여 넣기
추천 :
hjkl
(커서를 이동하는 데 사용하는 것이 좋지만 필요하지는 않습니다.) → 커서 키 (← ↓ ↑ →)를 사용할 수도 있습니다. 참고 :j
아래쪽 화살표와 같습니다.:help <command>
→ 관련 명령에 대한 도움말을 표시합니다.:help
다음 명령없이 입력 할 수도 있습니다 . (Chen Hao 참고 : 도움말을 종료하려면 다음을 입력해야합니다. q)
vim은 위의 5 가지 명령 만 필요로하며 생존 할 수 있습니다. 텍스트를 편집 할 수 있으므로 이러한 명령을 잠재 의식 상태로 연습해야합니다. 그런 다음 두 번째 수준으로 진행할 수 있습니다.
이 때 두 번째 수준에 들어가면 다시 일반 모드 에 대해 이야기해야 합니다. 일반 편집기에서 텍스트를 복사해야 할 경우 다음 Ctrl
과 같은 키 를 사용해야합니다 Ctrl-C
. 즉, Ctrl 키는 기능 키와 같다. 당신은 기능 키 Ctrl 키를 누르면, C는 더 이상 C 없으며, 그것은 명령이나 바로 가기 키입니다. VIM의 일반 모드에서 모든 키는 기능 키 입니다. 당신은 이것을 알아야합니다.
표:
- 다음 텍스트에서 있다면
Ctrl-λ
씁니다<C-λ>
. - 예를 들어
:
명령 을 시작 하려면 enter를<enter>
입력 해야합니다. 예를 들어 쓰면:q
입력해야합니다:q<enter>
.
2 단계 느낌 양호
위의 명령은 살아남을 수 있으므로 이제 더 많은 명령을 배울 차례입니다. 제안은 다음과 같습니다. (Chen Hao 참고 : 모든 명령은 일반 모드에서 사용해야합니다. ESC 키를 여러 번 눌러야하는 모드는 무엇입니까?
- 다양한 삽입 모드
a
→ 커서 다음에 삽입o
→ 현재 줄 뒤에 새 줄을 삽입하십시오O
→ 현재 줄 앞에 새 줄을 삽입하십시오cw
→ 커서 위치에서 단어의 끝으로 문자 교체
- 간단한 커서 이동
0
→ 줄의 시작까지 숫자 0^
→ 공백 문자가 아닌 행의 첫 번째 위치로 이동하십시오 (소위 공백 문자는 공백, 탭, 줄 바꿈, 캐리지 리턴 등입니다).$
→ 줄 끝까지g_
→ 빈 줄이 아닌이 줄의 마지막 위치로 이동하십시오./pattern
→pattern
문자열 검색 (Chen Hao 참고 : 일치하는 항목이 여러 개인 경우 n을 누르면 다음 항목으로 이동)
- 복사 / 붙여 넣기 (Chen Hao 참고 : p / P 사용 가능, p는 현재 위치 뒤, P는 현재 위치 뒤)
P
→ 붙여 넣기yy
→ 현재 줄을 줄로 복사ddP
- 실행 취소 / 다시 실행
u
→ 실행 취소<C-r>
→ 다시 실행
- 파일 열기 / 저장 / 종료 / 변경 파일 (버퍼)
:e <path/to/file>
→ 파일 열기:w
→ 저장:saveas <path/to/file>
→ 다른 이름으로 저장<path/to/file>
:x
,ZZ
또는:wq
→ 저장 후 종료 (:x
필요한 경우에만 저장한다는 의미입니다. ZZ는 콜론을 입력하고 Enter 키를 누르지 않아도 됨):q!
→:qa!
다른 파일이 변경 되더라도 저장하지 않고 종료하고 편집중인 모든 파일을 강제로 종료하십시오.:bn
그리고:bp
→ 동시에 많은 파일을 열 수 있습니다.이 두 명령을 사용하여 다음 또는 이전 파일로 전환하십시오. (Chen Hao 참고 : 다음 파일에 n을 사용하고 싶습니다)
위의 명령에 익숙해 지십시오 일단 숙달하면 다른 편집자가 할 수있는 거의 모든 작업을 수행 할 수 있습니다. 그러나 지금까지는 vim을 사용하는 것이 여전히 약간 어색하다고 생각하지만 중요하지 않습니다. 3 단계로 넘어갈 수 있습니다.
레벨 3, 강하고 빠름
축하합니다! 당신은 훌륭한 일을했다. 더 흥미로운 것을 시작할 수 있습니다. 세 번째 수준에서는 vi와 호환되는 명령에 대해서만 이야기합니다.
…보다 나은
다음으로, vim이 어떻게 반복되는지 봅시다 :
.
→ (소수점) 마지막 명령을 반복 할 수 있습니다- N <명령> → 명령을 N 번 반복
다음은 예입니다. 파일을 찾으려면 다음 명령을 시도하십시오.
2dd
→ 2 줄 삭제3p
→ 텍스트를 3 번 붙여 넣기100idesu [ESC]
→ 쓰겠습니다.” desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu 데 desu desu 데 desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu”.
→ 마지막 명령 -100 “desu”를 반복하십시오.3.
→ “desu”를 3 번 반복하십시오 (참고 : 300이 아니라 VIM이 얼마나 똑똑한 지 알 수 있습니다).
강함
커서를보다 효율적으로 사용하려면 다음 명령을 이해해야합니다 . 건너 뛰지 마십시오 .
- N
G
→ N 행으로 이동 (Chen Hao 참고 : 명령의 G는 대문자 임에 유의하십시오. 일반적으로 다음을 사용합니다. N에서 N 행, 예 : 137에서 137 행) gg
→ 첫 번째 줄로 이동하십시오. (Chen Hao Note : 1G와 같거나 1)G
→ 마지막 줄로갑니다.- 단어별로 이동 :
w
→ 다음 단어의 시작으로 이동하십시오.e
→ 다음 단어의 끝까지.
아래에서는 가장 강력한 커서 이동에 대해 설명하겠습니다.
%
: 일치하는 괄호를 포함하여, 이동(
,{
,[
(첸 하오 참고 : 괄호에 커서를 이동해야합니다).*
그리고#
: 다음 (또는 이전) 일치하는 단어로 커서를 이동, 커서의 현재 단어 일치 (* 옆에, # 이전이다)
이 세 가지 명령은 프로그래머에게 매우 강력합니다.
더 빠른
많은 명령을이 명령과 연결하여 커서를 이동할 수 있으므로 커서의 이동을 기억해야합니다. 다음과 같이 많은 명령을 수행 할 수 있습니다.
<start position><command><end position>
예를 들어, 0y$
명령은 다음을 의미합니다.
0
→ 첫 줄y
→ 여기에서 복사 시작$
→이 줄의 마지막 문자로 복사
ye
현재 위치에서 단어의 마지막 문자를 입력 하고 복사 할 수 있습니다 .
y2/foo
2 “foo”사이에 문자열을 복사하도록 입력 할 수도 있습니다 .
아직 시간이 많이 있으며 복사를 위해 y를 누르지 않아도 다음 명령도 복사됩니다.
d
(지우다)v
(시각적 선택)gU
(대문자)gu
(소문자 만들기)- 그리고 더 많은
(Chen Hao 참고 : 시각적 선택은 매우 흥미로운 명령입니다. v를 먼저 누른 다음 커서를 움직이면 텍스트가 선택된 것을 볼 수 있습니다. 그러면 d, y, 대문자로 표시 될 수 있습니다.)
레벨 4 Vim 전력
이전 명령 만 마스터하면되고 VIM을 편안하게 사용할 수 있습니다. 그러나 이제 VIM의 킬러 기능을 소개합니다. 다음 함수는 vim 만 사용하는 이유입니다.
현재 행으로 커서를 이동하십시오. 0
^
$
f
F
t
T
,
;
0
→ 줄의 시작으로^
→이 줄의 첫 번째 비 공백 문자로 이동$
→ 줄 끝까지g_
→ 빈 줄이 아닌이 줄의 마지막 위치로 이동하십시오.fa
→ 다음 문자 a에는 다음 문자 fs를 사용할 수도 있습니다.t,
→ 쉼표 앞의 첫 문자로 이동하십시오. 쉼표는 다른 문자로 변경할 수 있습니다.3fa
→ 현재 줄에서 세 번째 항목을 찾으십시오.F
그리고T
→와f
와t
같은, 그 반대 방향.
또 다른 유용한 명령은 dt"
→ 큰 따옴표가 나타날 때까지 모든 내용을 삭제하는 것입니다. "。
지역 선택 <action>a<object>
또는 <action>i<object>
비주얼 모드에서 이러한 명령은 매우 강력하며 명령 형식은
<action>a<object>
와 <action>i<object>
- action은
d
(삭제),y
(복사),v
(모드에 따라 선택 가능 ) 과 같은 명령 이 될 수 있습니다. - 객체는
w
단어,W
공백으로 분리 된 단어,s
문장 및p
단락 일 수 있습니다. 특수 문자가 될 수도 있습니다."、
'、
)、
}、
]。
string이 있다고 가정하면 (map (+) ("foo"))
커서 키가 첫 번째 o
위치에 있습니다.
vi"
→를 선택합니다foo
.va"
→를 선택합니다"foo"
.vi)
→를 선택합니다"foo"
.va)
→를 선택합니다("foo")
.v2i)
→ 선택합니다map (+) ("foo")
v2a)
→ 선택합니다(map (+) ("foo"))
![텍스트 객체 선택](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/textobjects.png)
작업 차단 : <C-v>
블록 작동, 일반적인 작동 : 0 <C-v> <C-d> I-- [ESC]
^
→ 줄의 시작으로<C-v>
→ 블록 동작 시작<C-d>
→ 아래로 이동 (hjkl을 사용하여 커서를 이동하거나 % 등을 사용할 수도 있음)I-- [ESC]
→ 삽입하고 ”--
“를 삽입 한 다음 각 줄에 적용하려면 ESC 키를 누릅니다.
![직사각형 블록](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/rectangular-blocks.gif)
Windows에서 VIM에서는 사용할 필요가 <C-q>
대신에 <C-v>
, <C-v>
당신은 클립 보드의 사본입니다.
자동 프롬프트 : <C-n>
및 <C-p>
삽입 모드에서 단어의 시작 부분을 입력 한 다음 <C-p>或是<C-n>,自动补齐功能就出现了……
![완성](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/completion.gif)
매크로 기록 : qa
작업의 순서 q
, @a
,@@
qa
레지스터에 작업을 기록a。
- 그런 다음
@a
기록 된 매크로가 재생됩니다. @@
새로 기록 된 매크로를 재생하는 바로 가기 키입니다.
예
이 줄에 한 줄만 있고 “1”만있는 텍스트에는 다음 명령을 입력하십시오.
qaYp<C-a>q
→qa
녹화 시작Yp
줄을 복사하십시오.<C-a>
1 증가q
녹음을 중지하십시오.
@a
→ 1 2 미만으로 작성@@
→ 2 앞면에 3 쓰기- 이제
100@@
새로운 100 개의 행을 만들고 데이터를 103으로 늘립니다.
![매크로](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/macros.gif)
비주얼 선택 : v
, V
,<C-v>
앞에서 <C-v>
예제 (Windows에서는 <Cq> 여야 함)를 보았고 v
와 를 사용할 수 있습니다 V
. 선택하면 다음을 수행 할 수 있습니다.
J
→ 모든 라인을 하나의 라인으로 연결<
또는>
→ 왼쪽 또는 오른쪽으로 들여 쓰기=
→ 자동 들여 쓰기 (Chen Hao 참고 :이 기능은 매우 강력합니다. 너무 좋아합니다)
![자동 들여 쓰기](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/autoindent.gif)
선택한 모든 줄 뒤에 무언가를 추가하십시오.
<C-v>
- 관련 행을 선택 (당신은 사용할 수 있습니다
j
또는<C-d>
또는/pattern
또는%
등 …) $
줄 끝까지A
, 문자열을 입력하고ESC。
![여러 줄에 추가](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/append-to-many-lines.gif)
분할 화면 : :split
및 vsplit
.
다음은 VIM의 도움말을 사용할 수있는 주요 명령 :help split
입니다.이 사이트의 이전 기사 VIM 분할 화면을 참조하십시오 .
:split
→ 분할 화면:vsplit
생성 (수직 분할 화면 생성)<C-w><dir>
: dir은 방향이며hjkl
, 분할 화면을 전환하는 데 사용되는 ← ↓ ↑ → 중 하나 일 수 있습니다 .<C-w>_
(또는<C-w>|
) : 크기 최대화 (<Cw> | 수직 분할 화면)<C-w>+
(또는<C-w>-
) : 크기를 늘립니다
![스플릿](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/split.gif)
결론
- 위의 내용은 저자가 가장 일반적으로 사용하는 명령의 90 %입니다.
- 매일 1 ~ 2 개의 새로운 명령을 배우는 것이 좋습니다.
- 2-3 주 후에는 vim의 힘을 느낄 것입니다.
- 때로는 VIM을 배우는 것이 등을 들고 다니는 것과 같습니다.
- 다행히도 vim에는 매우 유용한 도구와 훌륭한 문서가 많이 있습니다.
- 기본 명령에 익숙해 질 때까지 vimtutor를 실행하십시오.
- 온라인 도움말 문서에서주의 깊게 읽어야 할 것은
:help usr_02.txt
입니다. !,
디렉토리, 레지스터, 플러그인 등과 같은 다른 많은 기능 을 배우게됩니다 .
vim을 배우는 것은 피아노 연주를 배우는 것과 같습니다. 일단 배우면 많은 이점이 있습니다.
—————————— 텍스트 끝 —————————
vi / vim의 경우, 주석 :이 도구는 큰 키보드를 사용하여 마우스 나 작은 키보드를 사용하지 않고도 많은 복잡한 기능의 텍스트 편집을 완료 할 수있는 편집기입니다. 그렇지 않으면 Visual Studio 용 vim 플러그인이 없습니다 .