웹사이트 검색

모든 Linux 관리자를 위한 8가지 흥미로운 'Vi/Vim' 편집기 팁과 요령 - 2부


이 시리즈의 이전 기사에서는 vi/m 기술 세트에 추가할 수 있는 7가지 팁과 요령을 검토했습니다. 앞서 설명한 이유 외에도 시스템 관리자 또는 엔지니어의 필수 능력으로 Linux에서 텍스트 편집기를 효과적으로 사용하는 방법을 배우는 것은 주요 Linux 인증 프로그램(예: LFCS, LFCE, RHCSA 및 RHCE)을 통과하는 데 필요한 역량입니다. .

이제 시작하겠습니다.

팁 #8: 수평 또는 수직 창 만들기

이 팁은 독자 중 한 명인 Yoander가 1부에서 공유했습니다. 여러 개의 수평 또는 수직 분할로 vi/m을 실행하여 동일한 기본 창 내에서 별도의 파일을 편집할 수 있습니다.

상단에 test1, 하단에 test2가 있는 두 개의 수평 창으로 vi/m을 실행합니다.

vim -o test1 test2 

왼쪽에 test3, 오른쪽에 test4가 있는 두 개의 수직 창으로 vi/m을 실행합니다.

vim -O test3 test4 

일반적인 vi/m 이동 루틴(h: 오른쪽, l: 왼쪽, j:)을 사용하여 한 창에서 다른 창으로 커서를 전환할 수 있습니다. 하단, k: 상단):

  1. Ctrl+w k – 상단
  2. Ctrl+w j – 하단
  3. Ctrl+w l – 왼쪽
  4. Ctrl+w h – 오른쪽

팁 #9: 문자, 단어 또는 전체 줄을 대문자나 소문자로 변경하세요.

이 팁은 vim에서만 작동합니다. 다음 예에서 X는 정수입니다.

  1. 일련의 문자를 대문자로 변경하려면 첫 번째 문자에 커서를 놓은 다음 ex 모드에서 gUX를 입력하고 마지막으로 키보드의 오른쪽 화살표를 누릅니다.
  2. X개의 단어를 변경하려면 커서를 단어 시작 부분에 놓고 ex 모드에서 gUXw를 입력하세요.
  3. 전체 줄을 대문자로 변경하려면 줄의 아무 곳에나 커서를 놓고 ex 모드에서 gUU를 입력하세요.

예를 들어 전체 소문자 줄을 대문자로 변환하려면 줄의 아무 곳에나 커서를 놓고 gUU를 입력해야 합니다.

예를 들어, 대문자 2개 단어를 소문자로 변환하려면 첫 번째 단어의 시작 부분에 커서를 놓고 gu2w를 입력해야 합니다.

팁 #10: INSERT 모드에서 문자, 단어 또는 줄 시작 부분을 삭제하세요.

ex 모드(예: 단어를 삭제하려면 dw)에서 문자나 여러 단어를 한 번에 삭제할 수 있지만 삽입 모드에서도 다음과 같이 삭제할 수 있습니다.

  1. Ctrl + h: 현재 커서가 위치한 곳의 이전 문자를 삭제합니다.
  2. Ctrl + w: 현재 커서가 위치한 곳에서 이전 단어를 삭제합니다. 이것이 올바르게 작동하려면 삭제하려는 단어 뒤의 빈 공간에 커서를 놓아야 합니다.
  3. Ctrl + u: 커서가 있는 위치 바로 왼쪽 문자에서 시작하는 현재 줄을 삭제합니다.

팁 #11: 기존 줄을 문서의 다른 줄로 이동하거나 복사하세요.

ex 모드에서 잘 알려진 dd, yy 및 p 명령을 사용하여 행을 각각 삭제, 복사 및 붙여넣을 수 있다는 것은 사실이지만 해당 작업을 수행하려는 위치에 커서가 있을 때만 작동합니다. . 좋은 소식은 복사이동 명령을 사용하면 현재 커서 위치에 관계없이 동일한 작업을 수행할 수 있다는 것입니다.

다음 예에서는 Terri Nicole Tharrington의 'Forever'라는 제목의 짧은 시를 사용하겠습니다. 시작하려면 vim이 줄 번호를 표시하도록 합니다(명령 모드에서는 :set nu - 추가 팁을 고려하세요). :3copy5(명령 모드에서도)를 사용하여 5행 아래에 3행을 복사합니다.

이제 마지막 변경 사항을 실행 취소하고(Esc + u – 또 다른 보너스 팁!) :1move7을 입력하여 7행을 1행으로 바꿉니다. 2행에서 7행이 어떻게 이동되는지 참고하세요. 이전 라인 1이 이제 라인 7을 차지합니다.

팁 #12: 패턴별 검색 결과 일치 항목을 계산하고 한 항목에서 다른 항목으로 이동합니다.

이 팁은 대체 명령(이 시리즈 1부의 팁 #7)을 기반으로 합니다. 단, 대체 동작은 다음에 의해 재정의되므로 아무것도 제거되지 않습니다. n 옵션을 사용하여 지정된 패턴의 발생 횟수를 계산합니다.

슬래시를 생략하지 않았는지 확인하세요!

:%s/pattern//gn 

예를 들어,

:%s/libero//gn

ex 모드에서 패턴의 한 항목에서 다음 항목으로 이동하려면 n(소문자 N)을 누르세요. 이전 인스턴스로 이동하려면 N을 누르세요.

팁 #13: 지정된 줄에서 vi/m을 직접 엽니다.

기본적으로 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)

위 명령이 수행하는 작업을 자세히 살펴보겠습니다.

  1. grep -in 패턴 파일 이름 – 패턴이 발생하는 파일 이름의 모든 줄을 각 출력 줄의 시작 부분에 줄 번호와 함께 표시합니다.
  2. sed -n 3p – 이전 파이프라인 출력의 세 번째 줄을 표시합니다.

마지막으로,

  1. 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: vi/m 환경 사용자 정의

vi/m을 사용하여 구성 파일을 편집하거나 코드를 작성하는 경우 프로그램을 처음 열 때 줄 번호를 표시하고 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

vi/m에서 일반 파일을 탐색하는 것처럼 vimtutor의 내용을 탐색하거나 검색할 수 있습니다.

요약

2개의 기사로 구성된 이 시리즈에서는 명령줄 도구를 사용하여 텍스트를 편집할 때 보다 효과적으로 작업하는 데 도움이 되는 몇 가지 vi/m 팁과 요령을 공유했습니다. 다른 항목도 있을 거라 확신합니다. 아래 양식을 사용하여 나머지 커뮤니티와 자유롭게 공유해 주세요. 언제나 그렇듯, 질문과 의견도 환영합니다.