Jump to content
Just nu i M3-nätverket

Vi/Vim: Kompabilitet iBookG4 vs linux (ssh)


boggeman

Recommended Posts

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?

Link to comment
Share on other sites

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

 

*spåna*

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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å.

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...