macOS Sierra에서 iTerm2 내부의 Bash에서 Ctrl-o를 바인딩 할 수 없음


0

나는 iTerm2 / Bash에서 Ctrl-o를 리 바인드 할 수 없습니다.

cchars에 대한 내 stty -a 플래그는 다음과 같습니다.

cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;

내 .inputrc는 다음과 같습니다.

set bind-tty-special-chars off
Control-o: "> output"

Rebind Cu가 작동하므로 불일치로 인해 나를 미치게합니다. 누군가 나에게 이유를 설명해 주시면 감사하겠습니다.

답변:


0

짧음 :이 기능은 문자 편집 에만 적용됩니다 . discard편집 캐릭터가 아닙니다.

길게 : 소스를 사용하십시오. lib/readline/bind.c이 항목이 있는 테이블 이 있습니다.

  { "bind-tty-special-chars", & _rl_bind_stty_chars, 0},

옵션 이름을 변수의 주소에 할당합니다. 변수는 libreadline의 몇 곳에서 테스트되어 궁극적 으로이 함수로 이동합니다.

    / * readline이 걱정하는 모든 tty 특수 문자를 리 바인드 
       자기 삽입합니다. 현재 터미널 스페셜을 저장하기 전에 이것을 호출하십시오
       save_tty_chars ()가있는 문자 이것은 POSIX termios 또는 termio에서만 작동합니다
       시스템. * /
    빈
    rl_tty_unset_default_bindings (kmap)
         키맵 kmap;
    {
      / * tty 특수 문자를 한 번 이상 저장하기 전에 귀찮게하지 마십시오. * /
      (RL_ISSTATE (RL_STATE_TTYCSAVED) == 0) 인 경우
        반환;

      RESET_SPECIAL (_rl_tty_chars.t_erase);
      RESET_SPECIAL (_rl_tty_chars.t_kill);

    # 정의 된 경우 (VLNEXT) && 정의 된 (TERMIOS_TTY_DRIVER)
      RESET_SPECIAL (_rl_tty_chars.t_lnext);
    # endif / * VLNEXT && TERMIOS_TTY_DRIVER * /

    # 정의 된 경우 (VWERASE) 및 정의 된 경우 (TERMIOS_TTY_DRIVER)
      RESET_SPECIAL (_rl_tty_chars.t_werase);
    # endif / * VWERASE && TERMIOS_TTY_DRIVER * /
    }

당신이 볼 수있는 stty구조에 사용되는 이름을 : erase, killlnext. 없습니다 discard. bash설정하지 않거나 재설정하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.