Chciałbym być w stanie skopiować i wkleić tekst w wierszu poleceń w bash przy użyciu tych samych wiązań klawiaturowych że Emacs używa domyślnie (czyli używając C-space
do set-mark
, M-w
aby skopiować tekst C-y
, M-y
aby go wkleić, etc.).
Dokumentacja GNU Bash mówi, że Bash zawiera niektóre z tych domyślnych powiązań klawiszy.
Na przykład yanking ( C-y
) działa domyślnie na moim terminalu. Nie mogę jednak sprawić, by polecenia set-mark
i copy
działały, i domyślnie nie wydają się być powiązane z żadnymi klawiszami.
Zwykle sposobem, w jaki użytkownik może zdefiniować własne powiązania klawiszy, jest ich dodanie .inputrc
. Dlatego szukałem i znalazłem następujące funkcje bash w dokumentacji przypuszczam może mi pomóc określić Emacs-like zachowanie, które chcę (tj set-mark
z C-space
i copy
z M-w
).
copy-region-as-kill ()
Skopiuj tekst z regionu do bufora zabijania, aby można go było natychmiast zaciągnąć. Domyślnie to polecenie jest niezwiązane.
i
set-mark (C-@)
Ustaw znak na punkcie. Jeśli podany zostanie argument numeryczny, znak zostanie ustawiony na tę pozycję.
Jeśli dobrze rozumiem, powyższe oznacza, że copy-region-as-kill
domyślnie nie jest związany z żadną sekwencją klawiatury, a domyślnie set-mark
jest związany C-@
.
Próbowałem C-@
na swoim terminalu, ale nie sądzę, aby działał, set-mark
ponieważ nie widzę podświetlonego tekstu, gdy poruszam kursorem. W każdym razie próbowałem dodać powiązania klawiatury ( M-w
i C-
) do funkcji copy-region-as-kill
i set-mark
powyżej w moim, .inputrc
a następnie ponownie je załadować C-x C-r
, ale to nie zadziałało. Wiem, że moje inne wpisy w.inputrc
działają, ponieważ mam zdefiniowane w nim inne skróty klawiaturowe zdefiniowane przez użytkownika.
Czy coś robię źle? Czy coś mi brakuje?
bash
i jakiego programu terminalowego używasz?