ทำให้ Mac OS X“ Option-Arrow” ทำงานได้เหมือน Windows“ Ctrl-Arrow”


20

ฉันใช้คำสั่ง " Ctrl- " บน Windows เพื่อสำรวจเส้นทางของฉันผ่านเอกสารข้อความ

คีย์ - คอมโบที่มีประโยชน์นี้จะพาฉันไปที่จุดเริ่มต้นของคำถัดไปอย่างรวดเร็ว ตัวอย่างเช่นลำดับต่อไปนี้แสดงให้เห็นถึงสิ่งที่จะเกิดขึ้นกับตำแหน่งเคอร์เซอร์หลังจากกดอย่างต่อเนื่องของCtrl- ("^" จะเป็นตัวแทนของเคอร์เซอร์):

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

และถ้าฉันเริ่มกดแทนมันจะเลื่อนเคอร์เซอร์ไปยังจุดเดียวกันที่แน่นอนในเอกสารเพียงไปในทิศทางอื่น (ซึ่งเหมาะอย่างยิ่งเนื่องจากตำแหน่งของเคอร์เซอร์สามารถคาดเดาได้ซึ่งทำให้ฉันเร็วขึ้นที่ทำให้ฉัน แก้ไข):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS X มีแป้นพิมพ์ลัดที่คล้ายกัน ( Option- - ฉันแมป " Ctrl" ถึง " Option" โดยเฉพาะเพื่อให้ได้ฟังก์ชั่นเดียวกันนี้ในแบบที่ฉันคุ้นเคย)

อย่างไรก็ตาม " Option- Arrow" พาฉันไปยังจุดสิ้นสุดของคำปัจจุบันเมื่อใช้ปุ่มลูกศรขวาดังที่แสดงที่นี่:

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

และสิ่งที่แย่กว่านั้นคือการไปในทิศทางอื่นไม่ได้นำคุณกลับไปที่จุดเดียวกันกับการก้าวไปข้างหน้ามันนำคุณไปสู่จุดเริ่มต้นของคำสุดท้าย:

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

นี่เป็นสิ่งที่น่าผิดหวังอย่างมากสำหรับฉันเนื่องจากฉันต้องสลับระหว่าง Windows และ Mac บ่อยครั้งและฉันอยากจะไปจนจบคำปัจจุบัน (ทำไมฉันต้องเป็นเช่นนั้นเว้นแต่ฉันจะถือ " Shift" ด้วย? ) ฉันมักจะต้องการที่จะข้ามไปยังจุดเริ่มต้นของคำถัดไป

ฉันยินดีที่จะใช้ความยาวเพื่อให้รุ่น Mac ทำงานในลักษณะเดียวกัน (ซื้อซอฟต์แวร์เขียนคำสั่ง Applescript แบบกำหนดเองที่เชื่อมโยงกับแป้นพิมพ์ลัดเหล่านี้) ดังนั้นฉันจึงมองหาคำแนะนำ

มีเครื่องมือที่มีอยู่ที่จะเปลี่ยนแปลงสิ่งนี้ให้ฉันได้ไหม

คุณจะแนะนำ "แก้ไข" มันได้อย่างไร?

ขอบคุณ

แก้ไข

ฉันสามารถสร้าง "บริการ" ใน Automator และใช้ AppleScript ต่อไปนี้:

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

จากนั้นฉันเชื่อมโยงบริการนี้กับการกดแป้น " Command- " โดยใช้การตั้งค่า "แป้นพิมพ์" ในการตั้งค่าระบบ

อย่างไรก็ตามสำหรับสิ่งนี้ในการทำงานฉันต้องถอดนิ้วออกจากCommandปุ่ม .. ซึ่งทำให้มันไม่มีจุดหมาย มันช้าและดูเหมือนจะไม่ทำงานในแอปพลิเคชันที่ฉันต้องการให้ทำงานมากที่สุด (Xcode)

คำตอบ:


22

นี่คือวิธีที่คุณจะได้รับ⌃ Control+ แป้นลูกศรเพื่อทำงานเหมือนที่คุณอธิบาย คัดลอกรายการคุณสมบัติต่อไปนี้ลงใน~/Library/KeyBindings/DefaultKeyBinding.dict(คุณสามารถสร้างไดเรกทอรีหากยังไม่มีอยู่):

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

