Odpowiedzi:
Tak wygodne, jak by to było, Terminal nie może łatwo zapewnić żądanej funkcjonalności.
Powodem jest to, że programy działające w Terminalu mają różne reguły przenoszenia kursora na początek / koniec linii, na przykład:
bash(i inne powłoki) używają CtrlAiCtrlEviwykorzystuje 0i $/Shift4Inne programy mogą używać innych klawiszy. Nie ma uniwersalnej kombinacji klawiszy do pozycjonowania kursora na początku / końcu linii.
Oczywiście Terminal może utrzymywać listę kombinacji klawiszy dla wielu popularnych programów, sprawdzać, co działa i wysyłać odpowiednie klucze, lub może zapewniać pozycję menu, taką jak Przenieś kursor do początku linii wewnątrz powłoki ⌘ ←, a następnie wyślij CtrlAza kulisami. Ale myślę, że inżynierowie Apple myśleli, że jeśli zapuścisz się na terytorium CLI , znasz jego osobliwości.
Na marginesie, Terminal zapewnia Option←i Option→który zachowuje się bashtak, jak można się spodziewać, i przesuwa kursor na początek poprzedniego / następnego słowa. To dlatego, że te kombinacje klawiszy są odwzorowane na Escba Escb(patrz man bashsekcja „Polecenia dla Moving”, aby uzyskać więcej informacji). Na viprzykład działa tylko ten ostatni (rodzaj) (na końcu tej odpowiedzi pokażę, jak skonfigurować vipracę z Option←i Option→).
Ale dzięki Automatorowi, AppleScript i aliasom bash możesz uzyskać ⌘←i ⌘→pracować z bash(i ewentualnie innymi powłokami) i vi.
Pierwszym krokiem jest zmapowanie ⌘←i ⌘→do CtrlAi CtrlE. W drugim kroku pokażę, jak skonfigurować, viaby honorować CtrlAi CtrlE(co w rezultacie zapewni vizgodność z ⌘←i ⌘→).
Mapa ⌘←oraz ⌘→do CtrlAiCtrlE
W Terminalu wybierz Preferencje ...> Ustawienia> [Twój aktywny profil]> Klawiatura:

Naciśnij +, wybierz „Kursor w lewo”, „Control-Shift” jako modyfikator i akcję „Wyślij tekst:”. Następnie naciśnij CtrlA( \001pojawi się w polu tekstowym) i potwierdź OK:

(W poprzedniej wersji tej odpowiedzi użyłem „Shift” jako modyfikatora. Zauważyłem, że to ustawienie jest w konflikcie ⌘shift←, co pokazuje poprzednią kartę Terminal, jeśli nie puścisz od ⌘razu. Używając „Control-Shift” naprawia to.)
Teraz dodaj kombinację klawiszy dla „Kursora w prawo”, ale naciśnij CtrlE( \005pojawi się w polu tekstowym). Potwierdź za pomocą OK.
Otwórz Automator (na przykład naciśnij, ⌘spaceaby uruchomić Spotlight i wpisz Automator ), wybierz Plik> Nowy i wybierz Service:

Przeciągnij Run AppleScriptdo prawego panelu:

Wpisz następujący skrypt:
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 123 using {shift down, control down}
end tell
end tell
end run
i zapisz jako Move Cursor to Beginning of Line:
Powtórz kroki od 4. do 6. z tym skryptem:
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 124 using {shift down, control down}
end tell
end tell
end run
i zapisz jako Move Cursor to End of Line:
Tak teraz wygląda Terminal> Usługi:

Skonfiguruj, viaby honorować CtrlAiCtrlE
Otwórz .bashrcw swoim ulubionym edytorze i dodaj ten wiersz:
alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'
Pierwsze dwa mappolecenia nakazują viminterpretować ControlEoraz ControlAjako $i 0, które przesuwają kursor odpowiednio na początek lub koniec linii.
Ostatnie dwa mappolecenia każą vimprzesuwać kursor o jedno słowo na raz, jak można się spodziewać po naciśnięciu option←i Option→.
Ostrzeżenia
Zauważysz, że istnieje krótkie opóźnienie między momentem naciśnięcia ⌘←lub ⌘→momentem, w którym kursor faktycznie się porusza.
Pamiętaj, że będzie działać tylko dla programów, które honorują CtrlA/ CtrlE, więc możesz chcieć nauczyć się konkretnych kombinacji klawiszy każdego programu używanego w Terminalu.
(Testowane na macOS Sierra 10.12.4)
⌘
viktórych jest zupełnie inna aplikacja niż terminal.
Oczywiście, że to możliwe.
Przede wszystkim możesz skorzystać z bezpłatnego narzędzia „DoubleCommand”, jeśli masz klawiaturę Windows z klawiszami HOME / END, aby zachowywać się tak, jak powinny (początek / koniec linii).
Po drugie, w szczególności w terminalu, przejdź do preferencji Klawiatura, edytuj ikonę / klawisz, który wygląda jak strzałka skierowana w górę w lewo, wybierz „wyślij tekst” i wpisz ctrl + a. Gotowy!
To samo dotyczy przycisku zakończenia.
Jeśli nie masz klawiatury komputera, możesz zrobić to samo z innymi kombinacjami klawiszy.