읽는 줄 단어 구분 기호는 무엇입니까?

읽는 줄 단어 구분 기호는 무엇입니까?

Bash에서 "단어"를 삭제하면 _및 같은 특정 문자에서 중지됩니다 /. 예를 들어 내가 입력하면

/foo/bar

활성화되고 backward-kill-word(보통 Alt- Backspace및/또는 Ctrl- 에 매핑됨 w) 나머지 텍스트는 다음과 같습니다.

/foo/

. 이것은 실제로아니요에 해당 $COMP_WORDBREAKS하거나readline~의rl_completer_word_break_characters. 단어 분할을 결정하는 데 사용되는 문자를 어떻게 감지합니까(코드의 기본값보다는 재정의될 수 있으므로 실행 중인 시스템에서 선호)?

답변1

Bash 문서에는 다음과 같이 명시되어 있습니다.

backward-kill-word (M-Rubout)

점 뒤에 있는 단어를 죽여보세요. 단어 경계는 역방향 단어에 사용되는 것과 동일합니다.

그리고

backward-word (M-b)

현재 또는 이전 단어의 시작 부분으로 돌아갑니다. 단어는 영숫자(문자 및 숫자)로 구성됩니다.

Bash 4.2에서의 처리는 backward-word번들로 제공되는 libreadline 코드(text.c:rl_backward_word). 가설은 다음을 기반으로 합니다.rl_alphabetic, 그 자체는 다음에 달려 있습니다.isalnum기능. 이는 로케일에 따라 다르지만 bash에서 직접 구성할 수는 없습니다.

shell-forward-wordBash 4.0에는 AND shell-backward-word연산(및 동등한 Kill 연산)을 포함하는 또 다른 "단어" 유형이 도입되었습니다 . 이는 쉘 메타 문자( ()<>;&|") 및 공백(로케일 종속성에 의해 가능 isblank) 에서만 중단되며 bashline.c기본 bash 코드( )에서 처리됩니다.

관련 정보