Gå till innehåll
Just nu i M3-nätverket

Vi/Vim: Kompabilitet iBookG4 vs linux (ssh)


boggeman

Rekommendera Poster

Detta är kanske ett märkligt problem, men det har stört mig ett tag.

 

När jag kör vi (vim) lokalt på min iBook G4 så fungerar backspace-tangenten som just backspace. Men när jag loggar in på en del linux-datorer via ssh så fungerar backspace-tangenten som delete; vilket kan vara milt sagt frustrerande ibland.

 

Kan man ställa in hur backspace fungerar i .vimrc eller liknande?

Länk till kommentar
Dela på andra webbplatser

Det är väl olika shell i OSX o Linux default, kan det vara nåt med det tro?

 

*spåna*

Länk till kommentar
Dela på andra webbplatser

Njae; du kan välja shell hur du vill i båda: jag använder bash på den flesta maskiner jag använder. Det är just kombinationen av min iBook och vissa linuxmaskiner som blir annorlunda...

Länk till kommentar
Dela på andra webbplatser

Var ett tag sen jag grävde med något liknande problem, men kan ju dels bero på vad SSH skickar för signal, typ ^H etc, eller termcapen. Men nu gissar jag bara vilt, man kan väl göra någon slags keymapping med vim tror jag? Borde ju gå och ordna på det sättet. info vim visar inte mycket, så kolla i manualen, borde ju stå där då.

Länk till kommentar
Dela på andra webbplatser

Jag har varit ute för att backspace helt enkelt inte funkat, det har oftast drabbat ssh mot linux eller telnet mot switchar. Jag körde Putty, vet inte om det är den helt enkelt för inbyggda telnet i win funkade backspace som tänkt...

Länk till kommentar
Dela på andra webbplatser

Det beror på att macen sänder ^? istället för ^H som backspace. Du kan skriva

 

stty erase '^?'

 

i teminalen innan du startar vi, så ordnar det sig.

 

För en mer permanent lösning, modifiera .login (csh) eller motsvarande på maskinen du loggar in på. Man kan t.ex. göra

 

if ( ${?SSH_CLIENT} == 1 ) then
  set local = 0
else if ( ${?SSH2_CLIENT} == 1 ) then
  set local = 0
else
  set local = 1
endif

if ( $local == 0 ) then
  # We come from a remote terminal
  #Make sure backspace works when we come from Mac
  stty werase '^W' erase '^?' kill '^U' intr '^C'
endif

Länk till kommentar
Dela på andra webbplatser

  • 1 month later...
Det beror på att macen sänder ^? istället för ^H som backspace. Du kan skriva

 

stty erase '^?'

 

i teminalen innan du startar vi, så ordnar det sig.

 

För en mer permanent lösning, modifiera .login (csh) eller motsvarande på maskinen du loggar in på. Man kan t.ex. göra

 

if ( ${?SSH_CLIENT} == 1 ) then
  set local = 0
else if ( ${?SSH2_CLIENT} == 1 ) then
  set local = 0
else
  set local = 1
endif

if ( $local == 0 ) then
  # We come from a remote terminal
  #Make sure backspace works when we come from Mac
  stty werase '^W' erase '^?' kill '^U' intr '^C'
endif

298083[/snapback]

 

 

Tackar för tipset. Jag hade dock redan löst det, men glömde att posta det här. Jag gjorde en liten fuling i .bashrc på de maskiner jag använder:

 

if tty --quiet ; then

stty erase '^?'

fi

 

Detta lösxer problemet i vim/vi i alla fall.

Länk till kommentar
Dela på andra webbplatser

Anton Österberg
Tackar för tipset. Jag hade dock redan löst det, men glömde att posta det här. Jag gjorde en liten fuling i .bashrc på de maskiner jag använder:

 

if tty --quiet ; then

    stty erase '^?'

fi

 

Detta lösxer problemet i vim/vi i alla fall.

330864[/snapback]

Åh tack! Har haft samma problem fast i nano när jag ansluter hem till min dator via ssh.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...