vim tmux backspace ^?


2

Sto avendo uno strano problema:

Quando si esegue il sshing in un particolare host (da OSX a RHEL5), vim sembra dimenticare come backspace, ma solo in una sessione tmux, cioè:

  ssh foo@bar.com
  vim test

Backspace funziona bene sopra.

Questo tuttavia non:

  ssh foo@bar.com
  tmux
  vim test

Colpire backspace in modalità insert produce ^? Quale potrebbe essere il problema?


1
Fa pressione Ctrl-H lavoro? Se è così, controlla questa impostazione (focalizzato) nel terminale.
Daniel Beck

Ctrl-H funziona! :) Fammi leggere;) grazie!
Clustermagnet

Purtroppo sto usando iterm2 :)
Clustermagnet

Ctrl + H non funziona per me = / continua a dare lo stesso ^?
holms

Risposte:


5

Potrebbe essere necessario cambiare il terminale per l'invio ^h quando scrivi Backspace.

Nelle preferenze di Terminal, l'impostazione fa parte del profilo, quindi puoi impostare un profilo dedicato per la tua connessione SSH a quel sistema RHEL5.


e come cambiare il terminale in TMUX? ora sono cygwin e in Cygwin funziona bene, ssh'ing a rhel6.4 vim dà questo problema, termine fisso in vimrc, problema risolto, ma in tmux mi dà ancora lo stesso problema
holms

0

Trovo dando questo comando

stty erase Ctrl - V BACKSPACE

per me va bene. Tuttavia, ho bisogno di farlo su ogni pannello.


0

Puoi mappare il tasto backspace su ciò che ti serve, come ha detto Kevin. Sembra che tu debba mapparlo su ^? (piuttosto che ^ H)

Per fare ciò, utilizzare il seguente comando:

stty erase "^?"

Questo può essere aggiunto agli script di avvio ( .login o .tcshrc o .bashrc, o altri file, a seconda della shell che si utilizza).


0

Ho fatto una soluzione

  1. crea un alias in .alias

alias emacs (o vi) = 'stty erase "^ H"

emacs'

2 fai uno script di shell,

nomefile tmuxsh

stty ek
cmd=$(which tmux)      # tmux path
session=$1
if [ $# = 0 ]; then
   $cmd ls
   exit 0
fi
$cmd has -t $session 2> /dev/null
if [ $? != 0 ]; then
     $cmd new -s $session
     exit 0
fi
$cmd att -t $session
exit 0

naturalmente, potresti anche creare un alias, alias tm = tmuxsh. quindi potresti usare emacs / vi sia in tmux che fuori da tmux bene. perché creare un alias di emacs nel passaggio1? perché se si usa semplicemente il passo 2, dopo aver lasciato tmux nella shell normale, anche emacs / vi incontrerà il problema.

Funziona bene per me


Perché non hai semplicemente copiato / incollato la risposta invece di farmi seguire un link?
Wes Sayeed
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.