gtk-key-theme Emacs: การกดแป้นใดที่เหมาะกับการเลือกทั้งหมด


22

ฉันชอบการกดแป้น emacs แต่การเลือกทั้งหมดดูเหมือนจะไม่ได้เป็นส่วนหนึ่งของคำศัพท์ emacs หรืออย่างน้อย gtk-key-theme สำหรับ emacs Mw ใช้การไม่ได้เพื่อคัดลอกภูมิภาคที่เลือก

  1. การกดแป้นสำหรับเลือกทั้งหมดคืออะไร
  2. แผนที่ผูกที่สำคัญสำหรับชุดรูปแบบนี้อยู่ที่ไหน

ขอบคุณสตีฟ

คำตอบ:


22

มีเป็นที่เรียบง่ายผูกพันสำหรับ "เลือกทั้งหมด" ใน GTK:C-/

มันถูกกำหนดให้เป็นสัญญาณ GtkTextViewทั่วไปและไม่ได้เป็นส่วนหนึ่งของชุดรูปแบบคีย์ emacs โดยเฉพาะ แต่มันใช้งานได้ดีกับมัน C-aมันกำหนดไว้เป็นทางเลือกให้กับ ในขณะที่หลังได้รับการตีความใหม่โดยชุดรูปแบบ emacs C-/ยังคงใช้ได้สำหรับ "เลือกทั้งหมด"


คำตอบที่ดี ทำไมมันถึงไม่มี upvotes เลย?
Rörd

7

ไม่มีทางลัดเดียวที่จะทำโดยตรง

คุณสามารถไปที่ส่วนท้ายของข้อความที่มีCtrl- eและลบบรรทัด-Ctrl uอย่างไรก็ตามสิ่งนี้ใช้ได้กับGtkEntryฟิลด์อินพุตหนึ่งบรรทัดเท่านั้น

หากคุณต้องการเลือกทุกอย่างในGtkTextViewตัวควบคุมแบบเหมือนหลายบรรทัดคุณจะต้องทำงานหนักCtrl- Homeตามด้วยCtrl+ Shift- Endซึ่งด้วยแป้นพิมพ์ 63 ปุ่มของฉันแทบจะเป็นไปไม่ได้เลย

หากด้วยเหตุผลที่ดีในการแก้ไขประสิทธิภาพหรือข้อ จำกัด ของแป้นพิมพ์ของอุปกรณ์พกพาHomeและEndไม่สามารถเข้าถึงได้คุณจะต้องผ่าน การเลือกเมนู "เลือกทั้งหมด" จาก "แก้ไข" เป็นแนวคิดที่ไม่ดีเพราะมันจะจับคู่กับAlt- e- aใน firefox Alt- e- tใน gedit Alt- e- sใน OpenOffice (แม้จะมี gnome-Integration) ในแต่ละซอฟต์แวร์จะมีคีย์ที่แตกต่างกันและ ในซอฟต์แวร์บางตัวจะไม่มี "Select-all" ใน Edit Menu เช่นโครเมียมและในซอฟต์แวร์บางตัวไม่มีแม้แต่ Edit Menu เองแม้แต่ตัวที่ซ่อนอยู่ที่จะถูกเรียกด้วยAlt-eเหมือนหอยโข่ง ความไม่สอดคล้องกันนี้เป็นจุดประสงค์ของแถบเมนูที่เปิดใช้งาน Alt และไม่ใช่ระบบปฏิบัติการใด ๆ ที่ไม่ใช่ Windows แม้แต่จะไม่สอดคล้องกัน แม้แต่เมนูคลิกขวาไม่มีทางลัดคงที่สำหรับ "Select-All" - โดยปกติจะเป็นaแต่อาจมาtจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชัน การเรียกหาการแก้ไขข้อบกพร่องในซอฟต์แวร์แต่ละตัวนั้นสามารถทำได้กับโครงการเมตาเช่น GNOME เท่านั้น แต่การรู้ GNOME เองทำให้เกิดปัญหาเหล่านี้ (การลบเมนูแก้ไขใน 'nautilus' เป็นการตัดสินใจของ GNOME 3) จริง ๆ แล้วไม่ได้ทิ้ง คุณมีความหวังมาก

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

