รับ; 5D เมื่อกดปุ่ม ctrl + ลูกศรใน Terminal บน FreeBSD


18

ใน centos ฉันสามารถข้ามคำได้โดยกดปุ่ม Ctrl + ลูกศร (ซ้ายหรือขวา) ในเทอร์มินัล เมื่อฉัน ssh ลงในกล่อง FreeBSD และฉันลองแบบเดียวกันฉันได้:

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

(แต่ละลอง = ; 5D )

มีวิธีแก้ไขปัญหานี้หรือไม่? ฉันใช้ Ubuntu 12.04 + Terminator

ขอบคุณล่วงหน้า.

คำตอบ:


26

A .inputrcในโฮมไดเร็กตอรี่ของคุณจะทำให้ctrl+ leftหยุดการทำงานบน Ubuntu (ตัวอย่าง)

ในการทำให้ทุกอย่างทำงานได้ให้เพิ่มสิ่งต่อไปนี้ใน~/.inputrc:

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

1
เพื่อชี้แจง - .inputrcควรตั้งค่าไว้ในเครื่องระยะไกล
omikron

ทำงานได้สำหรับฉันหลังจากรีสตาร์ท byobu แล้วเท่านั้น
immeëmosol

1
สำหรับทุกคนที่มีทั้งที่ขาดหายไปของพวกเขา.inputrcบรรทัดที่เกี่ยวข้องสำหรับฉันคือ: "\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

ยกเว้นว่าคุณได้เปลี่ยนแปลงสิ่งเหล่านี้จากค่าเริ่มต้นเชลล์ที่คุณใช้บน Ubuntu นั้นจะใช้งานไม่ได้ บน FreeBSD เชลล์เริ่มต้นคือ csh คุณสามารถเปลี่ยนเชลล์ของคุณด้วยคำสั่งต่อไปนี้ในทั้งสองระบบปฏิบัติการ:

chsh

ตั้งค่าเชลล์ของคุณใน FreeBSD เป็น / usr / local / bin / bash Bash ไม่ได้เป็นส่วนหนึ่งของ FreeBSD ดังนั้นหากคุณยังไม่ได้ติดตั้งจากพอร์ต:

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

สิ่งหนึ่งที่สุดท้าย: อย่าเปลี่ยนเปลือกสำหรับรูต นี่คือสิ่งที่บัญชี "toor" ใช้สำหรับ: สิทธิ์ทั้งหมดของรูท แต่คุณสามารถตั้งค่าเชลล์เป็นสิ่งที่คุณต้องการ สาเหตุที่ไม่มีกิจกรรมของระบบใด ๆ ที่ทำงานภายใต้ toor ดังนั้นคุณจะไม่ทำลายสิ่งใดหรือสร้างความสับสนให้กับทุกคนด้วยการเปลี่ยนเชลล์ของบัญชีนั้นเป็นสิ่งที่คุณคุ้นเคย


1

เชลล์ที่คุณใช้บนเครื่อง FreeBSD อาจไม่รองรับลำดับการควบคุมนั้น อย่างไรก็ตามโดยที่ไม่รู้ว่าคุณกำลังใช้เชลล์อะไรอยู่ปลายทั้งสองด้านมันยากที่จะบอกว่าแน่นอน


1

หากคุณใช้ ZSH ให้ใช้สิ่งนี้ที่ไฟล์/ 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

ดูเหมือนว่าคุณอาจมีการตั้งค่า $ TERM ผิด echo $TERMเพื่อค้นหาว่าการตั้งค่าปัจจุบันของคุณคืออะไร อาจต้องการใช้ export TERM=xterm-256colorxterm


ยังคงไม่มีความรัก = |
jdorfman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.