Skopiuj kolorowe wydruki z terminala Mac OS X.

37

Widzę ładnie kolorowe wyjście w moim terminalu.

Terminal ma polecenie „Eksportuj tekst jako”, ale zapisuje plik tekstowy bez kolorów. To samo z kopiowaniem i wklejaniem.

Czy znasz sposób na oszczędzanie danych wyjściowych, w tym kolorów?

Wojtek Kruszewski
źródło
Jeśli jest to dla Ciebie ważne, poinformuj Apple za pośrednictwem apple.com/feedback/macosx.html (obszar opinii o aplikacjach / narzędziach) lub developer.apple.com/bugreporter (wymaga rejestracji bezpłatnego konta programisty).
Chris Page
Terminal ma teraz listę opcji dla podstawowego polecenia kopiowania Cmd-c Edit -> Copy Special, w którym można przełączać między opcjami Zwykły tekst i Tekst sformatowany.
Joshua Goldberg,

Odpowiedzi:

12

Wygląda na to, że jeśli wybierzesz tekst w terminalu, a następnie skopiujesz go, a następnie wkleisz do aplikacji obsługującej tekst sformatowany (np. Mail, TextEdit, Word), wówczas kolor tekstu zostanie zachowany.

Wygląda na to, że w Mail i TextEdit kolor tła terminala jest również wklejony; w słowie tak nie jest. Nie jestem pewien, jak wyjaśnić tę rozbieżność.

Max Nanasy
źródło
Jakiej wersji OS X używasz? To nie działa w 10.7.4.
Wildcard,
1
@Wildcard Działa dla mnie 10.11.3. Nie pamiętam, której wersji użyłem, kiedy to napisałem
Max Nanasy,
1
Miałem problem ze zwykłym kopiowaniem do wklejania do poczty - kolory zostały utracone - ale zadziałało, gdy użyłem Edycja -> Kopiuj specjalnie -> Kopiuj bez koloru tła (co i tak wolałem). Działa nawet z opcją przeciągania, aby utworzyć prostokątny wybór. (10.12.6)
Joshua Goldberg
31

Zadziwiające, jak zadawanie pytań zwiększa kreatywność.

Mogę otworzyć okno dialogowe „Drukuj” i zapisać do pliku PDF, a następnie skopiować kolorowe wydruki z pliku PDF.

Również aplikacja terminalowa iTerm2 ma skrót, CMDOPTCktóry można kopiować z formatowaniem.

Wojtek Kruszewski
źródło
1
To rozwiązanie jest idealne do utrzymywania kolorowych wydruków podczas tworzenia przykładów terminali w prezentacji Keynote. Dzięki!
beausmith,
1
@Wojtek: Nie ma za co, choć kosztowało mnie to trochę reputacji, gdy nie zaakceptowałeś mojej odpowiedzi ... ;-)
martineau
+1 za skrót iTerm2! Dlaczego nawet w meny ???
Per Lundberg,
1
To ... jest zdecydowanie najbardziej przydatne znalezisko od dawna !!!
haavee
Jeśli korzystasz ⌘ + ⌥ + Cz iTerm2, otwórz Keynote i wklej go, zaimportuje go jako dane tabeli. Nie do końca odkryłem, jak sformatować dane w przydatny sposób, ale jest w tym potencjał.
Kevin Suttle
8

możesz spróbować wkleić kolorowe dane wyjściowe do schowka w następujący sposób:

% command_which_produces_colors | pbcopy -prefer rtf

która umieszcza trochę rtf (prawdopodobnie kolorowych i sformatowanych) na tablicy makr. następnie możesz użyć dowolnego innego, który rozumie tekst sformatowany, aby uzyskać dostęp do schowka.

to oczywiście nie jest to samo, co „wybierz za pomocą myszy”, ale może warto spróbować.

