FreeBSD'de bir Terminalde ctrl + ok tuşuna basarken 5D


18

Centos'ta terminalde ctrl + ok (sol veya sağ) tuşlarına basarak bir kelimeyi atlayabilirim. Ne zaman bir FreeBSD kutusuna ssh ve ben olsun aynı desen deneyin:

$ tail -f 20120412.log;5D;5D;5D

(her deneme = ; 5D )

Bunu düzeltmenin bir yolu var mı? Ubuntu 12.04 + Terminator kullanıyorum.

Şimdiden teşekkürler.

Yanıtlar:


26

Giriş .inputrcdizininizdeki A , ctrl+ left'nın Ubuntu üzerinde çalışmayı durdurmasına neden olur (örneğin).

Her şeyin çalışması için aşağıdakileri ekleyin ~/.inputrc:

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc

1
Açıklığa kavuşturmak için - bu .inputrcuzak makinede ayarlanmalıdır.
omikron

Ancak byobu'yu yeniden başlattıktan sonra benim için çalıştı.
immeëmosol

1
Tamamen kendi eksik herkes için .inputrcbenim için, ilgili satırları vardı: "\e[1;5C": forward-word, "\e[1;5D": backward-word, "\e[5C": forward-word, "\e[5D": backward-word, "\e\e[C": forward-word,"\e\e[D": backward-word
AlbinoDrought

2

Bunları varsayılan olarak değiştirmedikçe, Ubuntu'da kullandığınız kabuk bash olur. FreeBSD'de varsayılan kabuk csh'dir. Kabuğunuzu her iki işletim sisteminde de aşağıdaki komutla değiştirebilirsiniz:

chsh

FreeBSD'de kabuğunuzu / usr / local / bin / bash olarak ayarlayın. Bash, FreeBSD'nin bir parçası değildir, bu yüzden henüz yapmadıysanız, bağlantı noktalarından yükleyin:

cd /usr/ports/shells/bash
make install
make clean

Son bir şey: kabuğu kök değiştirmeyin. "Toor" hesabı bunun içindir: tüm root ayrıcalıkları, ancak kabuğu istediğiniz gibi ayarlayabilirsiniz. Bunun nedeni, toor altında çalışan herhangi bir sistem etkinliği olmamasıdır, bu nedenle bu hesabın kabuğunu alışık olduğunuz bir şeye değiştirerek (veya bir giriş kabuğu olarak daha işlevsel olabilir) hiçbir şeyi kırmaz veya kimseyi karıştırmazsınız.


1

FreeBSD makinesinde çalıştırdığınız kabuk muhtemelen bu kontrol dizisini desteklemiyordur. Her iki uçta hangi kabuğu kullandığınızı bilmeden, kesin olarak söylemek zor.


1

ZSH kullanıyorsanız, bunu / etc / zshrc dosyasında kullanın.

case "${TERM}" in
  cons25*|linux) # plain BSD/Linux console
    bindkey '\e[H'    beginning-of-line   # home 
    bindkey '\e[F'    end-of-line         # end  
    bindkey '\e[5~'   delete-char         # delete
    bindkey '[D'      emacs-backward-word # esc left
    bindkey '[C'      emacs-forward-word  # esc right
    ;;
  *rxvt*) # rxvt derivatives
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    # workaround for screen + urxvt
    bindkey '\e[7~'   beginning-of-line   # home
    bindkey '\e[8~'   end-of-line         # end
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    ;;
  *xterm*) # xterm derivatives
    bindkey '\e[H'    beginning-of-line   # home
    bindkey '\e[F'    end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\e[1;5C' forward-word        # ctrl right
    bindkey '\e[1;5D' backward-word       # ctrl left
    # workaround for screen + xterm
    bindkey '\e[1~'   beginning-of-line   # home
    bindkey '\e[4~'   end-of-line         # end
    ;;
  screen)
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    bindkey '^[[1;5C' forward-word        # ctrl right
    bindkey '^[[1;5D' backward-word       # ctrl left
    ;;
esac

0

Yanlış $ TERM ayarına sahip olabileceğiniz anlaşılıyor. echo $TERMgeçerli ayarınızın ne olduğunu bulmak için. Xterm kullanmak isteyebilir export TERM=xterm-256color.


hala aşk yok = |
jdorfman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.