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ę ...

mgalgs
źródło
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ę .

mgalgs
źródło
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ąć ...

Dobes Vandermeer
źródło
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

Dodaj tę linię do .inputrc:

alias macro
FALL3N
źródło
och, dzięki za naprawienie tego, mój zły: /
FALL3N
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

Dennis
źródło
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