Czy jest jakiś sposób, aby zapisać makro klawiatury w bash?


11

Chciałbym na stałe zapisać makro klawiatury , które nagrałem za pomocą C-x (i C-x ). Czy istnieje prosty sposób na „zobaczenie źródła” mojego nowo nagranego makra, aby móc powiązać go ze skrótem klawiaturowym w ~ / .inputrc?

Myślałem, że dump-macrosto zrobię, ale nie wydaje się ...


Niech mnie diabli. Nie wiedziałem o tej funkcji.
Charlie Martin

Używam gnome-terminal i gconf-editor do konfigurowania skrótów klawiaturowych.
saeedgnu

Odpowiedzi:


3

Okazuje się, że to naprawdę niemożliwe, to znaczy nie było możliwe do dzisiejszego wieczora!

Ponieważ i tak chciałem zagłębić się w kod źródłowy bash, poszedłem dalej i dodałem tę funkcję :). Zobaczymy, czy opiekunowie bash zastosują moją łatkę .


1

Najlepsze, co mogłem wymyślić, to spróbować:

echo >>.inputrc '<ctrl-x e>'

Lub jeśli makro ma wiele linii, spróbuj:

echo >>.inputrc <<EOF
<ctrl-x e>
EOF

Jeśli użyłeś znaków kontrolnych, możesz umieścić tam sed, aby zastąpić je odpowiednimi kodami ucieczki dla inputrc.

Następnie wejdź i edytuj ostatni wiersz, aby mieć odpowiedni prefiks i sufiks dla tego, co próbujesz osiągnąć ...


zapisz krok, edytuj .inputrc, ustaw gdziekolwiek chcesz makro i Cx e, aby je wpisać. Ale tak, powiedziałbym, że to najlepszy sposób, oczywiście, możesz umieścić go gdziekolwiek chcesz, to tylko kilka naciśnięć klawiszy. Jeśli nie jesteś w „odpowiednim trybie / miejscu / programie”, prawdopodobnie dostaniesz źle zrozumiane dane wejściowe. Ale można się spodziewać, że jeśli nie użyjesz makra we właściwym miejscu, prawda?
lornix,


0

Wygląda na to, że .inputrc pozwala ci po prostu edytować swoje polecenia. Próbowałem dump-macrosrównież użyć, ale nie udało mi się go uruchomić, ani też nie ma dużo dokumentacji na ten temat. Być może to nie działa lub jest przestarzałe.

Gdyby było takie polecenie jak xevdla powiązań emacsa, byłoby to pomocne. W każdym razie myślę, że najlepszym rozwiązaniem jest edycja inputrc zgodnie z wytycznymi w pierwszym linku poniżej u dołu strony. To dość łatwe do zrobienia.

Drugie łącze to przykładowy plik inputrc, który pomaga dowiedzieć się, jak skonfigurować makra.

Nawiasem mówiąc, istnieje także fajne polecenie, bind -Pktóre wyświetli wszystkie twoje makra.

http://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#Miscellaneous-Commands

Oto przykładowy plik inputrc:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File


Tak, chodzi o to, że nie trzeba ręcznie pisać makra, ale zamiast tego wydrukować ten, który właśnie nagrałem ...
mgalgs

okazuje się dump-macrospo prostu, że wypisuje to, co wyprowadzą obecnie zdefiniowane makra.
mgalgs
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.