Przełączanie kart w terminalu Mac za pomocą Ctrl + PageUp / PageDown

10

Niedawno zacząłem używać komputera Mac (z systemem Lion) i jedna niespójność mnie dotyka.

W Chrome i MVim mogę przełączać karty za pomocą Ctrl+ PageUp/ PageDown. Ale w terminalu muszę użyć Cmd+ Shift+ Left/ Right.

Chciałbym zmienić ten drugi na Ctrl+ PageUp/ PageDown, ale nie mogę tego zrobić.

Kiedy wchodzę do Preferencji systemowych → Klawiatura → Skróty klawiaturowe → Skróty aplikacji i dodam skrót do „Wybierz następną kartę” terminala, mogę ustawić go jako dowolną, o ile nie zawiera klawisza PageUp / PageDown.

Dlaczego jest takie ograniczenie i czy mogę je obejść?

foxcub
źródło

Odpowiedzi:

7

defaults write -g NSUserKeyEquivalents -dict-add "Select Previous Tab" "^\UF72C" "Previous Tab" "^\UF72C" "Previous Workspace" "^\UF72C" "Select Next Tab" "^\UF72D" "Next Tab" "^\UF72D" "Next Workspace" "^\UF72D"

-gmodyfikuje ~/Library/Preferences/.GlobalPreferences.plist. Musisz ponownie otworzyć aplikacje, aby zastosować zmiany, a ręcznie dodane skróty nie są wyświetlane w Skrótach aplikacji .

Lri
źródło
Zanim spróbuję, jak to cofnąć? Czy istnieje coś takiego jak -dict-remove? (Chciałbym również wiedzieć, jak znalazłeś to rozwiązanie.)
foxcub,
1
defaults delete -g NSUserKeyEquivalents. Można także edytować plik ręcznie z: f=~/Library/Preferences/.GlobalPreferences.plist; plutil -convert xml1 $f; open $f. Nigdzie się nie dowiedziałem o tym.
Lri
Myślę, że kluczowe kody są nieprawidłowe. Próbuje ustawić wszystko na Ctrl + PageUp. Gdzie mogę wyszukać te kody?
foxcub
Przepraszamy, naprawiłem to. lri.me/chars
Lri
Akceptuję tę odpowiedź, ponieważ jest to bardziej bezpośrednie podejście do mojego pytania. (Przepraszam, że nie mogę go zagłosować - za mało reputacji.)
foxcub
3

Możesz użyć iTerm, ponieważ ma on znacznie bardziej elastyczny system skrótów, ale nieuchronnie natrafisz na inną aplikację, która nie działa tak, jak chcesz.

Myślę, że przekonasz się, że Command+ shift+ [i Command+ shift+ ]to jedyne spójne skróty do przełączania się między kartami i lepiej po prostu zmienić swoje nawyki.

Jared O'Connor
źródło
Czy istnieje sposób zmiany skrótu Chrome do przełączania kart na to samo? (Myślę, że wiem, jak to zrobić dla MVim.) Zmieniam swoje nawyki, ale potrzebuję konsekwencji.
foxcub
Chrome używa już tych skrótów, podobnie jak MacVim i każda inna aplikacja, z której korzystałem, z wyjątkiem Adium.
Jared O'Connor,
Shift-Command-Strzałka w lewo / w prawo również przełącza zakładki w Terminalu. Podobnie jak w systemie Mac OS X Lion 10.7, gest „przeciągnięcie trzema palcami” przełącza zakładki (o ile nie ustawiono preferencji systemowych do używania przeciągania trzema palcami w innym celu).
Chris Page
Należy pamiętać, że w przypadku osób z (wieloma) układami klawiatury w języku innym niż angielski, wszelkie skróty zawierające klawisze takie jak [] {} są trudne do wpisania. Dlatego osobiście wolę skróty, które używają klawiszy, które nie zależą od układu klawiatury. Jak PageUp i PageDown.
tml 27.12
3

Odpowiedź Lri działa (i FWIW, głosowałem na nią), ale zajmuje trochę strzelby: tworzy ustawienia globalne (zamiast ustawień specyficznych dla Terminala), a niektóre rzeczy, które ustawia, w ogóle nie mają wpływu na Terminal - - Właściwie nie wiem do czego służą.

Jeśli, podobnie jak ja, jesteś trochę paranoikiem i wolisz bardziej „chirurgiczne” podejście, oto zmodyfikowana wersja odpowiedzi Lri:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Previous Tab"    "^\UF72C"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Next Tab"        "^\UF72D"

Dodaje tylko dwa skróty klawiszowe, ^PageUpi ^PageDown, i dodaje je tylko do terminalu.

Laurence Gonsalves
źródło
Masz pomysł, czy to powinno nadal działać (w El Capitan)? Niestety nie działa dla mnie.
Chris
@Chris Wygląda na to, że masz rację. To już nie działa! Po pierwsze, pozycje menu zmieniły nazwy (Mówią teraz „Pokaż” zamiast „Wybierz), ale nawet korygowanie tego ustawienia nie wydaje się mieć żadnego efektu. Właściwie nie mogę uzyskać NSUserKeyEquivalents pracować dla Terminalu w El Capitan Ugh
Laurence Gonsalves
1

W oparciu o tę odpowiedź oto wersja tego dla macOS High Sierra:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Next Tab" "^\UF72D"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Previous Tab" "^\UF72C"
Danielle Madeley
źródło
Potwierdzono, że działa to na Mojave, choć ta odpowiedź wydaje się być duplikatem odpowiedzi Laurence'a Gonsalvesa . Ponadto PSA: pamiętaj, aby ponownie uruchomić Terminal po uruchomieniu.
RACKGNOME