Impossibile associare Ctrl-o in Bash all'interno di iTerm2 su macOS Sierra


0

Non sono in grado per la mia vita di ricollegare Ctrl-o su iTerm2 / Bash.

Ecco le mie bandiere stty -a per cchars:

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;

Ecco il mio .inputrc:

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

Rebind Cu funziona però, quindi l'incoerenza mi sta facendo impazzire. Gradirei se qualcuno potesse spiegarmi il perché.

Risposte:


0

breve: la funzione si applica solo alla modifica dei caratteri; discardnon è un personaggio di editing.

più a lungo: usa la fonte. C'è una tabella in lib/readline/bind.ccui ha questa voce:

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

che assegna il nome dell'opzione all'indirizzo di una variabile. La variabile viene testata in alcuni punti in libreadline, andando infine a questa funzione:

    / * Ricollega tutti i 50 caratteri speciali che leggono le preoccupazioni per la schiena 
       da inserire automaticamente. Chiamare questo prima di salvare lo speciale terminale corrente
       caratteri con save_tty_chars (). Funziona solo con termios POSIX o termio
       sistemi. * /
    vuoto
    rl_tty_unset_default_bindings (kmap)
         Keymap kmap;
    {
      / * Non preoccuparti prima di aver salvato i 50 caratteri speciali almeno una volta. * /
      if (RL_ISSTATE (RL_STATE_TTYCSAVED) == 0)
        ritorno;

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

    # se definito (VLNEXT) && definito (TERMIOS_TTY_DRIVER)
      RESET_SPECIAL (_rl_tty_chars.t_lnext);
    # endif / * VLNEXT && TERMIOS_TTY_DRIVER * /

    # se definito (VWERASE) && definito (TERMIOS_TTY_DRIVER)
      RESET_SPECIAL (_rl_tty_chars.t_werase);
    # endif / * VWERASE && TERMIOS_TTY_DRIVER * /
    }

È possibile visualizzare i sttynomi utilizzati nelle strutture: erase, kille lnext. Non c'è discard. bashnon lo imposta (né lo reimposta).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.