Файл ~ / .inputrc неправильно настроен


14

У меня есть этот файл ~ / .inputrc, который я создал для определенных привязок клавиш.

# 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

всякий раз, когда я пытаюсь запустить source ~/.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: Команда не найдена.

Это также не работает, когда я открываю новый терминал, я не получаю ошибку, но мои комбинации клавиш Ctrl не работают и в новом терминале. Я создал этот файл сам, так как у меня нет прав root для изменения / etc / inputrc. Кто-нибудь может мне помочь? Благодарю.

РЕДАКТИРОВАТЬ: Я пробовал файл с пробелом после знака двоеточия (:), а также. Не работает Я также попытался сделать его исполняемым (chmod + x ~ / .inputrc), не сработало.

РЕДАКТИРОВАТЬ: я понял, что эта процедура только для «Bash», и я запускаю «tcsh». Для 'csh' используйте .bindingsфайл вместо .inputrcфайла и используйте bindkeyсинтаксис.

Ответы:


12

Для bash это перезагрузит теперь определенные в настоящее время отображения

bind -f  ~/.inputrc

Где взять bindкоманду?
Данияр

bind - это встроенная оболочка. По какой ОС ты бежишь?
Пол

Я использую Debian с Zsh.
Данияр

у меня это не сработало с bash на RHEL 7. Мои привязки .inputrc все еще не перезагружаются после выполнения этой команды.
user5359531

@ user5359531, может быть, ваши предыдущие привязки не "выгружаются"? (Если они не установлены явно, они останутся такими, какими они были раньше.) Или, может быть, что-то еще, например, ваш ~ / .inputrc нет $include /etc/inputrc?
mwfearnley

6

.inputrcФайл не является файлом , чтобы быть получены. Это должно быть учтено автоматическиbash или другим программным обеспечением, использующим библиотеку readline. Если это не работает, добавьте пробел после двоеточия, например

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

(Я всегда видел пробел в этом файле конфигурации).


1
+1 Акцент на «другое программное обеспечение, использующее библиотеку readline». .inputrcне является сценарием оболочки; это readlineфайл конфигурации.
Чепнер

На самом деле, так было у меня в первую очередь, и я поменял его без места, просто чтобы попробовать. Это не работает в любом случае. Я добавил это в редактировании. Благодарю.
rrlamichhane

5

Привязка клавиш и ~/.inputrcфайл, размещенный в вопросе, предназначены для bash. Для csh(или tcsh) используйте файл ~/.bindingsи используйте следующий синтаксис.

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

Понял это после некоторого поиска в Google.


По какой-то причине мой tsch игнорировал файл .bindings. Добавление source ~/.bindingsв мой ~/.cshrcфайл исправило это.
drmuelr
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.