Czy można skonfigurować terminal gnome, aby kopiować zaznaczenie bez pytania?

0

Często chcę skopiować zestaw poleceń z terminala, które nie mają danych wyjściowych; powiedz taki blok:

prompt$ less file1.txt
prompt$ less file2.txt
prompt$ dhex file2.txt
prompt$ less file3.txt

Teraz, jeśli zaznaczę ten blok tekstu za pomocą myszy i skopiuję go za pomocą Ctrl-Shift-C; kiedy wklejam plik tekstowy, pojawia się monit (zgodnie z oczekiwaniami) - a następnie muszę marnować czas na usuwanie monitu:)

Więc błąkałem się - czy istnieje ustawienie dla gnome-terminalu, takie, że kiedy robię to samo kopiowanie, kończę na samych poleceniach - bez monitu? Właśnie tego chcę, kiedy w końcu wkleję:

less file1.txt
less file2.txt
dhex file2.txt
less file3.txt

Interesuje mnie rozwiązanie, które pozwoli mi uzyskać to w schowku, po prostu wybierając mysz i Ctrl-Shift-C; Wiem, że mógłbym to zrobić history X, ale musiałbym to grepzrobić - i pomyśleć o odpowiednim wyrażeniu grep (i ten sam problem występuje, jeśli nagrywam maszynopis sesji terminalowej script).

Jakieś udogodnienia? Jeśli nie gnome-terminal, to jakikolwiek inny terminal, którego można użyć pod Gnome, który oferuje taką możliwość?

sdaau
źródło

Odpowiedzi:

1

Zakładając, że używasz bash jako powłoki, możesz po prostu zrobić coś takiego:

history -a ; tail -5 $HISTFILE

zamieniając 5 na dowolną liczbę poleceń, które chcesz cofnąć. To powinno dać ci czysty wpis, który łatwo skopiujesz / wkleisz. Nie do końca takie podejście, na które wydajesz się łowić, ale może być odpowiednie.

Jason Sherman
źródło
Wielkie dzięki za to, @JasonSherman - niestety zawiera tylko polecenia terminala, a nie dane wyjściowe. Podszedłem blisko do tej odpowiedzi , którą zaakceptowałem (przynajmniej dopóki nie usłyszę czegoś lepszego). Twoje zdrowie!
sdaau
1

W Gnome Terminal możesz zaznaczyć blok tekstu za pomocą myszki + klawisza CTRL. W ten sposób możesz skopiować wszystkie dane wyjściowe konsoli bez pytania. na przykład:

wprowadź opis zdjęcia tutaj

Noam Manos
źródło
0

Cóż, byłem dość zaniepokojony tym problemem, więc w końcu kodowałem rozwiązanie, które jest bardzo blisko: wtyczka filtrująca dla menedżera schowka Glipper, która pozwala na przetwarzanie wyrażeń regularnych w funkcjach filtrowania, które można zastosować do zawartości schowka podczas kopiowania akcja; wydany tutaj:

... a oto zrzut ekranu:

glipper-filter.png

Ponieważ jednak chcę tego używać tylko sporadycznie, przełączanie filtrowania może nie być najlepszym pomysłem (ponieważ musisz włączyć, skopiować / wkleić, a następnie wyłączyć) - więc wtyczka omija normalne działanie po kliknięciu pozycji podmenu filtru Jeśli Ctrl, Altlub csą utrzymywane; więc moje „minimalne” działanie, aby wykonać jednorazowe monitowanie, wygląda następująco:

  • Wybierz region tekstu (w tym monity) w terminalu
  • Naciśnij Ctrl+ Alt+ c(domyślny skrót), aby wyświetlić okno menu Glipper
  • Utrzymywanie każdy (lub wszystkie) Ctrl, Altlub cutrzymywane naciśnięciu
    • najedź kursorem na pozycję menu Filtrowanie
    • najedź kursorem na i kliknij żądany element menu filtra (pod) (np. TermCmdLog)
  • Znika menu Glipper - trzymane klawisze można teraz zwolnić
  • Przesuń wskaźnik i kliknij, aby ustawić edytor tekstu
  • Wklej - wklejona zawartość jest modyfikowana przez kliknięty filtr (np. Dla TermCmdLogdanych wejściowych usunięto monity i skomentowano wiersze bez monitu)

W końcu wolałbym, aby sam terminal miał akord klawiatury dla filtrowanego wyjścia (powiedz, naciśnij Ctrl+ Shift+ a, a następnie zwolnij a, a następnie trzymając wciśnięte inne c) - ale to byłoby OK dla pojedynczego filtra; a jeśli chcesz wybrać jeden z kilku filtrów w czasie wykonywania, ponownie istnieje problem z podjęciem innego działania w celu dokonania wyboru; a jeśli zostanie to rozwiązane za pomocą okna GUI pozycji menu - to chyba ta wtyczka jest równie dobra. Co więcej, działa dla dowolnego źródła GUI (kopiowalnego) tekstu w pulpicie Gnome - nie tylko dla terminala.

Niestety, został opracowany dla Gnome / Gtk 2 / Python 2.7, więc jest już przestarzały; wciąż mam nadzieję, że może mieć nadzieję innych (dopóki nie usłyszę lepszego rozwiązania - mam nadzieję w tym wątku :)), Na
zdrowie!

sdaau
źródło
chciałbym, żeby zrzut ekranu się nie
zmniejszył
0

Jeśli używasz multipleksera terminala tmux, możesz to zrobić łatwo i wiele więcej!

Noam Manos wskazał już w innej odpowiedzi Gnome Terminal zezwala na kopiowanie blokowe za pomocą Ctrl + kliknięcie myszą i przeciągnięcie. Chciałem tylko wskazać inną alternatywę, która jest silniejsza. Tmux obsługuje przełączanie terminala w „tryb kopiowania” i pozwala na blokowanie kopii i wiele więcej - Obsługuje nawet wiele buforów wklejania, które możesz skopiować i użyć później.

Używam następujących wierszy w pliku .tmux.conf, aby użyć skrótów klawiszowych vi do kopiowania bloków:

bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle 

Nauczenie się konfiguracji i używania tmux zajmuje trochę wysiłku, ale warto i jestem z tego zadowolony.

Thava
źródło