Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

.intputrc 파일에서 Linux 매크로 및 기능 키 바인딩을 만드는 방법

Readline은 또한 홈 디렉토리에서 .inputrc 구성 파일을 편집하여 사용자 정의 키 바인딩을 매핑할 수 있는 기능을 제공합니다.

다음은 정의할 수 있는 두 가지 유형의 사용자 지정 키 바인딩입니다.

  1. 매크로
  2. 기능

매크로

실행될 때 커서의 현재 위치에서 문자열을 채우는 키 바인딩을 정의할 수 있습니다. 이렇게 하려면 .inputrc 구성 파일에 다음 형식의 줄을 추가합니다(또는 아직 존재하지 않는 경우 파일 생성):

<key combination>: "<string of characters>"

예를 들어, "~/debug_output.txt" 파일로 출력을 반복적으로 리디렉션하고 있다고 가정해 보겠습니다. 다음 줄을 추가하여 .inputrc에 매크로를 정의할 수 있습니다.

Control-g: " > ~/debug_output.txt"

이제 Control-g 키 조합을 입력할 때마다 리디렉션 문이 커서 뒤에 추가되어 다른 명령 끝에 쉽게 추가할 수 있습니다.

매크로를 생성할 때 다음 사항에 유의하십시오.

<센터>
  • 키 조합을 영어로 설명할 수 있습니다(자세한 내용은 bash 매뉴얼 페이지를 참조하십시오. "Readline Key Bindings" 섹션 검색)
  • 매크로가 삽입할 문자 시퀀스는 큰따옴표(“)로 묶어야 합니다.
  • Control-g의 선택은 임의적이었습니다. 더 의미 있는 조합을 선택할 수 있습니다.
  • 기본 키 바인딩을 재정의할 수 있습니다(자신의 키 바인딩을 정의할 때 이 점을 염두에 두십시오)
  • 키 바인딩을 적용하려면 새 셸 인스턴스를 시작해야 합니다(셸 시작 시 .inputrc 구성 파일을 읽음)

기능

실행될 때 함수를 호출하는 키 바인딩을 만들 수도 있습니다. Readline은 선택할 수 있는 많은 미리 정의된 함수를 제공합니다. 키 조합을 미리 정의된 기능에 매핑하려면:

<key combination>: <function-name>

사용 가능한 사전 정의된 기능 목록은 GNU Readline 매뉴얼을 참조하십시오.

사용자 정의 함수를 정의하는 것도 가능하지만 이를 위해서는 C로 작성해야 하며 이 튜토리얼의 범위를 벗어납니다. 나중에 별도의 자습서로 다룰 수 있습니다.

유용한 사전 정의 기능 중 하나는 메뉴 완성입니다. 대체 자동 완성 동작을 제공합니다.

자동 완성의 기본 동작(TAB 키에 매핑됨)은 다음 중 하나입니다.

  • 하나의 일치 항목이 있는 경우 부분 명령/디렉토리/파일 이름 채우기
  • 1개 이상 존재할 때 가능한 일치 목록 표시

menu-complete는 대신 가능한 일치 목록을 순환하여 함수가 호출될 때마다 다음 가능한 일치를 채웁니다. 이 동작은 특히 긴 파일 이름을 자동 완성할 때 유용할 수 있습니다. 이 동작을 사용하도록 TAB 키를 다시 매핑하려면 .inputrc 파일에 다음 줄을 추가하세요.

TAB: menu-complete

이 새 키 바인딩은 현재 셸에서 적용되지 않습니다. .inputrc 구성 파일을 다시 로드하려면 새 인스턴스를 시작해야 합니다.

이 튜토리얼에서 우리는 Linux 명령줄 키 바인딩이 Readline이라는 도구에 의해 구동된다는 것을 배웠습니다. 키 바인딩은 다음 두 가지 유형 중 하나일 수 있습니다.

  • 매크로:일련의 문자 확장
  • 기능:작업 수행

Readline은 기본 키 바인딩 세트를 제공하지만 .inputrc 구성 파일에서 고유한 키 바인딩을 만들 수 있는 유연성도 제공합니다. 마지막으로 현재 키 바인딩을 모두 보려면 '바인드' 명령을 사용할 수 있습니다.

bind -p