คำตอบเสร็จสิ้นที่นี่ สำหรับจิตใจที่อยากรู้อยากเห็นฉันมีข้อมูลเพิ่มเติม:


ผู้ใช้ emacs ที่มีประสบการณ์จะพยายามCtrl- x- h: emacs แท้ๆ แต่ไม่เข้าใจลำดับสำคัญของการควบคุมโดยโหมด emacs ของ gtk3 ในความเป็นจริงเพียงไม่กี่คน emacs ลัดที่กำหนดไว้ - ใช้เวลาแอบมองที่/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; มีที่ว่างเพียงพอบนสติกเกอร์เพื่อเขียนทางลัด emacs ที่รองรับทั้งหมด

เพื่อให้สถานการณ์แย่ลงไปอีกเป็นเรื่องยากที่จะย้ายคีย์ลัดสำหรับจุดประสงค์นี้ อย่างที่คุณรู้Ctrl- aถูกใช้โดย emacs แต่แม้แต่ Hispanophones ซึ่งเป็นกลุ่มที่ไม่ได้พูดภาษาอังกฤษที่ใหญ่ที่สุด (ยกเว้นภาษาจีนเพราะเราใช้ ideographs) ซึ่งใช้ในการเลือกทุกอย่างด้วยCtrl- eก็จะพบว่าแป้นพิมพ์ลัดที่ emacs ใช้ ไม่รวมeคีย์อื่น ๆ ที่เหลืออยู่ในครึ่งซ้ายของคีย์บอร์ด QWERTY โดยไม่ได้รับการยอมรับเป็นอย่างดี Google Translate ใช้รหัส SHIFT เมื่อกดปุ่มเพียงครั้งเดียวในฐานะ 'เลือกทั้งหมด' แต่ไม่ใช่ซอฟต์แวร์อื่น ๆ หรือผลิตภัณฑ์อื่น ๆ ของ Google ทำตามการตั้งค่า

การลบบรรทัดการใช้งาน-Ctrl uนี่คือข้อดีของการไม่เขียนทับ X SELECTION (อันที่คุณดึงด้วยปุ่มกลางของเมาส์) นี่เป็นการตั้งค่าเฉพาะของโหมด emacs ของ gtk3: ใน emacs จริงมันไม่ได้ทำอะไรด้วยตัวเอง ใน readline (ทุบตี mysql ฯลฯ ) มันควรจะลบทุกอย่างตั้งแต่เคอร์เซอร์จนถึงจุดเริ่มต้นของบรรทัดในขณะที่ส่วนของมันCtrl- kลบทุกอย่างจากเคอร์เซอร์จนถึงท้ายบรรทัด

บางคนอาจแนะนำให้คุณทิ้งเครื่องหมายไว้ที่ไหนสักแห่งสำหรับการเลือกแบบสุ่มด้วยแป้นพิมพ์ คุณอาจพบCtrl- SPACEอยู่ในโหมด emacs ที่กำหนดค่าให้ตั้งค่าจุดยึดในข้อความ แม้จะมีข้อขัดแย้งกับซอฟต์แวร์อื่น ๆ (โดยเฉพาะอย่างยิ่งวิธีการป้อนข้อมูลแบบ ideograph และการเติมข้อมูลอัตโนมัติในซอฟต์แวร์ตัวแก้ไขอื่น ๆ ) แต่ก็ไม่มีปุ่มทางลัดใด ๆ ที่จะใช้ประโยชน์จากจุดยึดที่คุณตั้งไว้