akira
źródło
Nie działa. Pierwszy problem polega na tym, że polecenie, które_produkuje_kolory, zauważa, że ​​nie drukuje na konsoli, więc pomija kolory. Mimo to mogę zmusić niektóre z nich do drukowania kolorów, więc następujące polecenie wypisuje kolory do terminala: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | tee Ale pbcopy nie kopiuje kolorów: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | pbcopy -prefer rtf +1 dla poleceń pbcopy / pbpaste Świetnie nadaje się do kopiowania długich plików do schowka: "pbcopy <longfile.txt"
Wojtek Kruszewski
1
Kiedy próbuję, jeśli command_which_produces_colorsprodukuje kody ANSI, to pbcopy -Prefer rtfpo prostu kopiuje tekst zawierający kody ANSI (np. Kopiuje [0;34mTextna niebiesko Text). Wydaje się, że konwersja kodów ANSI na RTF może być wymagana jako etap pośredni.
Max Nanasy,
8

Na podstawie @ Akiry odpowiedź , ja przyszedłem z poniższych sytuacji:

  1. Pobierz pakiet źródłowy dla ansifiltera
  2. Postępuj zgodnie z instrukcjami w INSTALACJI, aby zbudować i zainstalować filtr
  3. Biegać <command that produces colors> | ansifilter --rtf | pbcopy -Prefer rtf
    • Może być konieczne przekazanie argumentów, aby <command that produces colors>zmusić go do tworzenia kolorów, nawet jeśli dane wyjściowe są przesyłane strumieniowo, np. ls --color=alwaysZamiast po prostuls
  4. Następnie możesz wkleić do aplikacji obsługującej tekst sformatowany (np. Mail, TextEdit, Word)
Max Nanasy
źródło
2

OS X ma kilka skrótów klawiaturowych (skrótów) do kopiowania ekranu. Pozwoli to zapisać zrzuty ekranu jako pliki jpg na pulpicie. Oto ich lista:

Cmd-Shift-3                             Take snapshot of the whole screen
Cmd-Shift-4                             Take snapshot of the selected area
Cmd-Shift-4-Spacebar                    Take picture of a window
Escape                                  Cancel
Hold Spacebar after Drawing the region  Move the selected area
Hold Option                             Resize selected area
Hold Shift                              Resize selected area horizontally 
                                        or vertically 

W Aplikacjach znajduje się również aplikacja „Grab” Folder narzędzi, który wykonuje tę samą pracę, plus ma kilka dodatkowych funkcji, takich jak opóźnienie.

Aktualizacja

W Snow Leopard (10.6.8) domyślnym formatem zrzutu ekranu jest png, a nie jpg, chociaż można go zmienić na dowolny z wielu innych - w tym pdf - za pomocą bezpłatnego narzędzia do ustawiania preferencji TinkerTool innej firmy .

martineau
źródło
9
.jpg nie jest tak ładnym tekstem jak „czysty”.
akira
3
+1 za mniej znane skróty do obszaru wyboru.
Daniel Beck
@akira: OP chce kolorów - czegoś, czego nie można zrobić w formacie zwykłego tekstu, chyba że policzy się osadzone sekwencje specjalne ANSI - a te będą potrzebowały czegoś, aby je zinterpretować jak emulator terminala, ale wrócisz do oryginalny problem.
martineau
2
@artineau: w zależności od możliwości Schowka kolory są zapisywane przez znaczniki (np. richtext lub html) podczas kopiowania z przeglądarki, ze słowa lub z Xyz. i w zależności od aplikacji, która odbiera tak oznaczone fragmenty, mogą wyświetlać kolory ORAZ tekst całkiem dobrze. terminal odbiera sekwencje specjalne Ascii, poprawne, ale tylko dlatego, że odbiera sekwencje specjalne Ascii, nie oznacza, że ​​musi a) przechowywać je (np. myśleć o terminalu HTML) b) może poprawić zaznaczony tekst na wiele sposobów (możesz umieść jednocześnie różne typy MIME w dobrym schowku).
akira
3
@akira JPG to naprawdę kiepski wybór formatu obrazu dla czegoś takiego jak zrzut ekranu. Duże obszary jednokolorowe i ostre linie pojedynczych pikseli itp. Na całej powierzchni. Na szczęście Apple nie jest aż tak głupie, a zapisywany przez niego plik to PNG. lbrandy.com/blog/2008/10/my-first-and-last-webcomic
rjmunro
0

Robię to poprzez doskonałą aplikację Textmate 2.

  1. Skopiuj z okna graficznego R.
  2. Wklej do pustego dokumentu partnera tekstowego
  3. Zmień typ dokumentu na R Konsola lub R zgodnie z preferencjami
  4. Użyj tmbundle w stylu kopiowania (shift-cmd-c)
  5. Wklej do okna tworzenia aplikacji poczty

Muszę powiedzieć, że byłoby miło, gdyby shift-cmd-c działał bezpośrednio w oknie konsoli R.

Michael Neale
źródło