คัดลอกเอาต์พุตสีจากเทอร์มินัล Mac OS X


37

ฉันเห็นผลลัพธ์ที่มีสีสันเป็นอย่างมากในเครื่องของฉัน

เทอร์มินัลมีคำสั่ง "ส่งออกข้อความเป็น" แต่จะบันทึกไฟล์ข้อความธรรมดาโดยไม่มีสี เหมือนกันกับการคัดลอกและวาง

คุณรู้วิธีการบันทึกผลขั้วรวมทั้งสี?


หากนี่เป็นสิ่งสำคัญสำหรับคุณโปรดแจ้งให้ Apple ทราบผ่านapple.com/feedback/macosx.html (พื้นที่ข้อเสนอแนะการใช้งาน / ยูทิลิตี้) หรือdeveloper.apple.com/bugreporter (ต้องลงทะเบียนบัญชีนักพัฒนาฟรี)
Chris หน้า

เทอร์มินัลมีรายการของตัวเลือกสำหรับคำสั่งคัดลอก Cmd-c พื้นฐานภายใต้Edit -> Copy Specialซึ่งคุณสามารถสลับระหว่างตัวเลือกข้อความธรรมดาและตัวเลือกข้อความแบบหลากหลาย
Joshua Goldberg

คำตอบ:


12

ดูเหมือนว่าหากคุณเลือกข้อความในเทอร์มินัลให้คัดลอกแล้ววางลงในแอปพลิเคชันที่รองรับข้อความที่มีรูปแบบ (เช่น Mail, TextEdit, Word) จากนั้นสีของข้อความจะถูกเก็บไว้

ปรากฏว่าใน Mail และ TextEdit สีพื้นหลังของเทอร์มินัลจะถูกวางเช่นกัน ใน Word ไม่ใช่ ฉันไม่แน่ใจว่าจะอธิบายความแตกต่างนี้ได้อย่างไร


คุณใช้ OS X เวอร์ชันใดอยู่ สิ่งนี้ใช้ไม่ได้กับ 10.7.4
Wildcard

1
@ Wildcard ใช้งานได้กับฉันในวันที่ 10.11.3 ฉันจำไม่ได้ว่าฉันใช้รุ่น
ไหน

1
ฉันมีปัญหาในการใช้ Copy ปกติเพื่อวางใน Mail - สีหายไป - แต่มันทำงานเมื่อฉันใช้แก้ไข -> คัดลอกพิเศษ -> คัดลอกโดยไม่มีสีพื้นหลัง (ซึ่งฉันต้องการอยู่แล้ว) มันทำงานร่วมกับตัวเลือกลากเพื่อสร้างการเลือกรูปสี่เหลี่ยมผืนผ้า (10.12.6)
Joshua Goldberg

31

น่าอัศจรรย์ว่าการโพสต์คำถามช่วยเพิ่มความคิดสร้างสรรค์ได้อย่างไร

ฉันสามารถเปิดกล่องโต้ตอบ "พิมพ์" และบันทึกเป็น PDF จากนั้นคัดลอกเอาต์พุตสีจาก PDF

นอกจากนี้แอปพลิเคชั่น iTerm2 ยังมีทางลัดCMDOPTCที่คัดลอกมาพร้อมการจัดรูปแบบ


1
โซลูชันนี้สมบูรณ์แบบสำหรับการรักษาเอาต์พุตสีเมื่อสร้างตัวอย่างเทอร์มินัลในงานนำเสนอ Keynote ขอบคุณ!
beausmith

1
@ Wojtek: ยินดีต้อนรับแม้ว่าจะทำให้ฉันเสียชื่อเสียงเล็กน้อยเมื่อคุณยอมรับคำตอบของฉัน ... ;-)
martineau

+1 สำหรับทางลัด iTerm2! ทำไมถึงไม่ได้อยู่ใน meny ???
ต่อ Lundberg

1
นั่น ... เป็นการค้นพบที่มีประโยชน์ที่สุดมาช้านาน !!!
haavee

หากคุณ⌘ + ⌥ + Cจาก iTerm2 เปิด Keynote และวางมันจะนำเข้าเป็นข้อมูลตาราง ฉันไม่ได้คิดวิธีจัดรูปแบบข้อมูลในวิธีที่มีประโยชน์ แต่มีศักยภาพอยู่ที่นั่น
Kevin Suttle

8

คุณสามารถลองวางเอาท์พุตสีลงในคลิปบอร์ดดังนี้:

% command_which_produces_colors | pbcopy -prefer rtf

ซึ่งจะนำบางสิ่ง rtf (อาจมีสีและมีรูปแบบ) มาไว้ในกระดาษแข็งของ macos จากนั้นคุณสามารถใช้รายการอื่นที่เข้าใจ richtext เพื่อเข้าถึงคลิปบอร์ด

เห็นได้ชัดว่าไม่เหมือนกับ "เลือกด้วยเมาส์" แต่อาจคุ้มค่ากับการยิง


ไม่ได้ทำงาน ปัญหาแรกคือ command_which_produces_colors สังเกตเห็นว่าไม่ได้พิมพ์ไปที่คอนโซลดังนั้นมันจึงข้ามสี ฉันสามารถบังคับให้บางส่วนของพวกเขาพิมพ์สีได้ดังนั้นคำสั่งต่อไปนี้จะแสดงสีไปยังเทอร์มินัล: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | tee แต่ pbcopy คัดลอกไม่มีสี: CLICOLOR = 1 CLICOLOR_FORCE = 1 ls -alh | pbcopy -prefer rtf +1 สำหรับคำสั่ง pbcopy / pbpaste มันยอดเยี่ยมสำหรับการคัดลอกไฟล์แบบยาวไปยังคลิปบอร์ด: "pbcopy <longfile.txt"
Wojtek Kruszewski

