การเลือกข้อความในเครื่องโดยไม่ใช้เมาส์


68

ฉันกำลังจะกด Enter เพื่อเรียกใช้คำสั่งในเทอร์มินัล แต่ก่อนที่จะทำฉันต้องการคัดลอกคำสั่งไปยังคลิปบอร์ดโดยไม่ต้องใช้เมาส์

อย่างไร?

หากคุณอยู่ที่อื่นนอกเหนือจากเทอร์มินัลCtrl+ Homeทำได้

มีวิธีการเลือกข้อความแบบนั้นในเทอร์มินัลหรือไม่?

แก้ไข:

  • สมมติว่าการใช้โปรแกรมอื่นเช่นscreenนั้นไม่ใช่ทางเลือกที่ดี
  • ข้อความจะถูกวางภายนอกเทอร์มินัลดังนั้นCtrl+ yและลำดับที่คล้ายกันจึงไม่สามารถแก้ไขได้เช่นกัน

1
คุณหมายถึง Ctrl-Shift-Home หรือเปล่า
หอยทากวิศวกรรม

Shift-Home คัดลอกไปยังจุดเริ่มต้นของบรรทัด Ctrl-Shift-Home คัดลอกไปยังจุดเริ่มต้นของหน้า
Strapakowsky

Shift-Home และ Ctrl-Shift-Home ทำสิ่งเดียวกันสำหรับฉัน (ข้ามไปยังจุดเริ่มต้นของเทอร์มินัล) และดูเหมือนว่าพวกเขาทั้งคู่ไม่ได้คัดลอกอะไรเลยที่จะถูกวางโดยไม่กด Ctrl-Y หรือ Ctrl-Shift-V (หรือเลือก) แต่มันจะทำงานในโปรแกรมแก้ไขข้อความไม่คัดลอกเพียงแค่เลือก ใช้ OpenSUSE Leap 15 ในกล่องเสมือน การเชื่อมโยงคีย์อื่น ๆ ที่กล่าวถึงในคำตอบนั้นใช้ได้ผล
Brambor

คำตอบ:


16

ผูกทางลัดต่อไปนี้:

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

ตอนนี้หลังจากใช้Crtl+ Pบรรทัดของคุณจะถูกคัดลอกไปยังคลิปบอร์ด คุณสามารถวางในเทอร์มินัลโดยใช้:

xsel

และลงในโปรแกรม X ใด ๆ โดยใช้ปุ่มกลางของเมาส์หรือ+ShiftInsert


ฉันต้องการหลีกเลี่ยงการใช้เมาส์ เป็นไปได้ที่จะวางด้วย ctrl + shift + v แทนปุ่มกลางของเมาส์?
MrGigu

@MrGigu นี่ใช้คลิปบอร์ดอื่น (ดูที่นี่ ) คุณต้องใช้ทางลัดอื่น ๆ ตามค่าเริ่มต้นควรเป็น Shift + Insert (ดูที่นี่ )
Nykakin

โอ้ขอบคุณงาน Shift + insert จะทำ! ไม่ทราบว่าคุณสามารถวางด้วยคำสั่งนี้
MrGigu

คำอธิบายใด ๆ เกี่ยวกับสิ่งที่เกิดขึ้นจริงที่นี่
Alexander

หรือใช้xsel -bเพื่อใช้คลิปบอร์ดมาตรฐานเช่นที่ใช้ Ctrl + V / Ctrl + Shift + V ยังน่าสังเกตว่าวิธีนี้ล้มเหลวในคำสั่งหลายบรรทัด
wjandrea

27

หากคุณใช้เชลล์ตัวใดตัวหนึ่งที่เข้าใจ emacs keys (bash, csh ฯลฯ ) คุณสามารถคัดลอกคำสั่งปัจจุบันได้โดย:

  1. control-A จะนำคุณไปยังจุดเริ่มต้นของบรรทัด

  2. control-K จะฆ่าทั้งสายที่คุณเพิ่งป้อน

  3. control-Y จะดึงข้อความกลับมา

จากนั้นในภายหลังคุณสามารถcontrol-Yดึงข้อความกลับเพื่อแทรกข้อความกลับเป็นอินพุตไปยังตัวแก้ไขบรรทัดคำสั่งเชลล์

