Plik ~ / .inputrc nie jest poprawnie pozyskiwany

14

Mam ten plik ~ / .inputrc, który utworzyłem dla niektórych powiązań klawiszy.

# 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

za każdym razem, gdy próbuję uruchomić source ~/.inputrc, pojawia się następujący błąd:

\ e [1; 5C: słowo do przodu: Nie znaleziono polecenia. \ e [1; 5D: słowo wstecz: polecenie nie znalezione. \ e [5C: słowo do przodu: Nie znaleziono polecenia. \ e [5D: słowo wstecz: polecenie nie znalezione. \ e \ e [C: słowo do przodu: Nie znaleziono polecenia. \ e \ e [D: słowo wstecz: polecenie nie znalezione.

Nie działa również, gdy otwieram nowy terminal, nie otrzymuję błędu, ale moje kombinacje klawiszy ctrl również nie działają w nowym terminalu. Sam utworzyłem ten plik, ponieważ nie mam uprawnień roota do zmiany / etc / inputrc. Czy ktokolwiek może mi pomóc? Dzięki.

EDYCJA: Próbowałem również pliku ze spacją po znaku dwukropka (:). To nie działa Próbowałem również uczynić go wykonywalnym (chmod + x ~ / .inputrc), ale nie działało.

EDYCJA: Zdałem sobie sprawę, że ta procedura dotyczy tylko „bash” i uruchamiam „tcsh”. W przypadku „csh” użyj .bindingspliku zamiast .inputrcpliku i użyj bindkeyskładni.

rrlamichhane
źródło

Odpowiedzi:

12

W przypadku bash spowoduje to ponowne załadowanie obecnie zdefiniowanych mapowań

bind -f  ~/.inputrc
Paweł
źródło
Skąd wziąć bindpolecenie?
danijar
bind jest wbudowaną powłoką. Jakim systemem operujesz?
Paul
Używam Debiana z zsh.
danijar
nie działało to dla mnie z bash na RHEL 7. Moje powiązania .inputrc nadal nie ładują się ponownie po uruchomieniu tego polecenia.
user5359531,
@ user5359531, czy to możliwe, że poprzednie powiązania nie są „rozładowywane”? (Jeśli nie zostaną wyraźnie określone, pozostaną takie, jakie były wcześniej.) A może coś innego, takiego jak twój ~ / .inputrc $include /etc/inputrc?
mwfearnley
6

.inputrcPlik nie jest plikiem być pozyskiwane. Powinno to zostać wzięte pod uwagę automatycznie przez bashinne oprogramowanie korzystające z biblioteki readline. Jeśli to nie zadziała, dodaj spację za dwukropkiem, np

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

(Zawsze widziałem spację w tym pliku konfiguracyjnym).

vinc17
źródło
1
+1 Nacisk na „inne oprogramowanie korzystające z biblioteki readline”. .inputrcnie jest skryptem powłoki; to readlineplik konfiguracyjny.
chepner
Właściwie tak to najpierw miałem i zmieniłem na bez miejsca, żeby to wypróbować. To nie działa w żaden sposób. Dodałem to w edycji. Dzięki.
rrlamichhane
5

Kluczowe powiązania i ~/.inputrcopublikowany plik są dla bash. Do csh(lub tcsh) użyj pliku ~/.bindingsi użyj następującej składni.

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

Zrozumiałem to po pewnym googlowaniu.

rrlamichhane
źródło
Z jakiegokolwiek powodu mój tsch ignorował plik .bindings. Dodanie source ~/.bindingsdo mojego ~/.cshrcpliku naprawiło to.
drmuelr