1
เมื่อฉันลองทำสิ่งนี้ถ้าcommand_which_produces_colorsสร้างรหัส ANSI ให้pbcopy -Prefer rtfคัดลอกข้อความรวมถึงรหัส ANSI (เช่นคัดลอก[0;34mTextเป็นสีน้ำเงินText) ดูเหมือนว่าการแปลงรหัส ANSI ไปเป็น RTF นั้นอาจเป็นขั้นตอนกลาง
Max Nanasy

8

จากคำตอบของ @ akira ฉันพบสิ่งต่อไปนี้:

  1. ดาวน์โหลดแพ็กเกจซอร์สสำหรับansifilter
  2. ทำตามคำแนะนำภายใต้การติดตั้งเพื่อสร้างและติดตั้ง ansifilter
  3. วิ่ง <command that produces colors> | ansifilter --rtf | pbcopy -Prefer rtf
    • คุณอาจต้องผ่านการโต้แย้งเพื่อ<command that produces colors>บังคับให้สร้างสีแม้ว่าจะส่งออกไปป์ไลน์แล้วls --color=alwaysแทนที่จะเป็นเพียงแค่ls
  4. จากนั้นคุณสามารถวางลงในแอปพลิเคชันที่รองรับ rich text (เช่น Mail, TextEdit, Word)

2

OS X มีแป้นพิมพ์ลัดต่าง ๆ (ปุ่มลัด) สำหรับการคัดลอกหน้าจอ สิ่งเหล่านี้จะบันทึกภาพหน้าจอของคุณเป็นไฟล์ jpg บนเดสก์ท็อป นี่คือรายการของพวกเขา:

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 

นอกจากนี้ยังมีแอปพลิเคชั่น "Grab" ที่อยู่ใน Applications | โฟลเดอร์ยูทิลิตี้ที่ทำงานเดียวกันและมีคุณสมบัติพิเศษบางอย่างเช่นความล่าช้า

ปรับปรุง

ใน Snow Leopard (10.6.8) รูปแบบภาพหน้าจอเริ่มต้นคือ png ไม่ใช่ jpg แม้ว่าจะสามารถเปลี่ยนเป็นรูปแบบใดรูปแบบหนึ่งได้รวมถึง pdf โดยใช้ยูทิลิตีการตั้งค่าTinkerToolของบุคคลที่สามฟรี


9
a .jpg นั้นไม่ดีเท่าข้อความ "บริสุทธิ์"
akira

3
+1 สำหรับทางลัดที่รู้จักน้อยกว่าสำหรับพื้นที่การเลือก
Daniel Beck

@akira: OP ต้องการสี - สิ่งที่คุณไม่สามารถทำได้ในรูปแบบข้อความล้วนยกเว้นคุณนับจำนวนANSI escape sequences ที่ฝังอยู่- และสิ่งเหล่านั้นต้องการบางสิ่งในการแปลความหมายเช่น terminal emulator แต่คุณกลับมาแล้ว ปัญหาเดิม
martineau

2
@martineau: ขึ้นอยู่กับความสามารถของสีคลิปบอร์ดจะถูกบันทึกโดยมาร์กอัป (เช่น richtext หรือ html) เมื่อคุณคัดลอกจากเบราว์เซอร์หรือจากคำหรือจาก xyz และขึ้นอยู่กับแอปพลิเคชันที่ได้รับตัวอย่างที่ทำเครื่องหมายไว้พวกเขาสามารถแสดงสีและข้อความได้ เทอร์มินัลได้รับ ascii escape, ถูกต้อง, แต่เพียงเพราะว่ามันได้รับ ascii escape ไม่ได้หมายความว่ามันต้อง a) เก็บมัน (เช่น, คิดว่า html-terminal) b) มันสามารถปรับปรุงข้อความที่เลือกได้หลายวิธี (คุณสามารถ ใส่ mime-types ที่ต่างกันในคลิปบอร์ดที่ดีในครั้งเดียว)
akira

3
@akira A JPG เป็นตัวเลือกรูปแบบภาพที่แย่มากสำหรับภาพหน้าจอ พื้นที่ขนาดใหญ่ของสีเดียวและเส้นพิกเซลเดี่ยวที่คมชัด ฯลฯ ทั่วทุกมุม โชคดีที่ Apple ไม่ได้โง่ขนาดนั้นและไฟล์ที่บันทึกไว้เป็น PNG lbrandy.com/blog/2008/10/my-first-and-last-webcomic
rjmunro

0

วิธีที่ฉันทำคือผ่านแอพ Textmate 2 ที่ยอดเยี่ยม

  1. คัดลอกจากหน้าต่างกราฟิก R
  2. วางลงในเอกสารข้อความเปล่า
  3. เปลี่ยนประเภทเอกสารเป็น R Console หรือ R ตามต้องการ
  4. ใช้ tmbundle คัดลอกพร้อมสไตล์ (shift-cmd-c)
  5. วางในหน้าต่างเขียนแอปอีเมล

ฉันต้องบอกว่ามันจะดีถ้า shift-cmd-c ทำงานโดยตรงในหน้าต่างคอนโซล R

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.