ดูman bashและเมื่อมันปรากฏขึ้นให้พิมพ์/emacsตามด้วยคู่n(ถัดไป) เพื่อย้ายคุณไปข้างหน้าไปยังส่วน READLINE


ฉันรู้ว่า แต่ต้องการวางนอกอาคาร แก้ไขเพื่อความกระจ่าง
Strapakowsky

3
control-Uสามารถตัดคำสั่งจากจุดสิ้นสุดได้โดยตรง
vstepaniuk

1
คำสั่งที่สองเปลี่ยนชีวิตของฉัน
กฤษณะ

10

ที่ใกล้เคียงที่สุดที่ฉันนึกได้คือCtrl+ u, Ctrl+ y
นี่จะลบจากเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดแล้ววางจากบัฟเฟอร์การอ่านบรรทัด นี่ไม่ใช่สิ่งเดียวกับคลิปบอร์ด แต่คุณจะสามารถวางไว้ในเปลือกถ้านั่นคือสิ่งที่คุณต้องการ


ฉันรู้ว่า แต่ต้องการวางนอกอาคาร แก้ไขเพื่อความกระจ่าง
Strapakowsky

8

มีโปรแกรมที่เรียกว่าหน้าจอ มันสร้างระบบหน้าต่างข้อความที่ช่วยให้คุณสลับระหว่างหลายอินสแตนซ์ แต่มันยังช่วยให้คุณสามารถเลือกข้อความ

sudo apt-get install screen

คำสั่งนั้นติดตั้ง

จากนั้นพิมพ์ screen

คุณใช้ ctr-a เพื่อเริ่มลำดับคำสั่ง จากนั้นกด esc และเคอร์เซอร์ของคุณจะเคลื่อนที่ไปในทิศทางใดก็ได้ กด Enter เพื่อเริ่มการเลือกข้อความเลื่อนไปยังจุดสิ้นสุดกด Enter อีกครั้ง ที่จะคัดลอกไปยังบัฟเฟอร์

จากนั้น ctr-a และจากนั้น} จะวาง

รายละเอียดเพิ่มเติมเกี่ยวกับคำสั่งอื่น ๆ ได้ที่นี่http://www.kuro5hin.org/story/2004/3/9/16838/14935


คำแนะนำที่ดี แต่ฉันไม่ชอบscreenด้วยเหตุผลที่แตกต่างกันดังนั้นให้ถือว่าหน้าจอ Ubuntu เป็นประจำ แก้ไขคำถามของฉันเพื่อความกระจ่าง
Strapakowsky

1
ควรทำเครื่องหมายเป็นคำตอบที่ถูกต้องของ IMHO
eddiewould

2

ถ้าคุณอยู่ในกลุ่มคุณมองเห็นสามารถเลือกหนึ่งหรือมากกว่าหนึ่งเส้นที่มี Shift+ vแล้วใช้ที่มีผลผูกพันเช่นyy, ท่อที่เลือกไปยังxclip

เพิ่มการเชื่อมโยงไปยัง vimrc ของคุณ:

vnoremap yy :w !xclip -selection clipboard<CR><CR>

ต้องมีการติดตั้งxclipซึ่งอยู่ในพื้นที่เก็บข้อมูลความถนัด Debian / Ubuntu

xclipเก็บ stdin ด้วย-selection clipboardตัวเลือกนอกจากนี้ยังเพิ่ม stdin ไปยังคลิปบอร์ดของระบบ

ดังนั้นคุณสามารถใช้xclipวิธีทั่วไปจากเทอร์มินัลเช่นคัดลอกไฟล์ทั้งหมดไปยังคลิปบอร์ดของระบบ:

cat myfile | xclip -selection clipboard

หากคุณเลือกที่จะสร้างนามแฝงได้เช่น:

alias cb="xclip -selection clipboard" 

1

ปลวกของ Daniel Micay ใช้ "โหมดการเลือก" การกด Ctrl + Shift + Space จะเป็นการเปิดใช้งาน มันมีการผูกคีย์เหมือนกัน v หรือ V จะเลือกโหมดภาพของà la vim, y จะงัด, Esc จะออกจากโหมดการเลือก

คัดลอกมาจากhttps://stackoverflow.com/questions/1536757/selecting-text-in-terminal-without-using-the-mouse/29386401

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