상상해보세요. Linux 시스템에 발을 담그고 파일을 편집하려 애쓰는데, 매번 고대 언어를 해독하는 것 같은 느낌이 듭니다. 주변을 클릭할수록 더 헤매일수록, Linux에서 Vim으로 전환해 보는 건 어떨까요?
이 자습서에서는 광범위하게 평가받는 텍스트 편집기인 Vim의 비밀을 풀어내어 Linux 배회자에서 명령 줄 능인으로 변신시킵니다.
상상의 검(키보드라고도 함)을 잡고 Vim의 세계로 여행해 보세요!
전제 조건
Linux 시스템에서 Vim을 마스터하기 위한 무대 설정에 필요한 몇 가지 전제 조건은 다음과 같습니다:
- A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.
Linux에서 Vim을 사용하여 파일 생성 및 편집
Vim은 각각 고유한 편집 기능을 제공하는 다양한 모드에서 작동합니다. 그러나 이 모드로 이동하기 전에 Linux에서 Vim을 사용하여 파일을 생성하고 편집하는 방법을 먼저 배워야 합니다.
Vim을 사용하여 파일을 생성하고 편집하려면 다음 단계를 따르세요:
1. 터미널을 열고 다음 vim
명령을 실행하여 Vim을 사용하여 sshd_config
(임의)라는 파일을 생성합니다. 이 명령은 파일이 존재하지 않으면 자동으로 파일을 생성합니다. 그렇지 않으면 기존 파일이 Vim에서 열립니다.
새 파일을 생성한 경우 Vim의 인터페이스는 다음과 같으며, 이는 Vim이 현재 커맨드 모드에 있는 것을 나타냅니다. 커맨드 모드는 Vim 편집기에서 텍스트와 상호 작용하는 주요 모드 중 하나입니다.

2. 다음 텍스트를 클립 보드에 복사하십시오. 이 텍스트는 실제 서버 구성과는 관련이 없으며, 순수한 데모용 SSH 서버 설정을 포함합니다.
3. Vim에서 i
를 눌러 insert 모드로 전환합니다. insert 모드는 Vim에서 또 다른 주요 모드 중 하나로, 문서의 내용을 입력하고 수정하는 데 사용됩니다.
insert 모드에 진입하면 상태 행이 다음과 같이 — INSERT —를 표시합니다.

4. 이제 Ctrl+Shift+V 또는 Shift+Insert를 눌러 두 번째 단계에서 복사한 텍스트를 Vim 편집기에 붙여넣고, Esc를 눌러 insert 모드를 종료합니다 (커맨드 모드로 전환).
— INSERT — 상태가 사라지고 커맨드 모드로 돌아왔음을 알 수 있습니다.

5. 마지막으로, :w
명령을 입력하고 Enter를 눌러 변경 사항을 파일에 저장합니다. 이때 편집기를 닫지 않습니다.
필요한 경우 다음 명령을 실행할 수 있습니다:
Command | Details |
---|---|
:q! |
Quit the editor without saving the changes. |
:w! |
Write the current file changes forcefully. |
:wq |
Save the changes and quit the editor (or :wq! to save and quit forcefully). |
e! |
Revert to the last saved version of the file. |

상태 행은 파일에 쓰여진 데이터 크기를 표시하는데, 이 경우에는 23줄(23L)과 624바이트(624B)입니다.

Vim에서 텍스트 탐색
Vim으로 파일을 만들고 편집하는 기술을 습득한 후에는 텍스트 편집 능력을 향상시킬 중요한 기술인 Vim 탐색에 대해 알아보겠습니다. 효과적인 탐색은 Vim의 잠재력을 발휘하는 열쇠입니다. 이는 광활한 풍경을 탐험하는 것과 유사합니다.
Vim에서 텍스트를 탐색하는 방법을 보려면 다음을 진행하십시오:
1. 이제 :set nu
명령어를 입력하고 Enter를 눌러 Vim에서 줄 번호를 설정하십시오. 줄 번호는 코드나 대형 문서를 다룰 때 중요한 편집기 기능입니다.
성공하면 아래에 편집기에서 줄 번호가 표시됩니다.

2. 다음으로 명령 모드(Esc
)로 전환하고 gg
명령을 눌러 파일의 시작으로 이동하십시오.

3. 이제 MaxSessions 매개변수의 시작 지점에 도달할 때까지 다음 명령 중 하나를 누르고, 커서를 줄 끝으로 이동하기 위해 $
를 누르십시오.
Command | Details |
---|---|
h |
Move the cursor to the left or the previous character. |
j |
Move the cursor one line down. |
k |
Move the cursor one line up. |
l |
Move the cursor to the right or the next character. |

