หลังจากอัปเดตระบบล่าสุดคำสั่งctrl + left / right arrowบนzsh terminal จะไม่ทำอะไรเลย ctrl + u ยังมีบางอย่างผิดปกติเพราะคำสั่งนั้นลบจากเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดขณะนี้ลบทั้งบรรทัด .. บางคนรู้วิธีแก้ปัญหาเหล่านี้หรือไม่ ขอบคุณทุกคน.
หลังจากอัปเดตระบบล่าสุดคำสั่งctrl + left / right arrowบนzsh terminal จะไม่ทำอะไรเลย ctrl + u ยังมีบางอย่างผิดปกติเพราะคำสั่งนั้นลบจากเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดขณะนี้ลบทั้งบรรทัด .. บางคนรู้วิธีแก้ปัญหาเหล่านี้หรือไม่ ขอบคุณทุกคน.
คำตอบ:
FWIW นี่คือสิ่งที่ทำงานกับสภาพแวดล้อมของฉัน (rhel5.x) โดยใช้ค่าเริ่มต้นของ zsh
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
^[^[[D
และ^[^[[C
ตามลำดับสำหรับ OSX
.zshrc
ตัว
$terminfo
แทนลำดับการหลบหนี: ปุ่ม$terminfo[kLFT5]
และ$terminfo[kRIT5]
ทำงานให้ฉัน
Ctrl + U เป็นไปได้มากที่สุดเพราะคุณมีเคอร์เซอร์ที่ท้ายบรรทัด ประการที่สอง Gentoo รุ่นใดที่คุณอ้างถึงว่าเป็น "การอัปเดตระบบล่าสุด"
และคุณต้องการให้ ctrl + ซ้าย / ขวาเพื่อทำอะไร
bindkey '^[[1;5C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word
bindkey ";5C" forward-word
bindkey ";5D" backward-word
หมายเหตุ: หากการกำหนดค่าใช้งานได้ แต่คีย์ที่ควรจะไม่ทำในสิ่งที่คุณต้องการอาจเป็นเพราะความละเอียดของคีย์แตกต่างจากของคุณและของฉันให้ทำ:
cat > /dev/null
และกดปุ่มที่คุณต้องการรับเอาท์พุทและปรับตาม
สิ่งที่ใช้งานไม่ได้โดยตรงขึ้นอยู่กับ distro (Gentoo, Debian, RHEL ฯลฯ ) หรือ shell (ZSH, KSH, BASH) - ขึ้นอยู่กับการterminal emulator
ใช้งานและการตั้งค่า: konsole, terminator, urxvt, lx-terminal เป็นต้น distro อาจมีความสำคัญหากใช้เชลล์มาตรฐานที่แตกต่างกัน (fx. .zshrc) และหากใช้เชลล์อื่นที่เชลล์กำหนดคอนฟิกบน distro นั้นอาจจัดการกับมันแล้ว
ต่อไปนี้เป็นโซลูชันเฉพาะตัวจำลองเทอร์มินัลสองสามตัว:
urxvt / rxvt-unicode (และอาจอื่น ๆ ):
bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word
เทอร์มิเนเตอร์, konsole และ xterm (และอื่น ๆ ):
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
สำหรับวิธีการทั่วไปที่มากขึ้นคุณจะเริ่มต้นเทอร์มินัลของคุณกด CTRL-V แล้วตามด้วยชุดคีย์ที่คุณต้องการรหัสหลบหนี (ชื่อ) ของ - ในกรณีนี้คือคีย์ผสม CTRL-leftarrow และ CTRL-rightarrow - และใส่ผลลัพธ์สำหรับแต่ละ การผสมคีย์ระหว่างเครื่องหมายคำพูดทั้งสอง
terminal emulator
ใช้งาน distro หรือ shell ไม่สำคัญ นั่นอาจเป็นเหตุผลว่าทำไมมันไม่อยู่ใน. zshrc เพราะสิ่งที่ใช้ได้ผลกับเทอร์มินัลอีมูเลเตอร์หนึ่งไม่ทำงานอีกอัน แต่นั่นอาจแก้ไขได้ถ้า zshrc fx อ่านตัวแปรสภาพแวดล้อม $ TERM และใช้การตั้งค่า bindkey ที่แตกต่างกันตามผลลัพธ์
แก้ไข
เทอร์มิใช้Konsole
วิธีแก้: คลิกขวาที่เทอร์มินัล (หรือการตั้งค่าในแถบเมนู) -> เปลี่ยนโปรไฟล์ปัจจุบัน -> การจับคู่คีย์บอร์ด -> เปลี่ยนเป็นค่าเริ่มต้น (xfree4)