Salin keluaran berwarna dari terminal Mac OS X

37

Saya melihat output berwarna bagus di terminal saya.

Terminal memiliki perintah "Ekspor Teks Sebagai" tetapi menyimpan file teks biasa tanpa warna. Sama dengan copy & paste.

Apakah Anda tahu cara untuk menghemat keluaran terminal termasuk warna?

Wojtek Kruszewski
sumber
Jika ini penting bagi Anda, beri tahu Apple melalui apple.com/feedback/macosx.html (area umpan balik Aplikasi / Utilitas) atau developer.apple.com/bugreporter (harus mendaftar untuk akun pengembang gratis).
Chris Page
Terminal sekarang memiliki daftar opsi untuk perintah salin Cmd-c dasar Edit -> Copy Special, di mana Anda dapat beralih antara opsi Teks Biasa dan teks kaya.
Joshua Goldberg

Jawaban:

12

Tampaknya jika Anda memilih teks di Terminal, lalu menyalinnya, lalu menempelkannya ke aplikasi yang mendukung teks kaya (mis. Mail, TextEdit, Word), maka warna teks akan dipertahankan.

Tampaknya di Mail dan TextEdit, warna latar belakang terminal juga disisipkan; di Word, tidak. Saya tidak yakin bagaimana menjelaskan perbedaan ini.

Max Nanasy
sumber
Versi OS X apa yang Anda gunakan? Ini tidak berfungsi pada 10.7.4.
Wildcard
1
@Wildcard Ini berfungsi untuk saya pada 10.11.3. Saya tidak ingat versi mana yang saya gunakan ketika saya menulis ini
Max Nanasy
1
Saya mengalami masalah menggunakan Copy biasa untuk menempelkan ke Mail - warnanya hilang - tetapi berhasil ketika saya menggunakan Edit -> Copy Special -> Copy Tanpa Warna Latar Belakang (yang saya lebih suka sih). Bahkan bekerja dengan opsi-seret untuk membuat seleksi persegi panjang. (10.12.6)
Joshua Goldberg
31

Menakjubkan bagaimana memposting pertanyaan meningkatkan kreativitas seseorang.

Saya dapat membuka dialog "Cetak" dan menyimpan ke PDF dan kemudian menyalin keluaran berwarna dari PDF.

Juga aplikasi terminal iTerm2 memiliki jalan pintas CMDOPTCyang menyalin dengan pemformatan.

Wojtek Kruszewski
sumber
1
Solusi ini sangat cocok untuk menjaga keluaran berwarna saat membuat contoh terminal dalam presentasi Keynote. Terima kasih!
beausmith
1
@Wojtek: Sama-sama, meskipun saya harus membayar sedikit reputasi ketika Anda tidak menerima jawaban saya ... ;-)
martineau
+1 untuk pintasan iTerm2! Mengapa itu bahkan tidak di meny ???
Per Lundberg
1
Itu ... pasti merupakan penemuan paling berguna sejak lama !!!
haavee
Jika Anda ⌘ + ⌥ + Cdari iTerm2, buka Keynote, dan rekatkan, itu akan mengimpornya sebagai data tabel. Saya belum menemukan cara memformat data dengan cara yang bermanfaat, tetapi ada potensi di sana.
Kevin Suttle
8

Anda dapat mencoba menempelkan output berwarna ke clipboard seperti ini:

% command_which_produces_colors | pbcopy -prefer rtf

yang menempatkan beberapa barang rtf (mungkin berwarna dan diformat) ke papan tulis macos. Anda kemudian dapat menggunakan yang lain yang mengerti richtext untuk mengakses clipboard.

ini jelas tidak sama dengan "pilih dengan mouse" tetapi mungkin patut dicoba.