4. 이제 다음과 같이 텍스트를 교체하십시오:
i
를 눌러 삽입 모드로 전환하십시오.- 값을(백스페이스 또는 삭제) 삭제하고, 10을 25로 교체하십시오.
- 명령 모드(
Esc
)로 전환하고 변경 사항을 저장하십시오(:w
).

특정 지점에 텍스트 삽입
Vim은 새 텍스트를 정확한 위치에 원하는 대로 삽입할 수 있는 다양한 명령을 제공합니다. 이 기능은 줄의 시작 부분, 현재 커서 위치 바로 다음, 또는 줄의 끝에 삽입하려는 경우에도 작동합니다.
특정 지점에 텍스트를 삽입하는 방법을 확인하려면 다음을 수행하세요:
1. 커서를 줄의 끝에 위치시킨 상태에서 I
(Shift+I)를 눌러 삽입 모드로 진입하고 동시에 커서를 줄의 시작 부분으로 이동합니다.

2. 명령 모드로 전환 (Esc
)한 다음 현재 텍스트 줄의 다른 문자(즉, 시작 부분)로 커서를 이동시키고 a
명령을 누릅니다.
이 명령은 Vim을 삽입 모드로 전환하고 커서를 이전 위치로부터 다음 문자에 위치시킵니다. 이러한 동작은 기존 텍스트를 방해하지 않고 줄 중간에 빠르게 텍스트를 추가하는 데 유용합니다.

3. ‘y’를 입력하여 MaxSession 키를 MyaxSession으로 표기하고 명령 모드로 돌아갑니다 (Esc
).
새로운 문자 ‘y’가 첫 번째 문자 바로 뒤에 나타나는 것을 알 수 있습니다.

4. 이제 다음과 같이 텍스트 줄을 수정합니다:
- Shift+A를 눌러
A
명령을 실행하면 Vim이 삽입 모드로 전환되고 커서가 줄의 끝으로 이동합니다. 이 동작은 세미콜론 추가나 문장을 마무리하는 등의 내용을 빠르게 추가하는 데 이상적입니다. - 줄의 끝에 0을 추가하여 값을 250으로 변경합니다.
- Return to the command mode (
Esc
), and save the changes (:w
).

새 행 열기
Vim 파일 내에서 텍스트를 전략적으로 배치하는 방법을 마스터했다면, 이제 콘텐츠를 잘 구조화하고 정리하는 기술을 탐험할 때입니다. Vim에서 새 행을 여는 능력은 더 읽기 쉽고 미학적으로 매력적인 텍스트로 향하는 여권입니다.
위나 아래에 새로운 줄을 열려면 다음 단계를 완료하세요:
1. 명령 모드에서 현재 텍스트 아래에 새로운 줄을 열려면 o
를 누르고 MyaxSessions에 대한 다음 주석을 추가하세요.

2. 명령 모드로 전환하려면 (Esc
) 커서를 다른 텍스트 줄로 이동하고 O
(Shift+O)를 눌러 현재 텍스트 위에 새로운 줄을 추가하세요.

3. 이제 파일에 다음 명령을 추가하고 변경 사항을 저장하려면 (:w
)

단어 및 텍스트 줄 삭제
Vim은 기본 삭제 또는 백스페이스 키를 넘어서 텍스트를 삭제하고 교체하는 효율적인 명령을 제공합니다. 이러한 명령은 명령 모드에서 사용 가능하여 문자, 단어 또는 전체 줄을 빠르게 수정하고 수정할 수 있도록 합니다.
Linux에서 Vim에서 텍스트를 삭제하고 교체하려면 다음을 실행하세요:
1. MyaxSessions 매개변수로 커서를 이동하고 특히 ‘y’ 문자에 위치하세요.

2. 그런 다음, 커서 아래의 문자를 즉시 제거하려면 x
를 누르세요. 이 경우 ‘y’입니다.
매개변수는 아래와 같이 MaxSessions로 다시 원래 텍스트로 돌아갑니다.

3. PermitRootLogin no: 행으로 커서를 이동하세요.

4. 이제 전체 텍스트 라인을 삭제하려면 "_dd
를 누르세요.
명령의 "_
부분은 블랙홀 레지스터를 지정하는데, 이는 삭제된 텍스트를 버리기 때문에 어떤 레지스터에도 저장되지 않습니다.
Vim에는 텍스트를 저장할 수 있는 레지스터 집합이 있으며 블랙홀 레지스터를 지정하지 않으면 명령이 텍스트를 잘라내기만 하고 삭제하지 않습니다.
성공하면 PermitRootLogin no: 행이 사라진 것을 알 수 있습니다.

