피드로 돌아가기
Adding Text Selection to Bash
Dev.toDev.to
Infrastructure

Readline v8.2의 Hidden Option을 이용한 Bash 시각적 텍스트 선택 구현

Adding Text Selection to Bash

Simon Leary2026년 5월 26일7intermediate

Context

Bash의 Readline 라이브러리는 텍스트 선택 기능을 제공하지만, 커서 이동 시 Active Region이 즉시 비활성화되어 시각적 피드백이 부재한 한계 존재. 기존 ble.sh와 같은 외부 라이브러리는 특정 환경에서 심각한 Lag를 유발하여 경량화된 내장 기능 활용 필요성 대두.

Technical Solution

  • .inputrc의 enable-active-region 옵션 활성화를 통한 Readline 내장 선택 기능 확보
  • exchange-point-and-mark 명령을 2회 연속 호출하여 커서 위치를 유지하며 Region을 강제 활성화하는 로직 설계
  • READLINE_KEEP_REGION_ACTIVE 환경 변수를 도입하여 Navigation 커맨드 실행 시의 상태 제어 메커니즘 구축
  • Bash 함수와 Readline Macro를 결합한 Hook 구조를 설계하여 '사전 설정 -> 이동 명령 -> 후속 활성화' 시퀀스 구현
  • 재귀 호출 에러 방지를 위해 Emacs Keybind를 일반 Navigation Keybind로 래핑하는 우회 경로 설정
  • Bash의 Variable Reference(declare -n)를 활용하여 Global Namespace 오염을 방지한 캡슐화 적용

- Readline v

8.2 이상 사용 시 .inputrc에 enable-active-region 설정 검토 - 터미널 에뮬레이터의 Alt/Option 키 입력 값을 cat -v로 확인하여 정확한 Escape Sequence 정의 - Bash 환경 변수를 상태 머신으로 활용하여 기존 커맨드의 동작을 확장하는 Hook 패턴 적용 - Global 변수 충돌 방지를 위해 declare -n을 이용한 변수 참조 방식 도입

원문 읽기