리눅스에서 텍스트 편집기 사용법을 배우는 것은 불가피합니다. 모든 시스템 관리자는 매일 구성 (일반 텍스트) 파일을 다루며, 대부분의 경우 이는 명령줄 인터페이스에서 하나 이상의 도구를 사용하여 순수하게 수행됩니다 (예: nano, vim, 또는 emacs).
nano는 아마도 새로운 사용자에게 더 적합할 수 있지만, vim 또는 emacs는 고급 기능으로 인해 더 경험 많은 사용자들의 선택 도구입니다.
그러나 이 텍스트 편집기 중 하나를 사용하는 방법을 배워야 하는 이유가 또 하나 있습니다: CLI 전용 서버에 부딪힐 수도 있고, GUI 기반 리눅스 서버 또는 데스크톱에서 데스크톱 관리자 문제에 직면할 수도 있으며, 구성 파일을 검토하고 편집할 유일한 리소스가 명령줄인 경우가 있습니다.
이 기사와 다음 2부작 중에서는 15가지 팁과 트릭을 통해 vim 스킬을 향상시키는 방법을 검토할 것입니다. 이미 이 텍스트 편집기에 익숙하다고 가정합니다.
당신이 진행하기 전에 vim에 익숙해지는 것이 좋습니다: vim 텍스트 편집기 사용 방법을 참조하여 vim으로 시작하는 매우 상세한 가이드를 참고하십시오.
1. Vim에서 온라인 도움말 액세스
vim을 시작한 후, 온라인 도움말에 들어가려면 F1
을 누르거나 :h
를 ex 모드에서 사용하십시오. 특정 섹션이나 주제로 이동하려면 커서를 해당 위치에 놓고 Ctrl+]
(Ctrl
, 그리고 닫는 대괄호)를 누르십시오.
작업을 마치면 Ctrl+t
를 눌러 이전 화면으로 돌아갈 수 있습니다. 또는 :h <주제 또는 명령어>
로 특정 주제나 명령어를 찾을 수 있습니다.
예를 들어,
:h x
x (삭제) 명령에 대한 도움말을 표시합니다:

그리고
:h substitute
대체 명령에 대한 도움말을 가져옵니다 (이 기사의 최종 팁).
2. Vim 편집기 내부에 책갈피 추가
한 화면보다 큰 파일을 편집하고 있다면, 마크가 제공하는 기능을 감사히 여기게 될 것입니다. vim에서 마크를 책갈피로 생각할 수 있습니다 – 한 번 어딘가에 놓으면 빠르고 쉽게 돌아갈 수 있습니다.
예를 들어, 300단어 구성 파일을 편집하고 있고 어떤 이유로 인해 예를 들어 줄 30과 150 사이를 반복해서 전환해야 할 경우.
첫째로, :30
을 입력하여 ex 모드에서 #30 라인으로 이동한 다음, 명령 모드로 돌아가서 ma (m, 그리고 a)를 눌러 30번 라인에 “a”라는 표시를 만드세요.
그런 다음 250번 라인으로 이동하려면 (ex 모드에서 :250
을 입력) 백틱을 누르고(`a
), 30번 라인의 표시인 a로 돌아가세요.
vim에서 표시를 식별하기 위해 대소문자를 사용할 수 있습니다 (이제 라인 #250에 A라는 표시를 만드는 과정을 반복하세요).
표시를 확인할 수 있습니다
:marks aA

보시다시피, 각 표시는 파일의 특정 라인/열 위치로 참조됩니다.
3. Vim에서의 쉬운 코드 정리
만약 쉘 스크립트를 편집하다가 이전 개발자가 들여쓰기에 대해 꽤 엉망이었다는 것을 깨달았다면 어떻게 몇 가지 vim 명령으로 수정할 수 있는지 살펴봅시다.
먼저, 블록의 시작 부분에 커서를 놓고 Ctrl+v
(Ctrl, 그리고 v)를 눌러 시각적 블록을 선택하세요.
- 왼쪽으로 들여쓰기하려면:
<j
를 누르세요 - 오른쪽으로 들여쓰기하려면:
<j
를 누르세요
그런 다음 .
(점) 명령을 눌러 들여쓰기를 반복하세요. 선택한 블록은 한 번의 키 입력으로 오른쪽이나 왼쪽으로 이동합니다.
dot 명령어를 사용하는 또 다른 전형적인 예는 일련의 단어를 삭제해야 할 때입니다: 삭제하려는 첫 번째 단어 위에 커서를 놓은 다음 dw를 누릅니다.
다음 단어를 계속 삭제하려면 .
를 누르기만 하면 됩니다(dw를 여러 번 반복하는 것보다 더 짧고 쉽습니다).
4. Vim에서 유니코드 문자 삽입
키보드 레이아웃이 파일에 특수한 유니코드 문자를 쉽게 삽입할 수 없게 되거나 다른 언어 설정이 있는 서버 앞에 있다면 이 속임수가 유용할 것입니다.
이를 위해 삽입 모드에서 Ctrl+v
를 누른 다음 u
와 삽입하려는 문자의 16진수 숫자 코드를 입력합니다.
특수 문자와 해당하는 숫자 코드 목록을 확인할 수 있는 유니코드 차트를 확인할 수 있습니다.
예를 들어,
Ctrl+v followed by | returns |
u0040 | @ |
u00B5 | μ |
u20AC | € |
5. Vim에서 외부 명령어 출력 통합
vim으로 편집 중인 파일에 외부 명령어의 출력을 직접 삽입해야 할 때가 있습니다.
예를 들어, 스크립트에서 스크립트가 위치한 디렉터리의 절대 경로를 나중에 사용하기 위해 내 스크립트에 DIR
이라는 변수를 만들곤 합니다.
그렇게 하려면 다음과 같이 합니다:
:r! pwd
ex 모드에서. 따라서 현재 작업 디렉터리가 삽입됩니다.
다른 예시로, 스크립트 어딘가에서 기본 게이트웨이를 사용하도록 요구받은 경우, vim을 종료하지 않고 현재 파일에 쉽게 삽입할 수 있습니다:
:!r ip route show | grep default | cut -f 3 -d " "
6. Vim에서 외부 파일 내용 추가하기
현재 편집 중인 파일에 다른 파일의 내용을 추가해야 할 경우, 문법은 이전 팁과 유사합니다. 느낌표만 생략하면 됩니다.
예를 들어, /etc/passwd의 내용을 복사하려면 다음과 같이 합니다:
:r /etc/passwd
이 팁은 구성 파일을 수정해야 하지만 원래 파일을 유지하여 “공장 설정“으로 되돌리고 싶을 때 유용할 수 있습니다.
7. Vim에서 단어 검색 및 교체하기
한 번 시험 중에 무작위 데이터가 포함된 큰 텍스트 파일을 열어야 하는 과제가 주어졌습니다. 할당된 작업은 단어 Globe를 Earth로 교체하는 것이었습니다(네, 정확한 단어를 아직도 기억합니다).
sed에 익숙한 사람들에게는 이것이 들리겠지만, ex 모드에서 타이핑하십시오:
:%s/old/new/g
여기서 old는 검색할 패턴이고 new는 그것을 교체할 문자열입니다.
위에서 설명한 경우에는 다음을 사용했습니다:
:%s/Globe/Earth/g
작업을 완료하려면.
그럼 교체하기 전에 묻는 것을 원하시나요? 쉽습니다. 위의 명령어 끝에 c를 추가하기만 하면 됩니다:
:%s/old/new/gc
패턴의 발생이 강조되고, 새 문자열로 교체할지 여부를 묻게 됩니다:
:%s/gacanepa/me/gc

여기에서
- y: yes
- n: no
- a: substitute all
- q: quit
- l: substitute this occurrence and quit
- ^E (Ctrl+E): 화면을 한 페이지 위로 스크롤합니다.
- ^Y (Ctrl+Y): 화면을 한 페이지 아래로 스크롤합니다.
요약
이 글에서는 여러분의 텍스트 편집 기술에 추가할 수 있는 몇 가지 vim 팁과 트릭을 검토하기 시작했습니다. 여러분은 아마도 다른 몇 가지를 떠올릴 것이므로 아래의 댓글 양식에 공유해 주세요. 저는 다음 vim 시리즈의 마지막 기사에서 그것들을 다루는 것을 고려하겠습니다.
Source:
https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/