มาจาก Eclipse และถูกใช้เพื่อทำซ้ำบรรทัดตลอดเวลามันค่อนข้างแปลกที่พบว่า Xcode ไม่มีฟังก์ชันดังกล่าว หรือไม่?
ฉันรู้ว่าเป็นไปได้ที่จะเปลี่ยนการเชื่อมโยงคีย์ทั้งระบบ แต่นั่นไม่ใช่สิ่งที่ฉันทำ
มาจาก Eclipse และถูกใช้เพื่อทำซ้ำบรรทัดตลอดเวลามันค่อนข้างแปลกที่พบว่า Xcode ไม่มีฟังก์ชันดังกล่าว หรือไม่?
ฉันรู้ว่าเป็นไปได้ที่จะเปลี่ยนการเชื่อมโยงคีย์ทั้งระบบ แต่นั่นไม่ใช่สิ่งที่ฉันทำ
คำตอบ:
ประเด็นทั้งหมดคือไม่ใช้Cmd-C
/ Cmd-V
ทางลัด ฉันมีปัญหาเดียวกันที่มาจาก IntelliJ และความสามารถในการทำซ้ำบรรทัดCmd-D
และลบออกด้วยCmd-Y
เป็นการประหยัดเวลามาก
มันทำให้ฉันรู้สึกแย่ตั้งแต่นั้นมา อย่างไรก็ตามดูเหมือนว่ามีคนอื่นพบวิธีแก้ปัญหาที่ได้ผล
กล่าวโดยย่อคือสร้างไฟล์ที่~/Library/KeyBindings/PBKeyBinding.dict
มีเนื้อหาต่อไปนี้และรีสตาร์ท Xcode
{
"^$K" = (
"selectLine:",
"cut:"
);
"^$D" = (
"selectLine:",
"copy:",
"moveToEndOfLine:",
"insertNewline:",
"paste:",
"deleteBackward:"
);
}
สิ่งนี้จะสร้างทางลัดสองทาง: Ctrl- Shift- KสำหรับการลบบรรทัดปัจจุบันและCtrl- Shift- Dสำหรับการทำซ้ำบรรทัดปัจจุบัน โปรดทราบว่าสิ่งนี้จะใช้ได้เฉพาะเมื่อคุณไม่ได้ใช้ชุดการผูกคีย์แบบกำหนดเองใน Xcode เปลี่ยนเป็น "XCode Default" และสิ่งต่างๆควรใช้งานได้ ทดสอบกับ XCode 3.2 บน Snow Leopard
ข้อมูลเพิ่มเติมเกี่ยวกับการผูกคีย์ Mac OS X: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
Duplicate
คำสั่ง (ในEdit -> Duplicate
) ดูเหมือนว่าจะ "เสมอ" สีเทา (และไม่ได้หมายความว่าการทำซ้ำบรรทัด)
ในการลบบรรทัด : Ctrl-Aไปที่จุดเริ่มต้นของบรรทัดจากนั้นCtrl-Kเพื่อลบและอีกครั้งCtrl-Kเพื่อลบบรรทัดว่าง (ฉันไม่ได้ใช้ Xcode บ่อยนัก แต่ฉันคุ้นเคยกับสิ่งนั้นใน Emacs และอินพุตข้อความอื่น ๆ ที่มีการผูกแบบ Emacs และดูเหมือนว่าจะทำงานใน Xcode ด้วย)
และในการทำซ้ำบรรทัด : ฉันไม่รู้ว่ามีหลายโปรแกรมที่มีคำสั่งสำหรับสิ่งนั้น แต่โดยปกติฉันจะใช้ Copy + Paste - ใน Xcode จะเป็นเหมือน CUA: Ctrl+Aเพื่อไปที่จุดเริ่มต้นของบรรทัดShift+↓เพื่อเลือก มันCommand + Cเพื่อคัดลอกและCommand + * Vเพื่อวางสองครั้ง (หนึ่งครั้งแทนที่บรรทัดและเมื่อผนวกเข้าด้วยกัน)
(จากคนที่พิมพ์และแก้ไขข้อความตลอดเวลาบ่อยครั้งในโปรแกรมต่าง ๆ และบางครั้งก็รู้สึกโกรธที่ต้องหันเหความสนใจของตัวเองด้วยวิดเจ็ตใบ้ในขณะที่ทำการแก้ไขเล็กน้อยในการป้อนข้อความเขาไม่สามารถหลีกเลี่ยงการจดจำลำดับเหล่านี้ได้ และนิสัย)
ลบบรรทัดเช่น eclipse CTRL+ D(ทดสอบบน Xcode 4.5.1):
ก่อนอื่นเปลี่ยนสิทธิ์เหล่านี้:
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
เปิด/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
ด้วย Xcode และเพิ่มรายการใหม่นี้:
deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:
รีสตาร์ท Xcode และเปิด Xcode> การตั้งค่า> KeyBindings ค้นหามาโครของคุณและกำหนดคีย์ลัด:
ฉันลองใช้โซลูชันการผูกคีย์ แต่ไม่สามารถใช้งานได้ อย่างไรก็ตามการแก้ไขการผูกคีย์ XCode ของฉันทำงานได้อย่างมีเสน่ห์ นี่คือวิธีที่ฉันทำ
โซลูชันนี้ไม่ได้เปลี่ยนแปลงเนื้อหาของคลิปบอร์ด!
เปิดการเชื่อมโยงคีย์ XCode:
ในกล่องโต้ตอบแก้ไขสคริปต์ผู้ใช้:
รายการที่ซ้ำกัน:
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if startLine > 1 then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
make new paragraph at beginning of paragraph (startLine) with data theText
set selected paragraph range to {endLine + 1, endLine + endLine - startLine + 1}
else
beep 1
end if
end tell
end using terms from
ซ้ำบรรทัดลง:
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if endLine < (count paragraphs) then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
(* delete (paragraphs startLine through endLine) *)
make new paragraph at beginning of paragraph (endLine + 1) with data theText
set selected paragraph range to {startLine, endLine}
else
beep 1
end if
end tell
end using terms from
ตกลงฉันทำงานนี้ไปสักพักแล้วจู่ๆมันก็แตก ตอนนี้ฉันได้รวมจากโพสต์ต่างๆที่นี่และพบวิธีแก้ปัญหาที่ใช้ได้กับ XCode 6.3.1
ไปที่/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
Finder
ค้นหาโฟลเดอร์ชื่อ Resources คลิกขวาแล้วกดรับข้อมูลปลดล็อกการตั้งค่าการแชร์และการอนุญาต (โดยการกดล็อก) และตั้งค่าเป็นอ่านและเขียนสำหรับทุกคน
เข้าสู่โฟลเดอร์และค้นหาไฟล์ IDETextKeyBindingSet.plist คลิกขวาแล้วกดรับข้อมูลปลดล็อกการตั้งค่าการแชร์และการอนุญาต (โดยการกดล็อก) และตั้งค่าเป็นอ่านและเขียนสำหรับทุกคน
เปิดไฟล์ด้วย XCode (ค่าเริ่มต้น)
ค้นหาการลบคลิกขวาแล้วเพิ่มแถวใหม่ ตั้งชื่อเช่น Delete Line ในฟิลด์ค่าพิมพ์: selectLine:, deleteBackward:
. (นี่ยังสามารถทำได้สำหรับสายที่ซ้ำกัน: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
เนื่องจาก Xcode 4 ทำให้ยากต่อการใช้งานโดยใช้การผูกคีย์ฉันจึงหันไปใช้Keyboard Maestro ( Quickeysควรทำงานได้ดีเช่นกัน แต่ไม่สามารถใช้งานร่วมกับ Lion ได้อย่างสมบูรณ์) ตัวอย่างเช่นนี่คือแป้นพิมพ์ลัด Maestro ของฉัน (เชื่อมโยงกับ⌘-⇧-D):
ฉันรู้ว่าเธรดนี้ค่อนข้างเก่า แต่ฉันพบวิธีแก้ปัญหาอื่นโดยใช้BetterTouchToolคุณสามารถรันลำดับCtrl+ A, Ctrl+ K, Ctrl+ Kในทางลัดเดียวโดยกำหนดค่าเช่นนี้ใน BTT:
(ใช้ปุ่มแนบการดำเนินการเพิ่มเติมเพื่อต่อท้ายทางลัดที่สองและสาม)
PS: มาจาก Eclipse โดยที่Cmd+ Dลบบรรทัด ^^
คลิกสามครั้งเพื่อเลือกทั้งบรรทัด command-c เพื่อเลือกและ command-v สองครั้งเพื่อทำซ้ำ ไม่ใช่ฟังก์ชัน Xcode เป็นเพียงส่วนหนึ่งของระบบปฏิบัติการ
ใช้สคริปต์ผู้ใช้
มีสคริปต์ให้ย้ายและลบบรรทัดได้หรือยัง คุณต้องกำหนดผูกที่สำคัญสำหรับสคริปต์เหล่านั้น (เมนูสคริป -> แก้ไขสคริปผู้ใช้ ...ภายใต้ Xcode 3.2)
หากต้องการทำซ้ำบรรทัดคุณต้องสร้างสคริปต์ของคุณเอง แต่มันง่ายมาก! ทำสำเนาสคริปต์ "ย้ายบรรทัดลง" และลบบรรทัดที่ลบข้อความที่เลือก:
delete (paragraphs startLine through endLine)
มีวิธีแก้ปัญหาสำหรับการทำซ้ำบรรทัด XCode4 ที่นี่
ฉันยังได้เพิ่มการลบบรรทัดใน plist:
<key>Remove Line</key>
<string>selectLine:, deleteBackward:</string>
เราใช้ Xcode 9.0 และการเชื่อมโยงคีย์ยังไม่ทำงาน ถอนหายใจ
ฉันพบว่าส่วนสำคัญนี้มีประโยชน์มากดังนั้นจึงโพสต์ใหม่ที่นี่เพื่อใช้อ้างอิงในอนาคต:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
</dict>
<key>Duplication</key>
<dict>
<key>Duplicate Current Line</key>
<string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
<key>Duplicate Lines</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
<key>Delete Line</key>
<string>selectLine:, deleteBackward:</string>
</dict>
ไม่จำเป็นต้องแก้ไข Xcode คุณสามารถใช้ส่วนขยาย Xcode Linex
วิธีแก้ปัญหาโดยdamien.flament ใช้งานได้ดีและคุณอาจต้องตั้งค่าเอาต์พุตเป็น "Discard Output" ดูรูปด้านล่าง
PS: ฉันไม่รู้ว่าจะแสดงความคิดเห็นอย่างไรกับคำตอบของเขา
ตามที่กล่าวข้างต้น XCode อย่างใกล้ชิดและต่อไปนี้เพื่อแทรก ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
ภายใน<dict>
ใน<key>text</key>
ส่วน:
<key>^D</key>
<array>
<string>moveToLeftEndOfLine:</string>
<string>deleteToEndOfLine:</string>
</array>
<key>^K</key>
<array>
<string>selectLine:</string>
<string>copy:</string>
<string>moveToEndOfLine:</string>
<string>insertNewline:</string>
<string>paste:</string>
<string>deleteBackward:</string>
</array>
เริ่มต้น XCode และเพลิดเพลินCTRL- SHIFT- DและCTRL- -SHIFT
หากคุณต้องการ- และ- ให้ใช้และในคำจำกัดความหลักแทน ตรวจสอบว่าไม่มีการผูกคีย์ซ้ำกันในไฟล์K
CTRLDCTRLK^d
^k
ใช้งานได้ดีสำหรับฉันด้วย XCode 3.2
หากคุณปรับแต่งการผูกคีย์ Xcode ของคุณแล้วคุณจะต้องแก้ไขไฟล์: ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
. เพียงเพิ่มอาร์เรย์ทั้งสอง (ที่อธิบายไว้ข้างต้น) ลงในRoot/text
พจนานุกรม
สามขั้นตอนในการลบบรรทัดปัจจุบัน (ดูยาวเกินไป แต่ทำเร็วมาก: D)
Cmd+ →: ย้ายไปที่ท้ายบรรทัด
Cmd+ Delete: ลบไปที่จุดเริ่มต้นของบรรทัด
Delete: ลบบรรทัดว่าง
สำหรับ Xcode 6.1 ไปที่ Xcode> Preferences> KeyBindings> Text และมี "Delete to End of Line" และกำหนดคีย์ที่คุณต้องการ
ปลั๊กอินลบบรรทัด XCodePlus เป็น XCode ที่ทำเพื่อคุณ มันมาพร้อมกับตัวจัดการแพ็คเกจ Alcatraz ...
ยังไม่มีวิธีในตัวในการทำซ้ำบรรทัดเช่นเดียวกับ Xcode 9 และการผูกคีย์แบบกำหนดเองดูเหมือนจะมีปัญหา
อัปเดต: Xcode 10.0 beta 6 (10L232m) เหมือนกัน
ไปที่ที่อยู่นี้:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
จากนั้นคัดลอกไฟล์ IDETextKeyBindingSet.plist ในบางส่วนจากนั้นเปิดไฟล์ที่คัดลอกและแทรก
selectLine:, copy:, paste: วาง: เช่นภาพนี้ ป้อนคำอธิบายภาพที่นี่ และบันทึกและแทนที่ไฟล์ที่คัดลอกในที่อยู่นี้ /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
จากนั้นรีสตาร์ท xcode เปิดคำนำหน้า xcode ไปที่แท็บ keybinding ค้นหาบรรทัดที่ซ้ำกัน (กำหนดเอง) และกำหนดคีย์สั้นสำหรับมันเช่นภาพด้านล่าง