ฉันจะเลือกบรรทัดบน OSX ได้อย่างไร


8

ฉันกำลังแก้ไขข้อความ วิธีที่ยุ่งยากในการเลือกบรรทัดคือไปที่จุดเริ่มต้นของบรรทัด (cmd <-) จากนั้นเลือกทั้งบรรทัดไปยังจุดสิ้นสุด (Shift cmd ->) ฉันทำได้ดีกว่าไหม

ทางลัดสำหรับตัดเส้นและเก็บไว้ในบัฟเฟอร์จะได้รับการต้อนรับ (cmd D) ไม่ได้จัดเก็บบรรทัดในบัฟเฟอร์


1
คุณแก้ไขโปรแกรมอะไร
ForeverWintr

ส่วนใหญ่ใน Eclipse ใน terminal นั้น แต่ฉันหวังว่าจะได้รับโซลูชันทั่วไปสำหรับทุกแอปพลิเคชันถ้าเป็นไปได้
Dávid Natingga

บนแป้นพิมพ์ ful ใน os x home จากนั้น shift-end จะเลือกทั้งบรรทัด แต่คุณอาจไม่มีแป้นพิมพ์เต็มรูปแบบ นอกจากนี้ในแอพส่วนใหญ่วางตำแหน่งเคอร์เซอร์ที่จุดเริ่มต้นของบรรทัดแล้วกด shift ค้างที่ลูกศรลง
sdjuan

คำตอบ:


10

ฉันมักจะใช้สิ่งต่อไปนี้:

  • cmd - Left arrow เพื่อไปยังจุดเริ่มต้นของบรรทัด
  • shift + cmd + right arrow เพื่อทำเครื่องหมายบรรทัด
  • cmd - C(หรือcmd - X) เพื่อคัดลอก (หรือตัด) บรรทัดที่ทำเครื่องหมายไว้ในคลิปบอร์ด

cmd - vแล้วฉันจะไปทุกที่ที่ผมชอบและวางสายด้วย

แต่เนื่องจาก MacOS ได้รับการแก้ไขเป็นอย่างยิ่งให้กับ Graphical UserInterface โดยใช้เมาส์โดยที่ไม่สามารถทำได้ แต่บางครั้ง - เช่นในกรณีของคุณ - ต้องมีปุ่มกดหนึ่งปุ่มมากกว่าหนึ่งปุ่ม


1
เกือบถูก: shift + cmd - ลูกศรขวาเพื่อทำเครื่องหมายบรรทัดอย่า shift + cmd - ลูกศรชี้ลง
Kevin Le - Khnle

1
shift + cmd + ลูกศรลงทำเครื่องหมายบรรทัดปัจจุบันที่ไม่รวมอักขระบรรทัดใหม่ shift + cmd + ลูกศรขวาทำเครื่องหมายบรรทัดที่ไม่รวมอักขระ newline ดังนั้นเราทั้งคู่พูดถูก;)
heiglandreas

5

แอพส่วนใหญ่ (เทอร์มินัล TextEdit URL / แถบการค้นหาของ Safari ฯลฯ ) ที่ยอมรับการป้อนข้อความด้วยการผูกคีย์มาตรฐาน (ไม่แน่ใจว่ามาตรฐาน ... ANSI, ASCII หรือไม่)

control+ a: จุดเริ่มต้นของบรรทัด

control+ e: ท้ายบรรทัด

ดังนั้นcontrol+ shift+ a or eเพื่อเลือกบรรทัดขึ้นอยู่กับตำแหน่งของคุณ

นอกจากนี้:

control+ shift+ k: kill ถึง end-of-line

control+ shift+ y: ดึง (จากบัฟเฟอร์)

รายการที่สมบูรณ์สามารถสร้างขึ้นด้วยbindkeyคำสั่งในเทอร์มินัลแม้ว่าจะไม่สามารถใช้งานได้กับแอพทั้งหมด


1
มุมมองข้อความ OS X ไม่ได้ใช้ readline พวกเขาเพิ่งเกิดขึ้นเพื่อรองรับการโยงคีย์เดียวกันกับ readline ในโหมด emacs Cu, C- @ และ Cw ไม่ควรทำงานในมุมมองข้อความวานิลลาตามค่าเริ่มต้นแม้ว่าคุณจะสามารถกำหนดได้ใน DefaultKeyBinding.dict
Lri

ฉันทดสอบทุกอย่างก่อนโพสต์ ... ยกเว้นว่าฉันทำได้ที่พรอมต์คำสั่ง กรมทางหลวง
Nevin Williams

นี่เป็นสิ่งที่ดี แต่ฉันยังคงมองหาบางสิ่งที่ใช้ได้ทั่วโลก
Louis Waweru

2