5. 명령 모드에서 Specifies 단어의 시작 위치로 커서를 이동하세요.

6. 마지막으로, "_dw
명령을 실행하여 아래와 같이 단어 Specifies를 제거하세요.

선택적으로 다음 명령을 사용하여 추가 삭제 작업을 수행할 수 있습니다:
Command | Details |
---|---|
"_d$ |
Delete texts from the cursor position to the end of the line. |
"_D |
Deletes from the cursor position to the end of the line. |
"_d^ |
Deletes from the cursor position to the first non-whitespace character of the line |
"_dgg |
Deletes from the cursor position to the beginning of the file. |
"_dG |
Deletes from the cursor position to the end of the file. |
문자 및 텍스트 라인 교체
제출된 텍스트를 한국어로 번역합니다.
“Vim에서 전략적인 삭제에서 주목해야 할 것은 동전의 뒷면입니다. 문자와 텍스트 라인을 대체하는 것은 정확하게 텍스트를 다듬고 재정의할 수 있는 브러쉬 스트로크입니다. 좋은 소식은 Vim이 한 번에 한 문자나 전체 텍스트 라인을 대체할 수 있게 해줍니다.
문자와 텍스트 라인을 대체하려면 다음 작업을 계속하세요:
1. 커서를 다음 행에 위치시키십시오. AuthorizedKeysFile .ssh/authorized_keys, 특히 ‘z‘ 문자에 authorized에서 아래와 같이 표시됩니다:

2. 한 번 위치하면 r
을 눌러서 Vim에게 커서 아래의 문자를 대체하고 ‘ s‘ 문자를 입력할 것임을 알립니다. r
명령을 사용하면 먼저 삽입 모드 (i
)로 전환하지 않고도 문자를 대체할 수 있습니다.
‘ authorized의 ‘ z ‘ 문자가 ‘ s ‘ 문자로 대체되어 단어가 ‘ authorised ‘로 변경되었음을주의하십시오.

3. 그다음, AuthorizeKeysFile에서 ‘z‘ 문자에 커서를 놓으십시오.

4. R
(Shift+R)을 눌러 대체 모드로 입력하고 문자를 대체하려면 ‘ s ‘를 입력하십시오. 그러나 아직 대체 모드를 종료하지 마십시오.
r
명령이 하나의 문자만 대체할 수 있도록 하는 반면, R
명령은 계속해서 입력하는 대로 기존 텍스트를 덮어쓸 수 있습니다.”

5. 궁극적으로 다음 텍스트를 클립보드로 복사하고, 커서를 파일의 시작으로 이동한 다음, 복사한 텍스트를 붙여넣으세요 (Ctrl+Shift+V 또는 Shift+Insert).
여전히 대체 모드에 있기 때문에, 붙여넣은 텍스트가 파일의 첫 번째 줄을 대체합니다.

파일 내 텍스트 검색
다시 하거나 되돌리는 작업에 참여하면 파일 내 텍스트를 검색하는 기술이 유용합니다. Vim을 사용하면 파일에서 특정 단어, 구문 또는 패턴을 검색할 수 있습니다.
막대한 생산성 향상을 상상해보세요. 특정 텍스트 섹션을 목표없이 스크롤하지 않고 빠르게 찾아내고 조작할 수 있는 경우입니다.
파일 내 텍스트를 검색하려면 다음 단계를 수행하세요:
1. 파일의 시작으로 커서를 이동합니다 (gg
명령), 검색 모드를 시작하려면 /
(슬래시)를 누르고 검색어 log를 입력한 후 Enter 키를 누릅니다.
이 명령은 지정한 용어(log)를 검색하여 커서를 해당 용어의 다음 발생지로 이동합니다.

2. 다음으로, 다음 발생지로 이동하려면 n
을 누릅니다.

3. 이제, 이전 발생지로 돌아가려면 N
(Shift+N)을 누릅니다.

또한, Vim은 더 많은 검색 유연성을 위해 다음과 같은 다른 검색 단축키를 제공합니다:
Command | Details |
---|---|
? |
Initiates a reverse search of a term. |
* |
Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance. |
# |
Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance. |
Vim에서 다른 명령과 검색을 결합하기
Vim의 복잡한 환경을 탐색하면서 검색을 다른 명령과 결합하여 텍스트 편집 능력에 더 깊이를 더해보는 것은 어떨까요?
Vim은 특정 발생을 대체하는 것부터 패턴과 일치하는 라인을 삭제하는 등의 작업을 수행할 수 있게 해줍니다.
Vim에서 검색과 작업 간의 시너지를 확인하려면 다음을 실행하세요:
1. 명령 모드에서 시작 지점에 커서를 놓아 삭제를 시작하려는 위치로 이동하세요(즉, 검색 용어 log의 첫 번째 발생).

