이 시리즈의 이전 글에서는, 7가지 팁과 트릭을 검토했으며 여기에는, 이전에 제시된 이유들 외에도, 리눅스에서 효과적으로 텍스트 편집기를 사용하는 방법을 배우는 것은 시스템 관리자나 엔지니어에게 필수적인 능력이며 주요 리눅스 인증 프로그램 (예: LFCS, LFCE, RHCSA, 그리고 RHCE와 같은)을 통과하기 위한 역량입니다.
그렇지만, 시작해 보겠습니다.
8. 수평 또는 수직 Vim 창 만들기
이 팁은 Yoander 중 한 명인 우리 독자가 제 1부에서 공유한 것입니다. 동일한 주 창 내에서 별도의 파일을 편집하기 위해 여러 가로 또는 세로 분할로 vi/m을 시작할 수 있습니다:
두 개의 수평 창으로 vi/m을 시작하고, 위쪽에는 test1가 있고 아래쪽에는 test2가 있습니다.
vim -o test1 test2

두 개의 수직 창으로 vi/m을 시작하고, 왼쪽에는 test3가 있고 오른쪽에는 test4가 있습니다:
vim -O test3 test4

vi/m 이동 루틴(h:
오른쪽, l:
왼쪽, j:
아래쪽, k:
위쪽)을 사용하여 하나의 창에서 다른 창으로 커서를 전환할 수 있습니다:
- Ctrl+w k – 위쪽
- Ctrl+w j – 아래쪽
- Ctrl+w l – 왼쪽
- Ctrl+w h – 오른쪽
9. Vim에서 대문자 또는 소문자 변경
다음 예제에서 X는 정수 숫자입니다.
- 일련의 문자를 대문자로 변경하려면 첫 번째 문자 위에 커서를 놓은 다음 gUX를 ex 모드에서 입력하고 마지막으로 키보드의 오른쪽 화살표를 누릅니다.
- X 개수의 단어를 변경하려면 단어의 시작 부분에 커서를 놓은 다음 gUXw를 ex 모드에서 입력합니다.
- 한 줄을 대문자로 변경하려면 줄 어딘가에 커서를 놓은 다음 gUU를 ex 모드에서 입력합니다.
예를 들어, 전체 소문자 줄을 대문자로 변환하려면 줄 어딘가에 커서를 놓은 다음 gUU를 입력해야 합니다.

예를 들어, 2개의 대문자 단어를 소문자로 변환하려면 첫 번째 단어의 시작 부분에 커서를 놓고 gu2w:

10. Vim 삽입 모드에서 텍스트 삭제
단어를 한 번에 삭제하거나 ex 모드에서 (즉, dw로 단어 삭제) 문자를 삭제할 수 있지만 다음과 같이 삽입 모드에서도 할 수 있습니다:
- Ctrl + h: 커서가 현재 위치한 곳의 이전 문자를 삭제합니다.
- Ctrl + w: 커서가 현재 위치한 곳의 이전 단어를 삭제합니다. 이것이 올바르게 작동하려면 커서를 삭제할 단어 뒤의 빈 공간에 놓아야 합니다.
- Ctrl + u: 커서가 있는 곳의 왼쪽 문자부터 현재 줄을 삭제합니다.
11. Vim 내에서 기존 줄 이동 또는 복사
커서가 작업을 수행하려는 위치에 있을 때만 dd
, yy
, p
명령어를 사용하여 각각 줄을 삭제, 복사 및 붙여넣을 수 있다는 것은 사실이지만,
좋은 소식은 복사 및 이동 명령어로 커서가 현재 어디에 위치하든 같은 작업을 수행할 수 있다는 것입니다.
다음 예시에서는 Terri Nicole Tharrington의 “Forever” 제목의 짧은 시를 사용할 것입니다. 시작하려면 Vim에서 줄 번호를 표시하도록 하겠습니다. (명령 모드에서 :set nu를 입력하십시오. 이것은 추가 팁입니다.) :3copy5를 사용하여 (명령 모드에서) 줄 3을 줄 5 아래로 복사합니다:

이제 마지막 변경 사항을 취소하십시오. (Esc + u – 또 다른 추가 팁!) :1move7를 입력하여 줄 7을 줄 1로 대체합니다. 줄 2부터 줄 7까지가 위로 이동되고 이전 줄 1이 줄 7에 위치하게 되는 것을 주목하십시오:

12. Vim에서 패턴 일치를 탐색하고 세기
이 팁은 대체 명령어(tip #7 in Part 1 of this series)에 기반하지만 n 옵션에 의해 대체 동작이 무효화되므로 지정된 패턴의 일치 횟수를 세어줍니다:
앞쪽 슬래시를 생략하지 마십시오!
:%s/pattern//gn
예를 들어,
:%s/libero//gn

ex 모드에서 패턴의 일치 횟수를 하나씩 이동하려면 n (소문자 N)를 누르십시오. 이전 인스턴스로 이동하려면 N을 누르십시오.
13. Vim에서 지정된 줄에 파일 열기
기본적으로 vi/m을 시작하면 커서가 마지막에 편집된 줄에 위치합니다. 프로그램을 열면서 커서를 특정 줄에 바로 위치시키고 싶다면 다음과 같은 트릭을 사용할 수 있습니다:
# vim filename +line_number
예를 들어, forever.txt를 열고 줄 6에 커서를 두십시오:
# vim forever.txt +6
이 예제를 조금 수정해 봅시다. 패턴이 세 번째로 나타나는 줄에서 파일을 열려고 한다고 가정해 봅시다:
# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)
위 명령어가 하는 일을 자세히 살펴보겠습니다:
- grep -in pattern filename – 패턴이 나타나는 파일명의 모든 줄을 줄 번호와 함께 출력합니다.
- sed -n 3p – 이전 파이프라인 출력에서 세 번째 줄을 출력합니다.
마지막으로,
- cut -d: -f1은 콜론
(:)
을 필드 구분자로 사용하여 이전 파이프라인의 첫 번째 필드를 반환합니다.
grep -in forever forever.txt grep -in forever forever.txt | sed -n 3p grep -in forever forever.txt | sed -n 3p | cut -d: -f1

이전 명령어의 결과는 지정된 줄에서 프로그램을 열기 위해 vi/m에 전달됩니다.
14. Vim 환경 커스터마이징
설정 파일을 편집하거나 코드를 작성하기 위해 vi/m을 사용한다면 프로그램을 처음 열 때 줄 번호를 표시하고
- Linux 관리자용 Vim: 8가지 강력한 팁과 트릭 (Part 2)
자동 들여쓰기를 설정하여 Enter 키를 누를 때 커서가 자동으로 올바른 위치에 배치되도록 하고 싶을 것입니다. 또한 탭이 차지하는 공백 수를 사용자 정의하고 싶을 수도 있습니다.
vi/m을 실행할 때마다 이러한 작업을 수행할 수 있지만, 이러한 옵션을 ~/.vimrc
에 설정해 두면 자동으로 적용되기 때문에 더 편리합니다:
set number set autoindent set shiftwidth=4 set softtabstop=4 set expandtab
추가적으로 vi/m 환경을 맞춤 설정하려면 온라인 vim 문서를 참조할 수 있습니다.
15. Vimtutor를 사용하여 일반적인 Vim 도움말 받기
일반적인 vi/m 기술을 다시 익힐 필요가 있을 때마다, 명령줄에서 vimtutor를 실행하면 완전한 vi/m 도움말이 표시되며, 웹 브라우저를 실행하지 않고도 vi/m에서 특정 작업을 수행하는 방법을 검색할 수 있습니다.
vimtutor

Vimtutor의 내용을 vi/m의 일반 파일처럼 탐색하거나 검색할 수 있습니다.
요약
이 2부작 시리즈에서 저는 명령줄 도구를 사용하여 텍스트를 편집할 때 더 효과적으로 작업할 수 있도록 여러 가지 vi/m 팁과 요령을 공유했습니다.
I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.
Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/