Bắt; 5D khi nhấn phím ctrl + mũi tên trong Terminal trên FreeBSD


18

Trên centos tôi có thể bỏ qua một từ bằng cách nhấn ctrl + mũi tên (trái hoặc phải) trong một thiết bị đầu cuối. Khi tôi ssh vào một hộp FreeBSD và tôi thử cùng một mẫu tôi nhận được:

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

(mỗi lần thử = ; 5D )

Có cách nào để sửa lỗi này? Tôi đang sử dụng Ubuntu 12.04 + Terminator.

Cảm ơn trước.

Câu trả lời:


26

Một .inputrctrong thư mục nhà của bạn sẽ khiến ctrl+ leftngừng hoạt động trên Ubuntu (ví dụ).

Để mọi thứ hoạt động, hãy thêm vào như sau ~/.inputrc:

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

1
Để làm rõ - điều này .inputrcnên được đặt trên máy từ xa.
omikron

làm việc cho tôi, chỉ sau khi khởi động lại byobu mặc dù.
immeëmosol

1
Đối với bất cứ ai mà là hoàn toàn mất tích của họ .inputrc, các dòng có liên quan đối với tôi là: "\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

Trừ khi bạn đã thay đổi những thứ này từ mặc định, trình bao mà bạn đang sử dụng trên Ubuntu là bash. Trên FreeBSD, shell mặc định là csh. Bạn có thể thay đổi trình bao của mình bằng lệnh sau trong cả hai HĐH:

chsh

Đặt shell của bạn trong FreeBSD thành / usr / local / bin / bash. Bash không phải là một phần của FreeBSD, vì vậy nếu bạn chưa có, hãy cài đặt nó từ các cổng:

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

Một điều cuối cùng: không thay đổi vỏ cho root. Đây là những gì tài khoản "toor" dành cho: tất cả các đặc quyền của root, nhưng bạn có thể đặt shell thành bất cứ thứ gì bạn muốn. Lý do là không có bất kỳ hoạt động hệ thống nào chạy theo toor, vì vậy bạn sẽ không phá vỡ bất cứ điều gì hoặc gây nhầm lẫn cho bất kỳ ai bằng cách thay đổi vỏ tài khoản đó thành thứ gì đó mà bạn đã quen (hoặc có thể có chức năng hơn như vỏ đăng nhập).


1

Shell bạn đang chạy trên máy FreeBSD có thể không hỗ trợ chuỗi điều khiển đó. Dù vậy, không biết bạn đang chạy cái vỏ nào ở hai đầu, thật khó để nói chắc chắn.


1

Nếu bạn sử dụng ZSH, thì hãy sử dụng tệp này tại / etc / zshrc .

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

Có vẻ như bạn có thể có cài đặt $ TATE sai. echo $TERMđể tìm hiểu những gì thiết lập hiện tại của bạn là. Có thể muốn sử dụng xterm export TERM=xterm-256color.


vẫn không có tình yêu = |
jdorfman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.