2. 그런 다음 d/log
를 입력하고 Enter를 눌러 커서의 위치부터 용어 log의 다음 발생까지 모두 삭제합니다. 아래와 같이 표시됩니다.

3. 이전 작업을 되돌리려면 (u
명령을 사용), 커서를 검색 용어 log의 첫 번째 인스턴스로 이동하세요.

4. 이제 아래 명령을 실행하여 특정 범위 내에서 텍스트를 검색하고 바꿉니다. 여기서:
:.
– 현재 라인(.
)에서 명령 모드(:
)로 이동합니다.,$
– 대체의 범위를 지정합니다.s/log/logs/g
– Substitute all occurrences of the old word (log
) with new (logs
) globally (g
) within the specified range.

Vim에서 Visual 모드에서 텍스트를 선택하는 동안 텍스트를 선택하고 편집하는 데 유용한 기능을 발견해야 합니다.
Visual 모드를 사용하면 텍스트를 보다 대화식 및 시각적으로 조작할 수 있습니다. Visual 모드는 텍스트 일부를 강조 표시하고 작업하는 유연하고 효율적인 방법을 제공합니다.
텍스트를 선택하고 편집하려면 개별 문자를 선택하고 편집하거나 다음과 같이 텍스트 블록을 선택하고 편집할 수 있습니다:
1. 파일의 시작 부분으로 커서를 이동하려면 (gg
명령어) 아래에 표시된 대로 비주얼 모드를 활성화하려면 v
를 누르세요.

2. $
를 눌러 커서를 줄 끝으로 이동합니다. 비주얼 모드에 있으므로 명령은 텍스트 줄을 강조 표시합니다.

3. 이제 다음과 같이 복사하여 붙여넣기 작업을 수행하세요:
- 강조 표시된 텍스트를 Vim의 레지스터로 복사하려면
y
를 누르세요. - 커서를 파일의 마지막 줄로 이동시키려면
G$
를 누르세요. - 복사한 텍스트를 붙여넣으려면
p
를 누르세요 (구체적으로는 커서 뒤에).
p
명령은 단축키 (Ctrl+Shift+V 또는 Shift+Insert)를 사용하여 텍스트를 붙여넣는 것과 다릅니다.y
명령을 사용하여 텍스트를 복사하면 텍스트가 Vim의 레지스터에 저장되며p
명령을 사용하여 레지스터에서 텍스트를 붙여넣습니다.


4. 이전 작업을 취소하려면 (u
), 파일의 시작으로 커서를 이동하고 비주얼 라인 모드에 들어가려면 (gg
), V
(Ctrl+V)를 누르세요.
비주얼 모드에서 단일 줄을 선택하는 것과 달리 비주얼 라인 모드는 여러 줄의 텍스트를 선택할 수 있도록 합니다. 이것은 다음 단계에서 볼 수 있습니다.

5. 파일의 시작부터 Protocol 2 줄까지 문자를 선택하기 위해 아래쪽 화살표 키를 사용하세요.

6. 선택한 여러 줄의 텍스트를 잘라내려면 d
를 누르세요.

7. 마지막으로 6단계에서 잘라낸 텍스트를 다음과 같이 붙여넣으세요:
- 파일의 마지막 줄로 이동하려면
G
를 누르고 아래쪽에 새 줄을 만드세요 (o
). - 복귀하여 명령 모드로 돌아가세요 (
Esc
) 그리고 텍스트를 붙여넣으세요 (p
)。

결론
축하합니다! 당신은 리눅스용 Vim의 복잡한 영역을 탐험하여 텍스트 편집 지식의 보물창고를 열어보았습니다. 파일 생성 및 편집부터 시각 모드의 숙련에 이르기까지, 당신은 Vim의 능란한 사용자의 모자를 쓰고 있습니다.
하지만 여러분의 명령 줄 모험은 이제 막 시작되었습니다. 왜 이제 고급 기능인 매크로와 플러그인을 탐험해보지 않으시겠습니까?
이러한 기본 기술을 사용하여 Vim의 깊은 영역을 탐험해보십시오. 파일 관리, 복잡한 검색 패턴, 그리고 개인화를 위한 Vim 스크립팅과 같은 것들을요.