คุณสามารถสร้าง~/Library/KeyBindings/และบันทึกรายการคุณสมบัติเช่นนี้เป็นDefaultKeyBinding.dict:

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

หลังจากเปิดแอปพลิเคชันอีกครั้งตัวอย่างเช่น⌥Lควรเลือกบรรทัดในมุมมองข้อความดั้งเดิมส่วนใหญ่ มันไม่ทำงานใน Eclipse, Terminal หรือ Xcode สำหรับข้อมูลเพิ่มเติมโปรดดูที่โกโก้ข้อความระบบบทความหรือเว็บไซต์ของฉัน

อีกตัวเลือกหนึ่งคือใช้ KeyRemap4MacBook และบันทึกสิ่งนี้เป็นprivate.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

ในแอปพลิเคชั่นส่วนใหญ่ ⌃A ย้ายไปที่จุดเริ่มต้นของบรรทัดที่ไม่ได้เปิดและ⌘←ย้ายไปที่จุดเริ่มต้นของบรรทัดที่ล้อมรอบ แต่ ⌃A ดูเหมือนจะไม่ทำงานใน Eclipse

ดูแหล่งที่มาสำหรับค่ารหัสที่สำคัญและการตั้งค่าที่กำหนดไว้ล่วงหน้า


1

ฉันพบวิธีแก้ปัญหาที่ดูเหมือนว่าจะทำงานได้กับแอพ Cocoa ทั้งหมด: ให้ปุ่มhome& endทำงานเหมือนเครื่องที่ไม่ใช่ของ Apple (ไปที่จุดเริ่มต้น / สิ้นสุดของบรรทัดแทนที่จะเป็นเอกสารทั้งหมด)

ไฟล์~/Library/KeyBindings/DefaultKeyBinding.dictจำเป็นต้องมีสิ่งต่อไปนี้:

{
    /* home */
    "\UF729"  = "moveToBeginningOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";

    /* end */
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

หากไม่มีไฟล์หรือไดเรกทอรีให้คัดลอกข้อมูลโค้ดข้างบนไปยัง ... pasteboard ของคุณเปิดTerminalและป้อนคำสั่งสองคำสั่งต่อไปนี้:

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

อาจจำเป็นต้องรีสตาร์ทแอปเพื่อให้แอปทำงานตามที่คาดไว้


1

ฉันประหลาดใจที่ไม่มีใครพูดถึงเรื่องนี้

Shift + CMD + ลูกศรซ้าย (หรือลูกศรขวาหากคุณอยู่ที่จุดเริ่มต้น)


ไม่ @heiglandreas พูดถึง (ไม่ชัด แต่เขาทำ) ในคำตอบของเขา ดูกระสุนนัดที่สอง
C0deDaedalus

1

ข้อดีอย่างหนึ่งของ macOS มากกว่า (WIN / Linux) คือการใช้แป้นพิมพ์สไตล์ emacs ทั่วโลกในเกือบทุกกล่องข้อความ (ยกเว้นเป็น Microsoft Office สำหรับ Mac ซึ่งกำหนด keybindings เหล่านั้นอย่างน่ารำคาญ ... )

เกี่ยวกับคำถามนี้ฉันมักใช้C-aเพื่อไปถึงส่วนหัวของบรรทัดC-S-eเพื่อเลือกจนถึงจุดสิ้นสุดจากนั้นกด 'CMD-c` เพื่อคัดลอก

หากคุณมีเส้น (ซึ่งลงท้ายด้วย \ n) ที่ข้ามเส้นตัวอักษรหลายตัวฉันมักจะทำสิ่งต่อไปนี้:

1) C-aไปที่จุดเริ่มต้นของบรรทัด

2) C-nเพื่อไปยังจุดเริ่มต้นของบรรทัดตัวอักษรถัดไป

3) C-bย้อนกลับไปหนึ่งตัวละคร

4) C-S-aเพื่อเลือกจนกระทั่งส่วนหัวของบรรทัด

5) CMD-cเพื่อคัดลอกเนื้อหา

อาจเป็นโซลูชันที่ซับซ้อน แต่ควรทำงานในกล่องข้อความส่วนใหญ่ใน macOS


0

control+ shift+aef

(พิมพ์aefขณะที่กด Control และ Shift ค้างไว้)

สิ่งนี้จะให้ผลลัพธ์เช่นเดียวกับการคลิกสามครั้งที่บรรทัดปัจจุบัน

หมายเหตุสิ่งนี้รวมถึง EOL ต่อท้ายในส่วนที่เลือก หากนั่นไม่ใช่สิ่งที่คุณต้องการปล่อยออกฉ

เป็นโบนัสหลังจากfกดnซ้ำ ๆ เพื่อเลือกหลายบรรทัด

ทดสอบใน Xcode และ TextEdit

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