พวกเขาจัดการขับคอมพิวเตอร์ Unix อย่างไรก่อนที่หนูจะคัดลอกและวาง


12

เนื่องจากยูนิกซ์อายุ 40 ปียูนิกซ์เก่ากว่าการประดิษฐ์เมาส์คอมพิวเตอร์ (อันที่จริงเพียง 3 ปีถ้า Unix มาจาก 1969 และเมาส์จาก 1972) ผู้ใช้ใหม่ทำอะไรบน Unix ได้อย่างไรในโลกโดยไม่ต้องคัดลอกและวาง ฉันรู้ว่าพวกเขามักจะมีโปรแกรมแก้ไขข้อความพร้อมคัดลอก / วาง แต่ทุกอย่างที่ฉันทำบน Linux คือสำเนาจากเว็บเบราว์เซอร์และวาง (จาก CLIPBOARD) ลงใน vim หรือ gedit หรือ terminal gnome คุณเหมือนกันใช่มั้ย

ฉันไม่สามารถจินตนาการถึงการโหลดไฟล์ man ลงในกลุ่มคัดลอกและวางโค้ดจากมันลงใน buffer ชั่วคราวจากนั้นให้ทุบตีประมวลผลบัฟเฟอร์นั้น บางทีพวกเขาไม่เคยทิ้ง emacs; นั่นคือคำตอบ?


11
เดาว่าทำไมคำสั่ง UNIX ที่เก่ากว่ามีความยาวเพียงสองตัวอักษร? :-)
Riccardo Murri

2
@RiccardoMurri นั่นเป็นปัญหาที่แตกต่างออกไป: มันใช้เวลาประมาณสิบปีกว่าที่เชลล์ยูนิกซ์จะเสร็จสมบูรณ์
Gilles 'หยุดความชั่วร้าย'

4
โปรดทราบว่า "เว็บ" ไม่ได้ริบหรี่ในสายตาของ Tim Berners-Lee เมื่อเขียนยูนิกซ์ แท้จริงแล้วระบบเครือข่ายคอมพิวเตอร์ที่เรารู้ว่ามันยังอยู่ในวัยเด็ก มันเป็นโลกที่แตกต่าง
dmckee --- ผู้ดูแลอดีตแมว

8
ทุกอย่างที่ฉันทำคือการลอกและวางดูเหมือนว่าจะเป็นนิสัยที่อันตรายมาก)
นายชุนซ์

ฉันแทบจะไม่ใช้ C&P โดยใช้เมาส์เป็นกลุ่ม เพียงใช้คำสั่งข้อความสำหรับสิ่งนั้นเช่นyyสำหรับการคัดลอก (yanking) บรรทัดปัจจุบันและpสำหรับการวาง
Martin Scharrer

คำตอบ:


30

คัดลอกวางเก่ากว่าเมาส์ เอดิเตอร์ unix ตัวแรกedมีtคำสั่งให้คัดลอกบรรทัดจำนวนมากไปยังตำแหน่งอื่น ใน vi มีคำสั่งต่าง ๆ ในการตัดดึงและวางข้อความ ในการคัดลอกข้อความระหว่างไฟล์คุณจะบันทึกข้อความเพื่อคัดลอกในไฟล์ชั่วคราวและนำเข้าไฟล์ชั่วคราวในเอกสารเป้าหมายเช่นกับwและrใน ed ( :wและ:rใน vi) ในการรวมเอาท์พุทของคำสั่งในไฟล์คุณจะต้องเปลี่ยนทิศทางเอาต์พุต ( mycommand >fileหรือmycommand >>file) และนำเข้าไฟล์นั้นไปยังเอกสารของคุณ vi แนะนำให้ใช้!คำสั่งและเพื่อน ๆ เพื่อแทรกเอาต์พุตโดยตรงโดยไม่ต้องใช้ไฟล์ชั่วคราว

การโหลด man page เข้าไปใน Vim หรือ Emacs และการคัดลอกจากหน้าเป็นประจำสำหรับผู้ใช้ Vim / Emacs เว็บเบราว์เซอร์ไม่มีอยู่จนกว่า Unix จะอายุมากพอที่จะดื่ม แต่ใช้หลักการเดียวกันทุกที่: คลิปบอร์ดนั้นเก่ากว่าสภาพแวดล้อมของหน้าต่าง สภาพแวดล้อมของหน้าต่างที่นำมาคือการคัดลอกข้ามแอปพลิเคชันซึ่งสามารถทำได้ด้วยความพยายามเพียงเล็กน้อยผ่านไฟล์


ขอบคุณที่ตอบคำถามของฉันอย่างจริงจัง!
marinara

24

คำตอบง่ายๆคือ "พวกเขาไม่ได้คัดลอกและวาง" ไม่ใช่ในแบบที่คุณเข้าใจ

