Odpowiedzi:
Jeśli korzystasz z iTerm2, możesz. Najpierw skonfiguruj klawisze skrótów, aby wysyłać niestandardowe kody:
A następnie możesz je powiązać, umieszczając w swoim .zshrc
:
bindkey '^[begin' beginning-of-line
bindkey '^[end' end-of-line
zsh
zawsze jest uruchomiony jako pierwszy, więc mapowanie jest tam (tylko sprawdzone: Miałem nano
wewnątrz sh
wewnątrz moich zsh
i klawiszy działa bez zarzutu).
Tak, ale nie jest to tak proste, jak można się spodziewać.
Po pierwsze, Mac OS nie przekazuje sekwencji kontrolnej do aplikacji po naciśnięciu kombinacji klawiszy poleceń. Zamiast tego aplikacje oferują funkcje dla systemu operacyjnego, które można uruchamiać za pośrednictwem Apple Events. Wiązanie kluczowych kombinacji z konkretnym zdarzeniem Apple występuje na poziomie systemu operacyjnego.
Najlepsze rozwiązanie, jakie mogę wymyślić, byłoby zgodne z następującymi wytycznymi:
Napisz kod AppleScript, który robi wszystko, co chcesz; użyj do shell script
polecenia, aby wykonać polecenia powłoki - lub napisz skrypt powłoki, jeśli jest to preferowane. Tak czy inaczej, to podejście otworzy nowe okno terminala dla każdego uruchomienia polecenia.
Alternatywnie, wymyśl sekwencję naciśnięć klawiszy, która wygeneruje pożądane zachowanie (np. Powinieneś być w stanie wpisać „top”, aby uruchomić top w bieżącym oknie powłoki).
Użyj Automatora, aby utworzyć usługę, która uruchamia AppleScript (lub skrypt powłoki lub cokolwiek innego) lub wpisuje naciśnięcia klawiszy. Przypisz tę usługę do terminalu i przypisz skrót klawiaturowy. Ten przewodnik przeprowadzi Cię przez ten proces: http://www.makeuseof.com/tag/how-to-create-your-own-services-menus-mac/
Podejście 1 jest niedoskonałe, ponieważ nie można go uruchomić w bieżącej sesji powłoki okna. Podejście 2 jest niedoskonałe, ponieważ daje niepożądane wyniki, gdy aktywna sesja powłoki działa w trybie innym niż zsh.