Tại sao ctrl + mũi tên trái không bỏ qua từ?


20

Tôi đang dùng Ubuntu 12.04. Mỗi lần tôi chỉnh sửa văn bản, tôi sử dụng ctrl+ left/ rightđể di chuyển / nhảy giữa các từ. Gần đây, tôi đã cài đặt xscreenaver và thay đổi các phím tắt để kích hoạt trình bảo vệ màn hình của mình. Nhưng sau đó, Ctrl+ leftdừng trả lời bình thường (chuyển sang từ tiếp theo bên trái). Ctrl+ rightvẫn nhảy sang từ tiếp theo bên phải. Vấn đề xảy ra cho dù tôi đang sử dụng thiết bị đầu cuối, Gedit hoặc thậm chí gõ văn bản trong các trang web.

Tôi quay trở lại gnome-Screensaver, loại bỏ xscreenaver (cũng đã sửa các phím tắt trên bàn phím của tôi). Nhưng vấn đề vẫn còn.

Tôi đã cố gắng sao chép nội dung từ /etc/inputrcsang ~/.inputrc(theo mặc định, tôi không có ~ / .inputrc). Tôi có một số thông tin ở đây: Các ký tự lạ xuất hiện khi tôi sử dụng phím Ctrl và Mũi tên để điều hướng

Hãy giúp tôi.

EDIT: Đây là của tôi ~/.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

nếu tôi xóa / etc / inputrc, đây là những gì tôi nhận được nếu giữ CTRL, sau đó nhấn mũi tên phải năm lần: nhấn ctrl + mũi tên phải

Không giống như hình ảnh đầu tiên ở trên, giữ CTRL và nhấn mũi tên trái nhiều lần sẽ không in ra ;5Dnữa ... giống như nó chấp nhận lệnh một lần và không làm điều đó nữa .. xem hình ảnh bên dưới: nhấn ctrl + mũi tên trái



Bạn đang sử dụng vỏ gì?
Sergiy Kolodyazhnyy

Câu trả lời:


25

1 trong ~/.zshrc

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

2 - Hoặc trong ~/.bashrc

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

... Và bây giờ ctrl+ left/ rightnhảy các từ trong byobu / tmux.

3 - Đừng gây rối với inputrc.


việc này đã quá lâu rồi ... đã được cài đặt lại Ubuntu
itagomo

3
Tương tự như vậy nếu bạn có vỏ Bash, trong tệp ~ / .bashrc của bạn thêm liên kết '"\ e [1; 5D" từ lùi' bind '"\ e [1; 5C" từ chuyển tiếp'
ishmael

3

Tôi có vấn đề này như nhau. Tôi đã sửa nó bằng cách sao chép những dòng này vào ~/.inputrctập tin của mình :

"\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

chỉ có 2 dòng đầu tiên là bắt buộc
davidchoo12

1

Tạo tập tin inputrc bằng cách sử dụng touch ~/.inputrc.
Sao chép nội dung câu trả lời được chấp nhận trong liên kết mà bạn đã đề cập, tức là các ký tự lạ xuất hiện khi tôi sử dụng phím Ctrl và Mũi tên để điều hướng , vào tệp này bằng cách mở tệp ~ / .inputrc bằng một số trình soạn thảo văn bản. Lưu nó
Đọc tệp bằng bind ~/.inputrclệnh hoặc khởi động lại thiết bị đầu cuối mới. Mọi thứ nên hoạt động ..


tôi đã thực hiện ~ / .inputrc. cùng nội dung với những gì my / etc / inputrc có. vấn đề ở đây là lệnh "CTRL + Mũi tên trái" không chuyển sang từ tiếp theo bên trái. nhưng bên cạnh đó, tất cả các chức năng hoạt động. giải pháp nào khác?
itagomo

Có vẻ như ràng buộc cho ctrl + mũi tên trái đang bị ghi đè bằng cách nào đó. Bạn có thể bao gồm nội dung chính xác của tệp inputrc không? Khả năng thứ 2 có thể là dòng có thể không đúng. Nhân tiện, liên kết cho ctrl + kết hợp bên trái có phải là dòng cuối cùng của ~/.inputrctệp không?
Drainke01

đã chỉnh sửa bài đăng .. xem ở trên .. thông tin bổ sung, bỏ qua các từ bên phải hoạt động bằng cách giữ (không được phát hành) phím CTRL sau đó nhấn phím phải một lần mỗi khi tôi muốn chuyển qua các từ .. nhưng sang bên trái, tôi cần để giải phóng khóa CTRL mỗi lần tôi bỏ qua các từ ..
itagomo

bất cứ ai có thể giúp đỡ?
itagomo

1

Tôi đã tìm ra rằng bỏ qua các từ bên trái bằng cách kích hoạt Ctrl + Left không hoạt động (ngay cả khi tôi đã thêm một số mã vào ~ / .inputrc hoặc ~ / .zshrc) vì theo mặc định, phím tắt này đã được sử dụng trong Ubuntu (nó thay đổi kích thước cửa sổ hiện tại theo chiều ngang). Bạn có thể thay đổi phím tắt mặc định trong menu Hệ thống -> Tùy chọn -> Phím tắt. Tôi chỉ thay Ctrl + còn lại bằng Ctrl + Xuống để giải phóng nó. Sau khi thay thế, bỏ qua các từ bên trái bằng Ctrl + Trái hoạt động tốt! Ngay cả khi không có ~ / .inputrc hoặc ~ / .zshc.


đã tìm kiếm giải pháp cho việc này từ rất lâu. Đây là một điều rất đơn giản và hiệu quả! Cảm ơn.
rizwanhudda
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.