ระบบ Unix ที่เก่าแก่ที่สุดใช้teletypesหรือเทอร์มินัลโง่สำหรับการใช้แบบโต้ตอบ อุปกรณ์เหล่านี้ไม่มีชุดคำสั่งเทอร์มินัลที่ทรงพลังซึ่งสร้างนวัตกรรมในภายหลัง (!) อย่างที่viเป็นไปได้ (ใช่กาลครั้งหนึ่งนานมาแล้วviเป็นเทคโนโลยีชั้นสูง) ดังนั้นคุณจึงไม่มีวิธีทำเครื่องหมายข้อความที่จะคัดลอกหรือตัดสายตา

ขาดขั้วสมาร์ทระบบ Unix ต้นเสนอแก้ไขบรรทัดedที่เรียกว่า สิ่งที่ใกล้เคียงที่คุณต้องตัดและวางกับedเป็นtคำสั่งที่คุณสามารถระบุสายจากจำนวนที่จะเป็นเสื้อ ransferred (คัดลอก) ไปยังตำแหน่งอื่นในแฟ้ม

การ์ดที่ถูกเจาะและเทปกระดาษยังคงเป็นสื่อ I / O ที่สำคัญในขณะนี้ วิธีหนึ่งในการ "แก้ไข" เทปกระดาษคือการกรองข้อมูลผ่านสิ่งต่าง ๆ เช่นsedโดยตรงจากเครื่องอ่านเทปกระดาษเพราะมันกำลังอ่านข้อมูลวันนี้sedถูกนำมาใช้เพื่อสิ่งอื่น ๆ แต่มันสำคัญมากในช่วงแรก ๆ ยูนิกซ์


2
sedwgetเป็นที่น่ากลัวสำหรับขูดหน้าเว็บที่ดึงมาด้วย
LawrenceC

9

ไม่ไม่ใช่ทุกคนเหมือนกัน ไม่ใช่ทุกคนที่คัดลอกโค้ดจากอินเทอร์เน็ตเพื่อให้ทำงานบนเครื่องของพวกเขา บางคนเขียนโค้ดแล้วบางครั้งก็โพสต์ลงเว็บ

โดยทั่วไปคุณไม่จำเป็นต้องปล่อยโปรแกรมแก้ไขข้อความไว้เพื่ออ่านข้อมูลจากไฟล์อื่น (เช่นหน้าคน) หรือส่งข้อมูลออกไปเพื่อการทำงานหรือไปยังไฟล์

นอกจากนี้ฉันมักจะคัดลอกข้ามแอปพลิเคชันข้ามในเทอร์มินัลโดยไม่ต้องใช้เมาส์แม้แต่วันนี้ GNU-screenและtmuxสนับสนุนการใช้แป้นพิมพ์เพื่อเลือกสิ่งต่าง ๆ จากหน้าจอลงในคลิปบอร์ดและวางลงในเชลล์หรือไปยังโปรแกรมอื่นในหน้าต่างเทอร์มินัลอื่นหรือเก็บไว้ใช้ในภายหลัง


4
+1 "บางคนเขียนรหัสจริง" ขอบคุณ. OP เพิ่งตอกย้ำตัวอย่างของสคริปต์คัดลอก / วางสิ่งต่าง ๆ โดยไม่ทราบว่ามันทำอะไร การเขียนโปรแกรม Cargo-Cult มีคนเรียกมันว่า ไม่ใช่เรื่องยากที่จะทำสิ่งต่าง ๆ 'ย้อนกลับ' มันแค่ต้องการให้คุณรู้สิ่งต่าง ๆ แทนที่จะจำหน่วยความจำที่ขับเคลื่อนด้วย google ผู้คนเคยอ่านสิ่งต่าง ๆ ที่เรียกว่าหนังสือข้อมูลที่จดจำและเข้าใจว่าสิ่งต่าง ๆ ทำงานอย่างไร มากมายได้สูญหายไป (ฉันจะใช้นิ้วชี้ไปที่ "Visual ... " ทำให้โปรแกรมเมอร์ลดลง)
lornix

4

เมื่อฉันเริ่มใช้ SunOS (ก่อนที่จะมีลีนุกซ์อยู่) ถ้าสิ่งที่ซับซ้อนจริงๆเราจะพิมพ์มันลงบนกระดาษบาร์สีเขียวและสีขาวที่น่ารักเอามันกลับไปที่เทอร์มินัลแล้วไปทำงาน นอกจากนี้เรายัง (ab) แอปพลิเคชันที่ใช้ซึ่งช่วยให้เราสามารถเรียกใช้เทอร์มินัลหลายเครื่องจากการเรียกผ่านสายโทรศัพท์เดียว (โมเด็ม 300 baud rocked!)

โอ้และเราสร้างข้อผิดพลาดของตัวละครเดี่ยวมากมายซึ่งใช้เวลาหลายวันกว่าจะตามล่า นั่นคือชีวิต

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