akira
sumber
Tidak cocok untuk bekerja. Masalah pertama adalah command_which_produces_colors pemberitahuan itu tidak mencetak ke konsol sehingga melewatkan warna. Saya tetap bisa memaksa beberapa dari mereka untuk mencetak warna, jadi berikut ini perintah mengeluarkan warna ke terminal: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | tee Tapi salinan pbcopy tidak ada warna: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | pbcopy -prefer rtf +1 untuk perintah pbcopy / pbpaste. Ini bagus untuk menyalin file panjang ke clipboard: "pbcopy <longfile.txt"
Wojtek Kruszewski
1
Ketika saya mencoba ini, jika command_which_produces_colorsmenghasilkan kode ANSI, maka pbcopy -Prefer rtfcukup salin teks termasuk kode ANSI (misalnya salinan [0;34mTextuntuk biru Text). Sepertinya mengonversi kode ANSI ke RTF mungkin diperlukan sebagai langkah perantara.
Max Nanasy
8

Berdasarkan jawaban @ akira , saya datang dengan yang berikut:

  1. Unduh paket sumber untuk ansifilter
  2. Ikuti instruksi di bawah INSTALL untuk membangun dan menginstal ansifilter
  3. Menjalankan <command that produces colors> | ansifilter --rtf | pbcopy -Prefer rtf
    • Anda mungkin perlu memberikan argumen untuk <command that produces colors>memaksanya menghasilkan warna meskipun outputnya disalurkan, misalnya ls --color=alwaysalih-alih adills
  4. Anda kemudian dapat menempelkan ke aplikasi yang mendukung teks kaya (mis. Mail, TextEdit, Word)
Max Nanasy
sumber
2

OS X memiliki beberapa pintasan keyboard (tombol pintas) untuk menyalin layar. Ini akan menyimpan tangkapan layar Anda sebagai file jpg di desktop. Berikut daftar mereka:

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 

Ada juga aplikasi "Grab" yang terletak di Applications | Folder utilitas yang melakukan pekerjaan yang sama, plus memiliki beberapa fitur tambahan seperti penundaan.

Memperbarui

Di Snow Leopard (10.6.8) format tangkapan layar default adalah png bukan jpg, meskipun itu dapat diubah ke salah satu dari banyak lainnya - termasuk pdf - menggunakan utilitas pengaturan preferensi TinkerTool pihak ke-3 gratis .

martineau
sumber
9
a .jpg agak tidak sebagus teks "murni".
akira
3
+1 untuk pintasan yang kurang dikenal untuk area pemilihan.
Daniel Beck
@ Akira: OP menginginkan warna - sesuatu yang tidak dapat Anda lakukan dalam format teks biasa kecuali jika Anda menghitung urutan pelarian ANSI yang tertanam - dan itu akan membutuhkan sesuatu untuk menafsirkannya seperti emulator terminal, tetapi kemudian Anda kembali ke masalah aslinya.
martineau
2
@martineau: tergantung pada kemampuan warna clipboard disimpan oleh markup (misalnya, richtext atau html) ketika Anda menyalin dari browser atau dari kata atau dari xyz. dan, tergantung pada aplikasi yang menerima potongan yang ditandai tersebut, mereka dapat menampilkan warna DAN teksnya cukup ok. terminal menerima urutan melarikan diri ascii, benar, tetapi hanya karena menerima urutan melarikan diri ascii tidak berarti harus a) menyimpannya (misalnya, pikirkan html-terminal) b) ia dapat meningkatkan teks yang dipilih dengan banyak cara (Anda dapat letakkan berbagai jenis pantomim di clipboard yang bagus sekaligus).
akira
3
@akira A JPG adalah pilihan format gambar yang sangat buruk untuk tangkapan layar. Area besar warna tunggal dan garis piksel tunggal tajam dll. Di atasnya. Untungnya, Apple tidak sebodoh itu dan file yang disimpannya adalah PNG. lbrandy.com/blog/2008/10/my-first-and-Last-webcomic
rjmunro
0

Cara saya melakukan ini adalah melalui aplikasi Textmate 2 yang sangat baik.

  1. Salin dari jendela grafis R
  2. Rekatkan ke dokumen textmate kosong
  3. Ubah jenis dokumen menjadi R Konsol atau R sesuai keinginan
  4. Gunakan tmbundle copy-dengan-gaya (shift-cmd-c)
  5. Rekatkan ke jendela tulis aplikasi app

Saya harus mengatakan itu akan baik jika shift-cmd-c bekerja langsung di jendela konsol R.

Michael Neale
sumber