내 readline/.inputrc 구성이 무시되는 이유는 무엇입니까?

내 readline/.inputrc 구성이 무시되는 이유는 무엇입니까?

내 구성 라인이 있습니다 .inputrc.

set enable-bracketed-paste on  # Insert paste as a string rather than possibly running it

명령줄에 다음을 입력할 때 유효합니다.

bind 'set enable-bracketed-paste on'

그런데 시작할 때 변수가 설정되지 않았습니다 bash v4.4.23.

이 줄은 왜 무시됩니까?

답변1

간단히 말해서:

구성에서 별도의 줄에 주석을 입력하세요.

줄 끝에 주석이 있으면 readline자동으로 무시 됩니다.전반적으로라인이 다르게 작동하는 경우.


이것수동말한다:

Lines beginning with a ‘#’ are comments.

주석으로 인해 유효한 구성 행이 무시된다는 뜻은 아닙니다.

다음 줄 때문에 이상합니다.

set foobar on  # baz

결과 :

readline: /home/ravi/.config/readline/inputrc: line 34: foobar: unknown variable name

이는 #끝에 a가 있는 줄이 실제로 유효성을 위해 구문 분석됨을 의미합니다. 유효한 경우 무시됩니다.

답변2

readline에 대한 파서는 그다지 좋지 않은 것 같습니다.

 $ bind 'set "enable-bracketed-paste" "on" '; echo $?; bind -v | grep 'bracketed'
 0
 readline: "enable-bracketed-paste": unknown variable name

 $ bind 'set enable-bracketed-paste "on" '; echo $?; bind -v | grep 'bracketed'
 0
 set enable-bracketed-paste off

 $ bind 'set enable-bracketed-paste on '; echo $?; bind -v | grep 'bracketed'
 0
 set enable-bracketed-paste on

 $ bind 'set enable-bracketed-paste on .'; echo $?; bind -v | grep 'bracketed'
 0
 set enable-bracketed-paste off

옵션 뒤의 모든 문자열은 옵션의 일부로 간주되는 것 같습니다(아마도?).

설명서에는 주석이 다음과 같이 명시되어 있습니다.오직은 줄의 시작 부분에 있으므로 해당 규칙을 따르는 것이 좋습니다. 대신 다음을 사용하세요.

 # Insert paste as a string rather than possibly running it
 set enable-bracketed-paste on

관련 정보