เหตุใด ctrl + ลูกศรซ้ายไม่ข้ามคำ


20

ฉันใช้ Ubuntu 12.04 อยู่ ทุกครั้งที่ฉันแก้ไขข้อความฉันใช้ctrl+ left/ rightเพื่อย้าย / ข้ามระหว่างคำต่างๆ เมื่อเร็ว ๆ นี้ฉันติดตั้ง xscreensaver และเปลี่ยนแป้นพิมพ์ลัดเพื่อเปิดใช้งานสกรีนเซฟเวอร์ของฉัน แต่แล้วCtrl+ หยุดการleftตอบกลับเป็นปกติ (เลื่อนไปที่คำถัดไปทางซ้าย) Ctrl+ rightยังข้ามไปยังคำถัดไปทางขวา ปัญหาเกิดขึ้นไม่ว่าฉันจะใช้เทอร์มินัล Gedit หรือแม้แต่การพิมพ์ข้อความในหน้าเว็บ

ฉันเปลี่ยนกลับเป็น gnome-screensaver, ลบ xscreensaver (เช่นแก้ไขแป้นพิมพ์ลัดของฉันด้วย) แต่ปัญหายังคงอยู่

ฉันพยายามคัดลอกเนื้อหาจาก/etc/inputrcไปยัง~/.inputrc(โดยค่าเริ่มต้นฉันไม่มี ~ / .inputrc) ฉันได้รับข้อมูลบางอย่างที่นี่: ตัวอักษรแปลก ๆ ปรากฏขึ้นเมื่อฉันใช้ปุ่ม Ctrl และลูกศรเพื่อนำทาง

กรุณาช่วย.

แก้ไข: นี่คือฉัน ~/.inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\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

$if term=rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

ถ้าฉันลบ / etc / inputrc นี่คือสิ่งที่ฉันจะได้รับถ้าฉันกด CTRL ค้างไว้แล้วกดลูกศรขวาห้าครั้ง: กด ctrl + ลูกศรขวา

ไม่เหมือนภาพแรกด้านบนกด CTRL ค้างไว้และกดลูกศรซ้ายมากกว่าหนึ่งครั้งจะไม่พิมพ์ออกมา;5Dอีกครั้ง ... มันเหมือนกับการยอมรับคำสั่งหนึ่งครั้งและไม่ทำอีกต่อไป .. ดูภาพด้านล่าง: กด ctrl + ลูกศรซ้าย



คุณใช้เปลือกอะไร
Sergiy Kolodyazhnyy

คำตอบ:


25

1 - ใน ~/.zshrc

bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word

2 - หรือใน ~/.bashrc

bind '"\e[1;5D" backward-word' 
bind '"\e[1;5C" forward-word'

... และตอนนี้ctrl+ left/ rightกระโดดคำใน byobu / tmux

3 - inputrcไม่ยุ่งกับ


นี่นานเกินไปแล้ว ... ติดตั้งอูบุนตูใหม่แล้ว
itagomo

3
ในทำนองเดียวกันถ้าคุณมีเปลือกทุบตีในของคุณผูก ~ / .bashrc ไฟล์เพิ่ม ' '\ E [1; 5D' ย้อนหลังคำว่า' ผูก ' '\ E [1; 5C' ไปข้างหน้าคำว่า'
อิชมาเอ

3

ฉันมีปัญหาเดียวกันนี้ ฉันแก้ไขโดยการคัดลอกบรรทัดเหล่านี้ไปยัง~/.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

ต้องใช้ 2 บรรทัดแรกเท่านั้น
davidchoo12

1

สร้างไฟล์ inputrc touch ~/.inputrcใช้
คัดลอกเนื้อหาของคำตอบที่ยอมรับในลิงก์ที่คุณอ้างถึงเช่นตัวอักษรแปลก ๆ ปรากฏขึ้นเมื่อฉันใช้ปุ่ม Ctrl และลูกศรเพื่อนำทางไปยังไฟล์นี้โดยการเปิดไฟล์ ~ / .inputrc โดยใช้โปรแกรมแก้ไขข้อความ บันทึกไว้
อ่านไฟล์โดยใช้bind ~/.inputrcคำสั่งหรือรีสตาร์ทเทอร์มินัลใหม่ สิ่งที่ควรทำงาน ..


ฉันได้ทำ ~ / .inputrc ของฉันแล้ว เนื้อหาเดียวกันกับสิ่งที่ / etc / inputrc ของฉันมี ปัญหานี่คือคำสั่ง "CTRL + ลูกศรซ้าย" ไม่ข้ามไปยังคำถัดไปทางซ้าย แต่นอกเหนือจากนั้นฟังก์ชั่นทั้งหมดทำงาน ทางออกอื่น ๆ ?
itagomo

ดูเหมือนว่าการผูกสำหรับ ctrl + ลูกศรซ้ายจะถูกแทนที่อย่างใด คุณสามารถรวมเนื้อหาที่แน่นอนของไฟล์ inputrc ได้หรือไม่? ความเป็นไปได้ที่สองสามารถเป็นบรรทัดอาจมีรูปแบบไม่ถูกต้อง โดยวิธีการรวมสำหรับ ctrl + ซ้ายรวมกันเป็นบรรทัดสุดท้ายของ~/.inputrcไฟล์?
drake01

โพสต์ที่ได้รับการแก้ไข .. ดูด้านบน .. ข้อมูลเพิ่มเติมข้ามคำไปทางขวาโดยกดปุ่ม CTRL ค้างไว้แล้วกดปุ่มขวาหนึ่งครั้งทุกครั้งที่ฉันต้องการข้ามคำ .. แต่ไปทางซ้ายฉันต้องการ เพื่อปล่อยแป้น CTRL ทุกครั้งที่ฉันข้ามคำ ..
itagomo

ใครช่วยได้บ้าง
itagomo

1

ฉันคิดว่าการข้ามคำไปทางซ้ายโดยการกด Ctrl + Left ไม่ทำงาน (แม้ว่าจะไม่ได้เพิ่มรหัสลงใน ~ / .inputrc หรือ ~ / .zshrc) เพราะโดยปกติแล้วทางลัดนี้ถูกใช้ใน Ubuntu แล้ว หน้าต่างปัจจุบันในแนวนอน) คุณสามารถเปลี่ยนทางลัดเริ่มต้นในระบบ -> การตั้งค่า -> เมนูแป้นพิมพ์ลัด ฉันเพิ่งเปลี่ยน Ctrl + Left โดย Ctrl + Down เพื่อปลดปล่อยมัน หลังจากการแทนที่นี้การข้ามคำไปทางซ้ายโดยใช้ Ctrl + Left ทำงานได้ดี! แม้ไม่มี ~ / .inputrc หรือ ~ / .zshc


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