Jak przeskoczyć do lokalizacji za pomocą myszy na iTerm / terminal?


43

Przez większość czasu pracuję na terminalu.

Czy istnieje aplikacja / wtyczka nad iTerm lub inną aplikacją podobną do terminala, za pomocą której mogę kontrolować położenie kursora mojego terminala za pomocą myszy?


Co chcesz zrobić kursorem?
— user151019,

1
Chciałbym przeskoczyć do kursora. Przypadek użycia, jeśli mam długą linię ograniczoną spacją, chciałbym przeskoczyć do określonej lokalizacji. używanie klawiatury wymaga wielu naciśnięć klawiszy.
— Sairam

Jeśli już używasz terminala, prawdopodobnie doceniasz klawiaturę. Naucz się skrótów klawiaturowych, aby przeskakiwać na przód / tył wiersza i poruszać się po słowie, a to pozwoli Ci zaoszczędzić wiele naciśnięć klawiszy i prawdopodobnie będzie szybsze niż mysz.

1
Zobacz także apple.stackexchange.com/a/217167/24565, aby uzyskać informacje na temat opcji myszy dla tmux
— Michael Durrant

Odpowiedzi:


52

Przynajmniej w Terminal.app możesz przytrzymać, optionklikając, aby przeskoczyć w bieżącej linii (to tak naprawdę oznacza tylko linię, więc jeśli twój bieżący monit jest tak długi, że zawija się do drugiej linii wejściowej, musisz optionkliknąć na początek „drugiej” linii, a następnie przeskocz za pomocą klawiszy strzałek do „pierwszej” linii, w której możesz optionponownie kliknąć).


1
Kliknij opcję, interesujące. Nigdy wcześniej tego nie wiedziałem. Pamiętaj jednak, aby kliknąć linię, cholera. Nawet nie rozumiem, co się dzieje, gdy klikam powyżej / poniżej bieżącej linii. Zakładam, że naciska to wiele razy, ale jestem prawie pewien, że historia poleceń nie do końca pasuje.
— Jason Salaz

Cóż, odczytuje tylko liczbę kolumn, w których kiedykolwiek klikasz i przeskakuje do tej pozycji w bieżącej linii (!); więc jeśli znajdziesz się na końcu zawiniętego monitu (powiedzmy wiersz 2: kolumna 45) i klikniesz opcję w pierwszym wierszu (powiedzmy wiersz 1: kolumna 4), skończysz w kolumnie 4 (świetnie), ale pozostań w linii 2 (źle!).
— Asmus

2
Sposób, w jaki działa Option-Click, polega na tym, że wydaje odpowiednik danych wprowadzanych klawiszami strzałek. Działa to dobrze w edytorach takich jak emacs, ale jeśli jesteś w linii poleceń bash, interpretuje on w górę / w dół jako „poprzednie / następne polecenie w historii”. Tak więc, jeśli klikniesz z wciśniętym klawiszem Option w dowolnym miejscu oprócz tego samego wiersza, który zawiera monit, bash przejdzie do historii poleceń zamiast przesuwać kursor.
— Chris Page

Działa w iTerm2.
— Ahmet Alp Balkan

9

Minęło sporo czasu, odkąd pojawiło się to pytanie, a ja już wspomniałem poniżej na tej platformie w Option-kliknięciu w iTerm i narzędziu do śledzenia problemów iTerm2, ale może jest to pomocne dla jednego lub drugiego:

Cześć, chciałem tylko poinformować, że zaimplementowałem tę funkcję w iTerm2. Nie ma go jeszcze w oficjalnym repozytorium iTerm2, ale jeśli chcesz go wypróbować, możesz go znaleźć na github .

Ponieważ jest testowany tylko przeze mnie, uważaj go za niestabilny. Testowałem to za pomocą bash, vi i emacs i starałem się przypominać zachowanie Terminal.app.

Na githubie znajduje się również prekompilowana wersja binarna iTerm_v1.0.0.20120312.git-b919985b.zip (dla i386 / x86_64 / ppc).

Oczywiście wszelkie opinie są mile widziane.


Czy raportowanie myszy uległo awarii w ostatniej wersji? To już dla mnie nie działa, nie widzę kursora „o” i nie wiem, jak go odzyskać.
— Michael

Cofam tamto. Raportowanie za pomocą myszy nie działa tylko w niektórych przypadkach - na przykład, jeśli ssh na innym komputerze, to dołącz do sesji tmux, na której już działa emacs. To kiedyś działało. Teraz czasami musisz wyjść z emacsa i uruchomić go ponownie, zanim raportowanie myszy zadziała ...
— Michael

Wydaje się, że idzie tylko do pozycji w dowolnym miejscu na bieżącej linii. Czy możliwe jest kliknięcie w dowolnym miejscu aktywnego polecenia?
— Skeleton Bow

6

Klawiatura jest często najlepszym przyjacielem. W konfiguracji domyślnej powłoka kontroluje większość sposobu poruszania się po wierszu polecenia.

Option+ bcofa słowo (kursor kończy się na pierwszej literze poprzedniego słowa).

Option+ fprzesuwa słowo do przodu (kursor będzie znajdował się przy znaku nieliterowym PO następnym słowie).

Shift+ Fn+ Left Arrow (←)umieści kursor na samym początku linii. ( Ctrl+ arównież to zrobi.)

Shift+ Fn+ Right Arrow (→)umieści kursor na samym końcu linii. ( Ctrl+ erównież to zrobi.)

Więc jeśli mam długie polecenie, na przykład:

$ rsync -avz --progress ~/Sites/Development/My/Project web@server:/deployment/output/area

I zacznę trafienia Option+ bkursor zatrzyma się na A w dziedzinie, o w wydajnością, d w rozmieszczania itp

Jeśli przejdę do początku linii i zacznę naciskać Option+ f, kursor zatrzyma się na spacji po rsync, spacji po avz, spacji po postępie, / po witrynach itp.


Podoba mi się twoje rozważne rozwiązanie „problemu XY”. Chociaż nie odpowiada na pierwotne pytanie, jest to bardzo godna alternatywa. Czy jednak celowo mówisz CMD + bi opcja + b?
— Cornelius Roemer

1
Nie, to był błąd z mojej strony. Polecenie nigdy nie powinno być tutaj użyte, ponieważ kontroluje zachowanie okna terminala, a nie zachowanie powłoki / ruchu.
— Jason Salaz

5

W iTerm2 przytrzymujesz klawisz alt (lewy lub prawy) i kliknij, aby przesunąć kursor do dowolnej pozycji w dowolnej linii.


3

Jeśli jesteś szczególnie zainteresowany ruchem w Vimie, możesz dodać set mouse=ado swojego ~/.vimrcpliku.

Działa w iTerm dla ruchu. Pozwala także oznaczać sekcje tak, jakbyś wszedł w tryb wizualny, dzięki czemu możesz szarpać lub usuwać go lub komentować kod w zależności od wtyczek.

Bardzo wygodnie pozwala także szybko przewijać duży dokument za pomocą suwaka lub palca myszy.

Jedyną wadą jest to, że utrudnia zaznaczenie tekstu, który chcesz skopiować, do wykorzystania w innych aplikacjach - chociaż wszystko, co musisz zrobić, to nacisnąć optionpodczas zaznaczania.

Ponadto: zauważ, że jeśli dodasz coś takiego jak vimpager (również na Macports), możesz także przewijać strony podręcznika po dodaniu:

export PAGER=/opt/local/bin/vimpager #or wherever vimpager is installed
alias less=$PAGER

do twojego .profilelub .bashrc.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.