แป้นพิมพ์ลัด camelCase ของ Mimic Xcode ใน OS X


25

ฉันใช้เวลามากในการแก้ไขข้อความใน Xcode และฉันต้องการจัดทำข้อความภายในระบบข้อความส่วนที่เหลือของ Cocoa เพื่อนำเสนอประสบการณ์ที่เหมือนกัน แป้นพิมพ์ลัดเคอร์เซอร์มี 3 เวอร์ชั่นที่ฉันใช้เป็นประจำใน Xcode (แสดงเฉพาะเวอร์ชั่นที่ไม่ได้ทำการเลือกแก้ไขเพื่อความกะทัดรัด):

  1. + เลื่อนเคอร์เซอร์ไปข้างหน้า 1 subword (^ camelCase -> camel ^ Case -> camelCase ^)
  2. ⌥ Option+ เลื่อนเคอร์เซอร์ไปข้างหน้า 1 คำ
  3. ⌘ Command+ เลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัด

ระบบปฏิบัติการ X keybindings เริ่มต้นเคารพที่ 2 และ 3 แต่มีความแตกต่างกับ 1. ด้านนอกของ Xcode, + พฤติกรรมเช่น+⌘ Command มันไม่ได้บังคับชะมัดบ่อย แต่ทุกครั้งที่+ พาฉันไปยังจุดสิ้นสุดของบรรทัดในจดหมายหรือบางสิ่งบางอย่างก็เหมือนพลุเล็ก ๆ น้อย ๆ ออกไปในสมองของฉัน มันน่ารำคาญพอที่ฉันยินดีที่จะลงทุนในแฮกเกอร์ใด ๆ เพื่อ "แก้ไข" พฤติกรรมทุกครั้ง

เพื่อหลีกเลี่ยงการครอบคลุมพื้นที่เก่าฉันได้ทราบเกี่ยวกับชิ้นอาหารอันโอชะเล็ก ๆ น้อย ๆ นี้และรายการตัวเลือกนี้ แต่ฉันไม่ทราบ API ใด ๆ ในระบบข้อความ Cocoa สำหรับการเลือกคำย่อย อาจมี API ที่ไม่มีเอกสารอยู่บ้างไหม?


ฉันไม่เคยพยายามเลือก camelCase นอก Xcode ด้วยแป้นพิมพ์ลัด แต่เมื่อใดที่ฉันต้องการให้ OS X เชื่อฟัง


2
บน mac ของฉัน ⌃ →เปลี่ยนช่องว่างตามค่าเริ่มต้นและมันจะไม่ทำงานเหมือน⌘→
CousinCocaine

2
สิ่งนี้จะถือว่าคุณได้ปิดใช้งานทางลัดนั้นในการตั้งค่าระบบ
Matt Wilding

Nope บน OS X (Mavericks) พฤติกรรมเริ่มต้นของ ⌃ →คือการสลับช่องว่าง osxdaily.com/2011/09/06/...
CousinCocaine

ต้องการมันเช่นกัน ฉันคิดว่าอาจมีเครื่องมือภายนอกเช่น Yandex 'PuntoSwitcher เพื่อจัดการเคอร์เซอร์อินพุตในกล่องข้อความใด ๆ
ДаниилПронин

คำตอบ:


2

ขออภัย แต่สิ่งที่คุณต้องการเป็นไปไม่ได้

คุณสามารถลองเพิ่มการผูกคีย์ XCode ที่ทำสิ่งนี้ได้

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^\177" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

ลงใน~/Library/KeyBindings/DefaultKeyBindings.dictไฟล์ของคุณยกเว้นว่าแอปพลิเคชันนั้นเขียนขึ้นเพื่อตอบสนองต่อวิธีการเหล่านี้มันจะไม่ทำงาน ดังที่คุณได้กล่าวมาแล้ววิธีการเหล่านี้ไม่ได้เป็นส่วนหนึ่งของระบบข้อความมาตรฐานดังนั้นการโทรเหล่านี้ในแอพจะไม่ได้รับการตอบกลับหรือคุณจะได้รับเสียงเตือนจากระบบ


0

เพื่อนำทางกรณีอูฐ (aka คำย่อย) เพื่อการใช้งานที่ถูกต้อง

^+ [เพื่อย้ายคำย่อยไปทางซ้าย

^+ ]เพื่อย้ายคำย่อยไปทางขวา

ฉันยืนยันสิ่งนี้ใน OSX 10.10.1 ที่รัน Xcode 6.1.1


ฉันคิดว่าส่วนสำคัญของคำถามนี้คือการรับคำสั่งย่อย Xcode นอกแอพเดียวและที่เหลือของแอปมาตรฐาน
bmike

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