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?

Sairam
źródło
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ąć).

Asmus
źródło
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.

Boretom
źródło
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.

Jason Salaz
źródło
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.

Jens Lorentsson
źródło
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.

RandallZ
źródło