~ / .inputrc file tidak sumber dengan benar

14

Saya memiliki file ~ / .inputrc ini yang saya buat untuk binding kunci tertentu.

# 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

setiap kali saya mencoba menjalankan source ~/.inputrc, itu memberi saya kesalahan berikut:

\ e [1; 5C: kata depan: Perintah tidak ditemukan. \ e [1; 5D: mundur-kata: Perintah tidak ditemukan. \ e [5C: kata depan: Perintah tidak ditemukan. \ e [5D: kata mundur: Perintah tidak ditemukan. \ e \ e [C: kata depan: Perintah tidak ditemukan. \ e \ e [D: mundur-kata: Perintah tidak ditemukan.

Ini juga tidak berfungsi ketika saya membuka terminal baru, saya tidak mendapatkan kesalahan tetapi kombinasi tombol ctrl saya tidak bekerja di terminal baru juga. Saya membuat file ini sendiri karena saya tidak memiliki akses root untuk mengubah / etc / inputrc. Adakah yang bisa membantu saya? Terima kasih.

EDIT: Saya sudah mencoba file dengan spasi setelah tanda titik dua (:) juga. Itu tidak bekerja. Saya juga mencoba membuatnya menjadi executable (chmod + x ~ / .inputrc), tidak berhasil.

EDIT: Saya menyadari bahwa prosedur ini hanya untuk 'bash' dan saya menjalankan 'tcsh'. Untuk 'csh', gunakan .bindingsfile alih-alih .inputrcfile dan gunakan bindkeysintaks.

rrlamichhane
sumber

Jawaban:

12

Untuk bash, ini akan memuat ulang sekarang pemetaan yang saat ini didefinisikan

bind -f  ~/.inputrc
Paul
sumber
Dari mana mendapat bindperintah?
danijar
bind adalah shell builtin. Apa yang Anda jalankan?
Paul
Saya menggunakan Debian dengan zsh.
danijar
ini tidak bekerja untuk saya dengan bash di RHEL 7. Binding .inputrc saya masih belum memuat ulang setelah menjalankan perintah ini.
user5359531
@ user5359531, mungkinkah binding Anda sebelumnya bukan "un-loading"? (Jika mereka tidak diatur secara eksplisit, mereka akan tetap seperti sebelumnya.) Atau mungkin sesuatu yang lain, seperti ~ / .inputrc Anda tidak $include /etc/inputrc?
mwfearnley
6

The .inputrcfile tidak file yang akan bersumber. Ini harus diperhitungkan secara otomatis oleh bashatau perangkat lunak lain menggunakan pustaka readline. Jika ini tidak berhasil, tambahkan spasi setelah titik dua, mis

"\e[1;5C": forward-word

(Saya selalu melihat spasi di file konfigurasi ini).

vinc17
sumber
1
+1 Penekanan pada "perangkat lunak lain menggunakan pustaka readline". .inputrcbukan skrip shell; ini adalah readlinefile konfigurasi.
chepner
Sebenarnya, itulah yang saya lakukan pertama kali dan saya mengubahnya menjadi tanpa ruang hanya untuk mencobanya. Tidak juga. Saya telah menambahkan itu di edit. Terima kasih.
rrlamichhane
5

Binding kunci dan ~/.inputrcfile yang diposting dalam pertanyaan adalah untuk bash. Untuk csh(atau tcsh) menggunakan file ~/.bindingsdan menggunakan sintaks berikut.

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

Menyadari hal ini setelah beberapa googling.

rrlamichhane
sumber
Untuk alasan apa pun, tsch saya mengabaikan file .bindings. Menambahkan source ~/.bindingske ~/.cshrcfile saya memperbaiki ini.
drmuelr