สิ่งนี้จะตั้งค่า⌃ Control+ ลูกศรเพื่อนำทางไปยังจุดเริ่มต้นของคำถัดไป (โดยใช้การนำทางปกติของ OS X สามครั้ง: ไปที่ท้ายคำปัจจุบันสิ้นสุดคำถัดไปจากนั้นกลับไปที่จุดเริ่มต้นของคำถัดไป) ฉันรวมเวอร์ชันที่ใช้งานได้ด้วย⇧ Shiftเพื่อให้คุณสามารถเลือกข้อความตามที่คุณไป

Caveat: สิ่งนี้จะใช้ได้เฉพาะในแอป Cocoa เท่านั้น แต่ฉันคิดว่า⌥ Optionการนำทาง + ลูกศรปกติก็ทำได้เช่นกัน ตรวจสอบให้แน่ใจว่าได้เปิดแอพของคุณใหม่!


Whoot! แค่สิ่งที่ฉันหวังไว้ ... ขอบคุณ! ให้ฉันลองแล้วฉันจะทำเครื่องหมายคำตอบ
สตีฟ

ขอบคุณมาก! ทำงานเหมือนจับใจ FYI "Key Bindings" vs "KeyBindings" ... ฉันใช้ "KeyBindings" และใช้งานได้ ไม่แน่ใจว่ามันสร้างความแตกต่างหรือไม่ Xcode ที่แย่เกินไปจะแทนที่สิ่งเหล่านี้ด้วยการโยงคีย์ของตัวเองที่มีประสิทธิภาพน้อยกว่า
Steve

อ๊ะใช่ฉันหมายถึง KeyBindings! Xcode นั้นดีเพราะคุณสามารถไปที่ subwords ของ camelCase ได้
jtbandes

ฉันชอบ nav camelCase เป็นการดีที่ฉันต้องการพฤติกรรมของ Visual Studio ใน Xcode ... โอ้ดี
Steve

อย่างน้อยคุณสามารถปรับแต่ง Xcode ของ มีแท็บในการตั้งค่าสำหรับการเปลี่ยนการเชื่อมโยงคีย์
jtbandes

5

สิ่งที่คุณอาจลอง ฉันไม่ได้ทดสอบสิ่งเหล่านี้เพื่อดูว่าพวกเขาจะทำหน้าที่ที่คุณต้องการหรือไม่

มีฟรียูทิลิตี้เปิดแหล่งที่มาสำหรับแมปคำสั่งที่สำคัญสำหรับ Mac OS X เรียกว่าDoubleCommand เป็นส่วนขยายเคอร์เนลดังนั้นจึงทำงานในระดับที่ต่ำมาก

อีกโปรแกรมฟรีที่คน DoubleCommand ขอแนะนำให้คุณตรวจสอบออกเป็นKeyRemap4MacBook คุณต้องใช้อย่างใดอย่างหนึ่ง; พวกเขาจะขัดแย้งกันหากมีการติดตั้งบน Mac ของคุณ


1
การใช้KeyRemap4MacBookบน OS X 10.11.x เพื่อให้การควบคุม + [ลูกศร]ทำงานเหมือนใน Windows เลื่อนลงจนกว่าคุณจะพบผู้ใช้พีซีแล้วตรวจสอบ (สำหรับฉันตัวเลือกที่หก) "ใช้การควบคุมสไตล์ PC + ขึ้น / ลง / ซ้าย / ขวา " มีตัวเลือกที่มีประโยชน์อื่น ๆ อยู่ในนั้น แน่นอนว่าการตอบคำถามนี้มีความสำคัญมากและไม่ต้องเสียเงินเพิ่มอีกเป็นร้อยดอลลาร์!
John

1

หลังจากหลายปีของการแมปเริ่มต้นของ OSX ที่น่ารำคาญฉันเปลี่ยนแป้นคำสั่งและการควบคุมของฉันและต้องการให้ปุ่มควบคุม + ลูกศรเพื่อให้ฟังก์ชั่นการย้ายคำ - ไปข้างหน้า คำตอบที่ยอมรับใช้งานได้สำหรับฉันยกเว้นด้วย ^ เปลี่ยนเป็น @ เนื่องจากตอนนี้ฉันใช้การควบคุมแทนคำสั่ง ฉันได้แมปฟังก์ชัน BOL / EOL ที่ใช้น้อยลงกับการรวมกันของปุ่มตัวเลือก + ลูกศร

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.