Copia l'output colorato dal terminale Mac OS X.


37

Vedo un output ben colorato nel mio terminale.

Il terminale ha un comando "Esporta testo come" ma salva un file di testo normale senza i colori. Lo stesso vale per copia e incolla.

Conosci un modo per salvare l'output del terminale inclusi i colori?


Se questo è importante per te, informa Apple tramite apple.com/feedback/macosx.html (area di feedback Applicazioni / Utilità) o developer.apple.com/bugreporter (richiede la registrazione per un account sviluppatore gratuito).
Chris Pagina

Terminale ora ha un elenco di opzioni per il comando di base Cmd-c copia Edit -> Copy Special, in cui è possibile alternare tra le opzioni Testo normale e Rich text.
Joshua Goldberg,

Risposte:


12

Sembra che se selezioni il testo nel Terminale, quindi lo copi, quindi lo incolli in un'applicazione che supporta il rich text (ad es. Mail, TextEdit, Word), il colore del testo verrà conservato.

Sembra che in Mail e TextEdit venga incollato anche il colore di sfondo del terminale; in Word, non lo è. Non sono sicuro di come spiegare questa discrepanza.


Quale versione di OS X stai usando? Questo non funziona su 10.7.4.
Wildcard il

1
@Wildcard Funziona per me il 10.11.3. Non ricordo quale versione stavo usando quando ho scritto questo
Max Nanasy il

1
Ho avuto problemi ad usare Copia normale per incollare in Mail - i colori erano persi - ma ha funzionato quando ho usato Modifica -> Copia speciale -> Copia senza colore di sfondo (che preferivo comunque). Ha persino funzionato con il trascinamento delle opzioni per creare una selezione rettangolare. (10.12.6)
Joshua Goldberg,

31

Incredibile come pubblicare una domanda aumenta la creatività.

Posso aprire la finestra di dialogo "Stampa" e salvare in PDF, quindi copiare copie colorate dal PDF.

Anche l'app terminale iTerm2 ha un collegamento CMDOPTCche viene copiato con la formattazione.


1
Questa soluzione è perfetta per mantenere un output colorato quando si creano esempi di terminali in una presentazione Keynote. Grazie!
Beausmith,

1
@Wojtek: Prego, anche se mi è costato un po 'di reputazione quando non hai accettato la mia risposta ... ;-)
martineau

+1 per il collegamento iTerm2! Perché non è nemmeno nel meny ???
Per Lundberg,

1
Quella ... è sicuramente la scoperta più utile da molto tempo !!!
haavee

Se ⌘ + ⌥ + Cda iTerm2, apri Keynote e lo incolli, lo importerà come dati di tabella. Non ho ancora capito come formattare i dati in modo utile, ma c'è del potenziale lì.
Kevin Suttle,

8

puoi provare a incollare l'output colorato negli appunti in questo modo:

% command_which_produces_colors | pbcopy -prefer rtf

che mette alcune cose RTF (possibilmente colorate e formate) nel pannello di controllo di macos. è quindi possibile utilizzare qualsiasi altro che capisca richtext per accedere agli Appunti.

questo ovviamente non è lo stesso di "selezionalo con il mouse" ma forse vale la pena provare.


Non funziona. Il primo problema è che command_which_produces_colors nota che non viene stampato sulla console, quindi salta i colori. Posso forzare comunque alcuni di loro a stampare i colori, quindi il seguente comando trasmette i colori al terminale: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | tee Ma pbcopy non copia colori: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | pbcopy -prefer rtf +1 per i comandi pbcopy / pbpaste. È ottimo per copiare lunghi file negli appunti: "pbcopy <longfile.txt"
Wojtek Kruszewski

1
Quando provo questo, se command_which_produces_colorsproduce codici ANSI, pbcopy -Prefer rtfcopia semplicemente il testo inclusi i codici ANSI (ad esempio, copia [0;34mTextper il blu Text). Sembra che la conversione dei codici ANSI in RTF possa essere richiesta come passaggio intermedio.
Max Nanasy,

8

Sulla base della risposta di @kira , ho pensato a quanto segue:

  1. Scarica il pacchetto sorgente per ansifilter
  2. Seguire le istruzioni in INSTALLA per compilare e installare Ansifilter
  3. Correre <command that produces colors> | ansifilter --rtf | pbcopy -Prefer rtf
    • Potrebbe essere necessario passare argomenti per <command that produces colors>costringerlo a produrre colori anche se il suo output è convogliato, ad es. ls --color=alwaysAnziché solols
  4. È quindi possibile incollare in un'applicazione che supporti il ​​rich text (ad es. Mail, TextEdit, Word)

2

OS X ha diverse scorciatoie da tastiera (tasti di scelta rapida) per copiare lo schermo. Questi salveranno i tuoi screenshot come file jpg sul desktop. Ecco un elenco di loro:

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 

C'è anche un'applicazione "Grab" situata in Applicazioni | Cartella Utilità che fa lo stesso lavoro, inoltre ha alcune funzionalità extra come il ritardo.

Aggiornare

In Snow Leopard (10.6.8) il formato di screenshot predefinito è png non jpg, anche se può essere modificato in uno qualsiasi dei molti altri, incluso pdf, utilizzando l' utilità di impostazione delle preferenze di TinkerTool di terze parti gratuita .


9
un .jpg non è bello come un testo "puro".
Akira,

3
+1 per le scorciatoie meno conosciute per l'area di selezione.
Daniel Beck

@akira: L'OP vuole i colori - qualcosa che non puoi fare in un formato di testo normale a meno che non conti le sequenze di escape ANSI incorporate - e quelli avrebbero bisogno di qualcosa per interpretarli come un emulatore di terminale, ma poi torni a il problema originale.
martineau,

2
@martineau: a seconda delle capacità dei colori degli appunti vengono salvati mediante markup (ad es. richtext o html) quando si copia da un browser o da word o da xyz. e, a seconda dell'applicazione che riceve tali frammenti marcati, possono mostrare i colori E il testo abbastanza bene. il terminale riceve sequenze di escape ascii, corrette, ma solo perché riceve sequenze di escape ascii non significa che deve a) memorizzarle (es. pensare html-terminal) b) può migliorare il testo selezionato in molti modi (puoi mettere contemporaneamente diversi tipi di mime in un buon blocco appunti).
Akira,

3
@akira Un JPG è una scelta davvero scadente di formato immagine per qualcosa come uno screenshot. Ampie aree di colore singolo e linee nitide a singolo pixel ecc. Dappertutto. Fortunatamente, Apple non è così sciocca e il file che salva è un PNG. lbrandy.com/blog/2008/10/my-first-and-last-webcomic
rjmunro

0

Il modo in cui lo faccio è tramite l'eccellente app Textmate 2.

  1. Copia dalla finestra grafica R.
  2. Incolla in un documento di compagno di testo vuoto
  3. Cambia il tipo di documento in R Console o R come preferisci
  4. Usa il tmbundle copia con stile (shift-cmd-c)
  5. Incolla nella finestra di composizione dell'app di posta

Devo dire che sarebbe bello se shift-cmd-c funzionasse direttamente nella finestra della console R.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.