เมื่อฉันคัดลอกบางสิ่งไปยังคลิปบอร์ดและกดCtrl+ Vใน Bash ไม่มีอะไรเกิดขึ้น อย่างไรก็ตามการคลิกขวาและเลือกวางจะทำงาน
ทำไม? มีปัญหาที่สมเหตุสมผล (ฉันแน่ใจว่ามี) อยู่เบื้องหลังพฤติกรรมนี้ใน Linux หรือไม่?
Ctrl-Shift-V
ส่วนตัว
เมื่อฉันคัดลอกบางสิ่งไปยังคลิปบอร์ดและกดCtrl+ Vใน Bash ไม่มีอะไรเกิดขึ้น อย่างไรก็ตามการคลิกขวาและเลือกวางจะทำงาน
ทำไม? มีปัญหาที่สมเหตุสมผล (ฉันแน่ใจว่ามี) อยู่เบื้องหลังพฤติกรรมนี้ใน Linux หรือไม่?
Ctrl-Shift-V
ส่วนตัว
คำตอบ:
ในวันที่มีเครื่องเทอร์มินัลคลิปบอร์ดทั้งเซสชันไม่มีอยู่เพียงไม่กี่โปรแกรมเท่านั้นที่สนับสนุนการคัดลอก / วางภายในซึ่งมักจะอยู่ภายใต้ชื่อ "บัฟเฟอร์" หรือ "แหวนฆ่า" - และใช้การกดแป้นที่หลากหลาย ตัวอย่างเช่นเปลือกทุบตีใช้CtrlKหรือCtrlUเพื่อ "ฆ่า" (ตัด) CtrlYเพื่อ "งัด" (วาง); นี้มาจากemacsแก้ไข
CtrlCเกือบทุกที่ใน Unix คือกุญแจ "ขัดจังหวะ"ซึ่งใช้ในการยกเลิกโปรแกรมหรือการดำเนินการปัจจุบัน CtrlVที่สำคัญมักจะหมายถึง "แทรกคำต่อคำ" - นั่นคือใส่ตัวอักษรต่อไปนี้อย่างแท้จริงโดยไม่ต้องดำเนินการกระทำใด ๆ ที่เกี่ยวข้อง ยกตัวอย่างเช่นปกติEscสวิทช์ที่จะสั่งในโหมดviแก้ไข แต่CtrlV, EscจะแทรกESC
ตัวอักษรลงในเอกสาร
การใช้CtrlCการคัดลอกและCtrlVวางจากคลิปบอร์ดของเซสชันนั้นได้รับการแนะนำโดย Mac OS ในปี 1983 และ Microsoft Windows 3.x ในปี 1990 (รุ่นก่อนหน้าของ Windows (1.x และ 2.x) เช่นเดียวกับ IBM OS / 2 สนับสนุนคีย์IBM CUA เท่านั้นCtrlInsเพื่อคัดลอกและShiftInsวางทางลัดเหล่านี้ยังคงรองรับใน Windows ทุกรุ่น)
เมื่อ GUIs ที่รองรับคลิปบอร์ดรองรับ Unix ในที่สุดCtrlปุ่มกดนั้นถูกใช้งานโดยโปรแกรมเทอร์มินัลหลายเครื่อง นอกจากนี้อินเทอร์เฟซกราฟิก X มีกลไกที่แตกต่างกันบ้าง: "การเลือก" และ "การตัดบัฟเฟอร์" แม้ตอนนี้คุณสามารถเลือกข้อความในโปรแกรมเดียวและแทรกโดยใช้ปุ่มกลางของเมาส์โดยไม่ต้องมีการคัดลอกอย่างชัดเจน
กล่าวโดยย่อเมื่อถึงเวลาที่เทอร์มินัล Xterm และ GNOME เขียน (ฉันเดาว่าคุณใช้อันหลัง) CtrlV มีความหมายแตกต่างไปจากเดิมอย่างสิ้นเชิงมาหลายปีแล้วและไม่สามารถเปลี่ยนแปลงได้ นอกจากนี้วิธีการอื่นในการคัดลอกข้อความ - "การเลือก" - มีอยู่แล้วใน X11 ดังนั้นการคัดลอก / วางที่ชัดเจนจึงอาจถือว่าไม่สำคัญเท่าที่ควรจะเป็นใน Windows ซึ่งหมายความว่าแป้นพิมพ์ลัดที่แตกต่างกันจะต้องมีการเลือก - ตัวอย่างเช่นโปรแกรมที่ทันสมัยที่สุดขั้วเช่น GNOME สถานีการใช้งานและCtrlShiftC CtrlShiftV(หากคุณใช้ Xterm คุณสามารถเพิ่มทางลัดเดียวกันได้ด้วยตนเองโดยใช้Xermobile XTerm * vt100 * Xresource Rxvt ไม่มีตัวเลือกดังกล่าว)
(ชุดเครื่องมือ X11 ส่วนใหญ่ยังรองรับคีย์ "คัดลอก" และ "วาง" ของ CUA ซึ่งไม่ขัดแย้งกับโปรแกรมเทอร์มินัลอย่างไรก็ตามการติดตั้งใช้งานค่อนข้างไม่สอดคล้องกัน - CtrlInsคัดลอกไปยัง "คลิปบอร์ด" ในโปรแกรมส่วนใหญ่ (GTK, Qt4 แต่ไม่สนใจ Xaw) อย่างไรก็ตามShiftInsวางจาก "การเลือกหลัก" ในโปรแกรม GTK และ Qt4 ส่วนใหญ่ แต่มาจาก "คลิปบอร์ด" ใน Firefox และจากการตัดบัฟเฟอร์ที่ล้าสมัยใน Xaw ที่ล้าสมัยแล้ว)
ทุกอย่างที่กล่าวว่าเทอร์มินัลหรือคอนโซลบางตัว (โดยเฉพาะคอนโซล Windows 10) จะสนับสนุนคีย์เหล่านี้ เนื่องจากคอนโซล Windows มีโหมด "mark / select" แยกต่างหากCtrlCตอนนี้จึงมีสองความหมายตามบริบท - ในโหมดปกติจะส่งการขัดจังหวะในโหมดเลือกจะคัดลอกไปยังคลิปบอร์ด (เหมือนที่Enterเคยใช้)
ในขณะเดียวกันเครื่องมือบรรทัดคำสั่งของ Windows ไม่เคยใช้ CtrlVกับสิ่งใดเลยดังนั้นจึงต้องผูกติดกับ "วาง" โดยไม่รบกวนอะไรมาก ทำเช่นเดียวกันกับเทอร์มินัลที่เหมือน Unix แต่จะมีปัญหามากกว่า
<C-v>
ไปi
ในรุ่นที่ 3 แต่ผมไม่สามารถค่อนข้างวางนิ้วของฉันเกี่ยวกับว่าทำไม
ใช้CtrlShiftVสำหรับการวาง
Ctrl กับตัวอักษรอื่น ๆ มักจะใช้เปลือกสำหรับฟังก์ชั่นพิเศษ
bash
ตัวของมันเอง หากคุณเคยอยู่นอกสภาพแวดล้อม GUI หรือหากคุณใช้โปรแกรมจำลองคำศัพท์อื่นสิ่งนี้อาจไม่ทำงาน อย่าคิดว่าคำสั่งนี้พกพาได้
นี่คือการตั้งค่าการคัดลอกวัตถุประสงค์ทั่วไปของคุณพร้อมเทอร์มินัลยอดนิยม
gnome-terminal (เป็นที่นิยมมากที่สุดบน Linux)
คัดลอก : CtrlShiftC
วาง : CtrlShiftV
หมายเหตุ : เลือกเพื่อคัดลอกและmiddle-clickวางยังใช้งานได้ แต่ใช้คลิปบอร์ดสำรอง
ฉาบ (ขั้วที่นิยมมากที่สุดใน Windows)
คัดลอก : (เลือกด้วยเมาส์ไม่มีปฏิสัมพันธ์แป้นพิมพ์)
วาง : Right-click (หรือน่าเชื่อถือมากขึ้น: shiftRight-click)
หมายเหตุ : ปพลิเคชันที่ใช้ใส่เมาส์ (ชอบvim
และlinks
) สามารถขโมยRight-click- shiftRight-clickมักจะทำงานในการตรวจสอบใด ๆ
การ
คัดลอกเทอร์มินัล OSX : AppleC
วาง : AppleV
หมายเหตุ:แอปที่ใช้การควบคุมเมาส์ (เช่นvim
และlinks
) อาจแทนที่สิ่งที่มีความหมายในการเลือกข้อความซึ่งในกรณีนี้การคัดลอกจะไม่ทำงานตามที่คุณคาดหวัง ในกรณีเหล่านั้นให้กดค้างไว้Controlในขณะที่คุณลากเมาส์เพื่อเลือก การมีส่วนร่วมของเมาส์กับแอปถูกปิดการใช้งานตามค่าเริ่มต้นในการตั้งค่าเทอร์มินัลของคุณดังนั้นคนส่วนใหญ่จะไม่รู้แม้แต่เรื่องนี้
cmd.exe
เป็นที่นิยมมากกว่า PuTTY บน Windows ใช่ไหม :-)
cmd.exe
ไม่ใช่เทอร์มินัล SSH นั่นเป็นเรื่องจริงมาก
cmd.exe
(และเป็นวิธีเดียวที่มีถ้าคุณไม่ต้องการที่จะเปิดเมนู> แก้ไข> วาง) ในโหมดแก้ไขอย่างรวดเร็ว ไม่มีช็อตคัตในพรอมต์คำสั่ง pre-win10
เป็นประเพณีที่ฝังรากลึกที่Ctrlสำคัญพร้อมกับตัวอักษรสร้างตัวควบคุม ASCII ที่พบโดยการลบ 64 จากค่า ASCII ของตัวอักษรตัวพิมพ์ใหญ่ การคำนวณแผนที่นี้Ctrl- Aถึง 1 และอื่น ๆ ตัวอย่างเช่นCtrl- IคือTabและCtrl- Jเป็น linefeed
ไม่มีประเพณีที่คล้ายกันคือ- Ctrl - - ไม่คาดว่าจะสร้างตัวละครเฉพาะใด ๆShiftCtrlShiftV
เทอร์มินัลอีมูเลเตอร์ต้องสนับสนุนประเพณีโดยผ่านการCtrlประชุมอย่างโปร่งใสโดยให้ปรากฏเป็นอินพุตอักขระสำหรับโปรแกรมที่ดำเนินการผ่านหน้าต่างเทอร์มินัลนั้น โปรแกรมที่ใช้เทอร์มินัลแมปปุ่มควบคุมเข้ากับคำสั่ง ตัวอย่างเช่น Bash ใช้Ctrl- Vเป็นคำสั่งซึ่งหมายถึง "ใช้อักขระตัวถัดไป" สิ่งนี้ช่วยให้คุณสามารถฝังอักขระควบคุมในบรรทัดคำสั่ง หากเทอร์มินัลขโมยปุ่มควบคุมเพื่อการใช้งานเองคำสั่งดังกล่าวจะไม่สามารถใช้งานได้ ดังนั้นการสกัดกั้นCtrl- Vสำหรับเมตาฟังก์ชั่นหมดคำถาม (อย่างน้อยในการกำหนดค่าเริ่มต้น)
อย่างไรก็ตามการเลียนแบบขั้วมีอิสระในการสกัดกั้นCtrl- Shift- Vซึ่งไม่ได้คาดว่าจะสร้างตัวละคร Ctrl- Shift- Vไม่ใช่มาตรฐาน มันเป็นสิ่งที่ Gnome Terminal (ซึ่งอาจอยู่ในอาคารอื่น ๆ )
บนเดสก์ท็อป Unix ที่ใช้ X การประชุมคือไม่จำเป็นต้องใช้คำสั่งเพื่อคัดลอก คุณเพียงแค่เลือกข้อความ และปุ่มกลางวางข้อความนั้นไว้ที่อื่น คุณจะพบว่ามันใช้งานได้ใน Xterm, Gnome Terminal และ Firefox
Ctrl- Vเป็นการประชุม Microsoft Windows ซึ่งเป็นการเลียนแบบApple- Vจาก Macintosh
<kbd>
แท็กเหล่านี้ในโพสต์ในอนาคต
Ctrl-A
1
เป็น ฉันจะลองสิ่งนี้ได้อย่างไร สถานี Gnome Ctrl-A
ฉันไม่ทำอะไรเลยเมื่อกด
สำหรับฉันวิธีที่ง่ายที่สุดในการคัดลอกแปะในเชลล์คือ:
เลือกรหัสที่คุณต้องการจากนั้นคลิกผ่าน mouse-middle-key
xdotool click 2
เพื่อจำลองการคลิกปุ่มที่สามสำหรับคุณ จากนั้นในสิ่งที่สภาพแวดล้อมของคุณอยู่ในจัดการหน้าต่าง / เดสก์ทอปคุณสามารถผูกสคริปต์นี้คีย์ - พูดmod
i
(แทรก) หรือสิ่งที่ keybindings คุณอาจมีอยู่ (หรือสิ่งที่ mod อาจหมายถึง - ซึ่งจริงๆขึ้นอยู่ที่คุณผูกนี้)
เราสามารถใช้ปุ่มใส่แป้นพิมพ์เพื่อคัดลอกและวาง (ในแป้นพิมพ์เก่าอาจหายไป)
คัดลอก : CtrlInsert
วาง :CtrlShiftInsert
คุณสามารถใช้เมาส์ปุ่มกลางหากคุณรู้สึกขี้เกียจและเลือกคำสั่งจากเอกสารข้อความสคริปต์หรือเว็บหรือฟอรัม เมื่อคุณเลือกคำสั่งที่ต้องการแล้วเพียงเลื่อนไปที่เทอร์มินัลแล้วคลิกปุ่มกลางบนเมาส์ ฉันใช้วิธีนี้เนื่องจากฉันใช้ลูกสุนัข linux ซึ่งดูเหมือนจะไม่สนับสนุนพฤติกรรมปกติของการคลิกขวาและวาง มันทำในหน้าต่างตัวจัดการไฟล์ไม่ได้อยู่ในหน้าต่างเทอร์มินัล ไม่รู้ว่าทำไม แต่ฉันดีใจที่เงียบฉันพบเกี่ยวกับวิธีปุ่มกลางมีประโยชน์มาก! ;-)
Shift
-Insert
ยังใช้งานได้