Mengapa panah ctrl + kiri tidak melewati kata-kata?


20

Saya menggunakan Ubuntu 12,04. Setiap kali saya mengedit teks, saya menggunakan ctrl+ left/ rightuntuk bergerak / melompat di antara kata-kata. Baru-baru ini, saya menginstal xscreensaver dan mengubah pintasan keyboard untuk mengaktifkan screensaver saya. Tapi kemudian, Ctrl+ leftberhenti merespons secara normal (pindah ke kata berikutnya ke kiri). Ctrl+ rightmasih melompat ke kata berikutnya ke kanan. Masalah terjadi apakah saya menggunakan terminal, Gedit atau bahkan mengetik teks di halaman web.

Saya kembali ke gnome-screensaver, menghapus xscreensaver (juga memperbaiki pintasan keyboard saya). Tapi masalahnya tetap ada.

Saya mencoba menyalin konten dari /etc/inputrcke ~/.inputrc(secara default, saya tidak punya ~ / .inputrc). Saya mendapat info di sini: Karakter aneh muncul ketika saya menggunakan tombol Ctrl dan Panah untuk bernavigasi

Tolong bantu.

EDIT: Ini milik saya ~/.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

jika saya menghapus / etc / inputrc, inilah yang saya dapatkan jika saya menahan CTRL kemudian tekan panah kanan lima kali: menekan ctrl + panah kanan

Berbeda dengan gambar pertama di atas, menahan CTRL dan menekan panah kiri lebih dari sekali tidak akan mencetak ;5Dlagi ... itu seperti menerima perintah sekali dan tidak melakukannya lagi .. lihat gambar di bawah ini: menekan ctrl + panah kiri



Shell apa yang Anda gunakan?
Sergiy Kolodyazhnyy

Jawaban:


25

1 - Masuk ~/.zshrc

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

2 - Atau dalam ~/.bashrc

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

... Dan sekarang ctrl+ left/ rightmelompat kata-kata dalam byobu / tmux.

3 - Jangan main-main dengan inputrc.


ini terlalu lama ... sudah menginstal ulang ubuntu
itagomo

3
Demikian pula jika Anda memiliki Bash shell, di file ~ / .bashrc Anda tambahkan bind '"\ e [1; 5D" kata mundur' bind '"\ e [1; 5C" kata depan'
ishmael

3

Saya punya masalah yang sama. Saya memperbaikinya dengan menyalin baris ini ke ~/.inputrcfile saya :

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

hanya 2 baris pertama yang diperlukan
davidchoo12

1

Buat file inputrc menggunakan touch ~/.inputrc.
Salin konten jawaban yang diterima di tautan yang Anda maksudkan yaitu karakter Aneh yang muncul ketika saya menggunakan tombol Ctrl dan Panah untuk menavigasi , ke file ini dengan membuka file ~ / .inputrc menggunakan beberapa editor teks. Simpan itu.
Baca file menggunakan bind ~/.inputrcperintah atau mulai ulang terminal baru. Segalanya harus bekerja ..


saya sudah membuat ~ / .inputrc saya. konten yang sama dengan apa yang dimiliki / etc / inputrc saya. masalahnya di sini adalah perintah "CTRL + Panah Kiri" jangan langsung ke kata berikutnya ke kiri. tapi selain itu, semua fungsi berfungsi. ada solusi lain?
itagomo

Tampaknya mengikat untuk ctrl + panah kiri sedang ditimpa entah bagaimana. Bisakah Anda memasukkan konten yang tepat dari file inputrc? Kemungkinan kedua adalah garis yang salah. Omong-omong, Apakah pengikatan untuk kombinasi ctrl + kiri adalah baris terakhir ~/.inputrcfile?
drake01

tulisan yang diedit .. lihat di atas .. info tambahan, melewatkan kata-kata di sebelah kanan berfungsi dengan menahan (tidak boleh melepaskan) kunci CTRL kemudian menekan tombol kanan sekali setiap kali saya ingin melompati kata-kata .. tetapi pergi ke kiri, saya perlu untuk melepaskan kunci CTRL setiap kali saya melewatkan kata-kata ..
itagomo

siapa yang bisa membantu?
itagomo

1

Saya menemukan bahwa melompati kata ke kiri dengan memicu Ctrl + Kiri tidak berfungsi (bahkan tidak ketika saya menambahkan beberapa kode ke ~ / .inputrc atau ~ / .zshrc) karena secara default pintasan ini sudah digunakan di Ubuntu (ukurannya kembali jendela saat ini secara horizontal). Anda dapat mengubah pintasan default di menu System -> Preferences -> Shortcut Keyboard. Saya baru saja mengganti Ctrl + Kiri dengan Ctrl + Bawah untuk membebaskannya. Setelah penggantian ini, melompati kata ke kiri menggunakan Ctrl + Left berfungsi dengan baik! Bahkan tanpa ~ / .inputrc atau ~ / .zshc.


sudah mencari solusi untuk ini sejak lama. Ini sangat sederhana dan efisien! Terima kasih.
rizwanhudda
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.