Ubuntu ไม่สนับสนุนโหมดการแก้ไข emacs อย่างเป็นทางการหรือการกำหนดค่า UI อื่น ๆ ที่ไม่สามารถทำได้ด้วย UI รายงานข้อผิดพลาดเกี่ยวกับความต้องการดังกล่าวมีการทำเครื่องหมายลำดับความสำคัญต่ำลง ด้วยเหตุนี้ฉันคิดว่าเป็นการดีที่สุดที่จะถามคำถามดังกล่าวไปยังสถานที่ทั่วไปของ Linux เช่น superuser


2

การผูก emacs ถูกระบุไว้ที่ /usr/share/themes/Emacs/gtk-2.0-key/gtkrc นอกจากนี้คุณยังสามารถเพิ่มการผูกใน ~ / .config / gtk-3.0 / gtk.css

เลือกทั้งหมดจะเป็นดังนี้:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

ฉันไม่ได้พบวิธีที่จะผูกไว้กับ Cx h แม้ว่า


2

ดูการโยงคีย์ที่มีอยู่

สำหรับแอปพลิเคชัน GTK3 คุณสามารถดูการเชื่อมโยงของชุดรูปแบบคีย์ Emacs GTK ไม่ว่าจะเป็นแบบโลคอล/usr/share/themes/Emacs/gtk-3.0/gtk-keys.cssหรือที่ที่เก็บ GTK git บนGitHub (ซึ่งไม่จำเป็นต้องเท่ากับไฟล์โลคอลของคุณเนื่องจาก distro ของคุณอาจแก้ไข) .

ในขณะที่อ่านไฟล์นี้คุณจะต้องตระหนักถึงความหมายของวิดเจ็ต

  • GtkTreeView ,
  • GtkTextView,
  • GtkEntry และ
  • GtkMenu

(ดูภาพที่ด้านบนของแต่ละเว็บไซต์ที่เชื่อมโยง)

การเพิ่มการโยงคีย์สำหรับการเลือกทั้งหมด

select-allสำหรับGtkTreeViewและGtkTextView

สำหรับการGtkTreeViewและเครื่องมือที่มีสัญญาณที่เรียกว่าGtkTextView select-allคุณต้องผ่านการโต้แย้ง1เพื่อที่จะเลือกทั้งหมดแทนที่จะยกเลิกการเลือก

ดังนั้นแก้ไข~/.config/gtk-3.0/gtk.cssและเพิ่มสิ่งนี้:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

เพราะGtkEntryไม่มีselect-allสัญญาณ แต่คุณสามารถใช้ลำดับmove-cursorสัญญาณสองอันเพื่อทำเครื่องหมายข้อความ

แก้ไข~/.config/gtk-3.0/gtk.cssและเพิ่มสิ่งนี้อีกครั้ง:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Firefox

โดยวิธีการใน Firefox Alt- aเลือกทั้งหมดสำหรับฉันโดยค่าเริ่มต้นโดยไม่มีการกำหนดค่า (ใช้ชุดรูปแบบคีย์ Emacs GTK)


1

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

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

จากนั้นใช้M -wเพื่อคัดลอก (ซึ่งเป็นสิ่งที่ฉันทำเพื่อคัดลอกจากระบบยูนิกซ์ระยะไกลไปยัง Windows ท้องถิ่น) แล้วกดF4เพื่อกำหนดแมโครให้เสร็จ

ตอนนี้คุณกำหนดมาโครได้แล้วเพียงกดF4หลาย ๆ ครั้งที่คุณต้องการทำซ้ำ


ชุดรูปแบบคีย์ GTK Emacs นั้นไม่เหมือนกับตัว Emacs เอง เกือบจะไม่มีข้อผูกมัดสำคัญในคำตอบของคุณที่นั่น (และถ้าคุณอยู่ใน Emacs จริง ๆ คุณสามารถใช้Cx hแทนมาโครได้
Rörd

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