Đến từ Eclipse và đã được sử dụng để sao chép các dòng mọi lúc, thật lạ khi phát hiện ra rằng Xcode không có chức năng như vậy. Hay không?
Tôi biết có thể thay đổi các phím bấm trên toàn hệ thống nhưng đó không phải là những gì tôi đang theo đuổi.
Đến từ Eclipse và đã được sử dụng để sao chép các dòng mọi lúc, thật lạ khi phát hiện ra rằng Xcode không có chức năng như vậy. Hay không?
Tôi biết có thể thay đổi các phím bấm trên toàn hệ thống nhưng đó không phải là những gì tôi đang theo đuổi.
Câu trả lời:
Toàn bộ điểm KHÔNG được sử dụng Cmd-C
/ Cmd-V
phím tắt. Tôi có cùng một vấn đề đến từ IntelliJ, và có thể chỉ cần sao chép các dòng với Cmd-D
và xóa chúng với Cmd-Y
là một trình tiết kiệm thời gian lớn.
Nó đã làm phiền tôi từ bao giờ. Tuy nhiên, có vẻ như một người khác đã tìm thấy một giải pháp hoạt động.
Nói tóm lại, tạo một tệp ~/Library/KeyBindings/PBKeyBinding.dict
có nội dung sau và khởi động lại Xcode.
{
"^$K" = (
"selectLine:",
"cut:"
);
"^$D" = (
"selectLine:",
"copy:",
"moveToEndOfLine:",
"insertNewline:",
"paste:",
"deleteBackward:"
);
}
Điều này sẽ tạo ra hai phím tắt: Ctrl- Shift- Kđể xóa dòng hiện tại và Ctrl- Shift- Dđể sao chép dòng hiện tại. Xin lưu ý rằng điều này sẽ chỉ hoạt động nếu bạn KHÔNG sử dụng một ràng buộc khóa tùy chỉnh được đặt trong Xcode. Chuyển sang "Mặc định XCode" và mọi thứ sẽ hoạt động. Đã thử nghiệm trên XCode 3.2 trên Snow Leopard.
Thông tin thêm về các ràng buộc chính của Mac OS X: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
Duplicate
lệnh (trong Edit -> Duplicate
) dường như "luôn luôn" chuyển sang màu xám (và không có nghĩa là cho sao chép dòng).
Để xóa một dòng : Ctrl-A để đi đến đầu của dòng, sau đó Ctrl-K để xóa nó và một lần khác Ctrl-K để xóa dòng trống. (Tôi không sử dụng Xcode rất thường xuyên, nhưng tôi đã quen với điều đó trong Emacs và các kiểu nhập văn bản khác với các ràng buộc giống như Emacs và dường như nó cũng hoạt động trong Xcode.)
Và để sao chép một dòng : Tôi không biết nhiều chương trình có lệnh cho điều đó, nhưng thông thường tôi chỉ sử dụng Sao chép + Dán - trong Xcode giống như CUA: Ctrl+A để đi đến đầu dòng, Shift+↓ để chọn nó, Command + Cđể sao chép và Command + * Vđể dán hai lần (một lần ghi đè lên dòng và một lần nối vào nó).
(từ một người gõ và chỉnh sửa văn bản mọi lúc, thường xuyên trong các chương trình khác nhau, và đôi khi tức giận vì phải đánh lạc hướng mình với một tiện ích câm trong khi chỉnh sửa một chút trong văn bản, anh ta không thể tránh việc nhớ các chuỗi này và thói quen)
Xóa một dòng như nhật thực CTRL+ D(đã thử nghiệm trên Xcode 4.5.1):
Trước hết, thay đổi các quyền này:
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
Tự mở /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
bằng Xcode và thêm mục mới này:
deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:
Khởi động lại Xcode và mở Xcode> Tùy chọn> KeyBindings. Tìm macro của bạn và xác định một phím tắt:
Tôi đã thử giải pháp ràng buộc chính, nhưng tôi không thể làm cho nó hoạt động được. Tuy nhiên, việc chỉnh sửa các ràng buộc khóa XCode của tôi hoạt động như một nét quyến rũ. Đây là cách tôi thực hiện nó.
Giải pháp này không làm thay đổi nội dung của Clipboard!
Mở các ràng buộc chính XCode:
Trong hộp thoại Chỉnh sửa tập lệnh người dùng:
Nhân đôi dòng:
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
Dòng trùng lặp xuống:
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
OK, vì vậy tôi đã làm việc này được một lúc và rồi đột nhiên nó bị hỏng. Bây giờ tôi đã kết hợp từ các bài viết khác nhau ở đây và tìm thấy một giải pháp hoạt động cho XCode 6.3.1.
Đi đến /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
với Finder.
tìm thư mục có tên Tài nguyên. Nhấp chuột phải vào nó, nhấn Nhận thông tin, mở khóa cài đặt chia sẻ và quyền (Bằng cách nhấn khóa) và đặt thành Đọc và Viết cho tất cả.
Nhập thư mục và tìm tệp IDETextKeyBindingSet.plist. Nhấp chuột phải vào nó, nhấn Nhận thông tin, mở khóa cài đặt chia sẻ và quyền (Bằng cách nhấn khóa) và đặt thành Đọc và Viết cho tất cả.
Mở tệp bằng XCode (Mặc định)
Tìm xóa, nhấp chuột phải và thêm một hàng mới. Đặt tên cho ví dụ Xóa dòng. Trong trường giá trị, gõ : selectLine:, deleteBackward:
. (Điều này cũng có thể được thực hiện cho dòng trùng lặp selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
:)
Vì Xcode 4 gây khó khăn cho việc thực hiện bằng cách sử dụng các ràng buộc chính, tôi đã sử dụng Bàn phím Maestro ( Quickey cũng hoạt động tốt, nhưng nó không tương thích hoàn toàn với Lion). Ví dụ: đây là phím tắt Maestro Bàn phím của tôi (bị ràng buộc với-⇧-D):
Để xóa Line trong Xcode 10.1, vui lòng làm theo các bước của ảnh chụp màn hình bên dưới để thêm phím tắt.
Tôi biết rằng chủ đề này khá cũ nhưng tôi đã tìm thấy một giải pháp khác bằng BetterTouchTool , bạn có thể thực hiện chuỗi Ctrl+ A, Ctrl+ K, Ctrl+ Ktrong một phím tắt bằng cách định cấu hình như thế này trong BTT:
(Sử dụng nút Hành động bổ sung đính kèm để nối thêm phím tắt thứ hai và thứ ba)
PS: Đến từ Eclipse trong đó Cmd+ Dlà xóa dòng ^^
Bấm ba lần để chọn toàn bộ dòng, lệnh-c để chọn và lệnh-v hai lần để nhân đôi nó. Đây không phải là chức năng Xcode, nó chỉ là một phần của HĐH.
Sử dụng tập lệnh người dùng.
Có các kịch bản để di chuyển và xóa các dòng chưa. Bạn phải xác định các liên kết chính cho các tập lệnh đó (menu Tập lệnh -> Chỉnh sửa tập lệnh người dùng ... , trong xCode 3.2).
Để nhân đôi dòng, bạn phải tạo kịch bản của riêng bạn. Nhưng nó rất đơn giản! Sao y tập lệnh "Di chuyển xuống" và xóa dòng xóa văn bản đã chọn:
delete (paragraphs startLine through endLine)
Chúng tôi đang sử dụng Xcode 9.0 và các phím bấm vẫn không hoạt động. Thở dài.
Tôi thấy ý chính này rất hữu ích vì vậy đăng lại nó ở đây để tham khảo trong tương lai:
/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>
Không cần sửa đổi Xcode. Bạn chỉ có thể sử dụng Linex tiện ích mở rộng Xcode
Giải pháp của damien.flament hoạt động rất tốt và bạn có thể cần đặt đầu ra thành "Hủy đầu ra" xem hình dưới đây
Tái bút: Tôi không biết cách bình luận câu trả lời của anh ấy.
Như đã nói ở trên, đóng XCode và chèn vào ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
bên trong <dict>
trong <key>text</key>
phần:
<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>
Bắt đầu XCode và tận hưởng CTRL- SHIFT- Dvà CTRL- SHIFT- K.
Nếu bạn muốn CTRL- Dvà CTRL- K, sử dụng ^d
và ^k
trong các định nghĩa chính thay thế. Đảm bảo không có ràng buộc khóa trùng lặp trong tệp.
Hoạt động tốt với tôi với XCode 3.2
Điều này có thể sử dụng BetterTouchTool . CMD + D sẽ nhân đôi một dòng. Tạo một lối tắt mới như thế này:
Sử dụng nút Đính kèm hành động bổ sung để nối thêm phím tắt thứ hai và thứ ba
Nếu bạn đã tùy chỉnh các ràng buộc khóa Xcode của mình, bạn sẽ phải chỉnh sửa tệp : ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
. Chỉ cần thêm hai mảng (mô tả ở trên) vào Root/text
từ điển.
XCodePlus xóa plugin dòng, là một XCode thực hiện điều này cho bạn. Nó được cài đặt sẵn với trình quản lý gói lớp Methraz ...
Tuy nhiên, không có cách tích hợp nào để sao chép các dòng, kể từ Xcode 9. Và các ràng buộc khóa tùy chỉnh dường như có vấn đề.
Cập nhật: Xcode 10.0 beta 6 (10L232m) là như nhau.
Tới địa chỉ này:
/Appluggest/Xcode.app/Contents/Frameworks/IDEKit.framework/Resource/IDETextKeyBindingset
và sau đó sao chép tệp IDETextKeyBindingSet.plist ở một số nơi và sau đó mở tệp đã sao chép và chèn
selectLine:, copy:, paste:, paste: như hình ảnh này, nhập mô tả hình ảnh vào đây và lưu nó và thay thế tệp đã sao chép trong địa chỉ này /Appluggest/Xcode.app/Contents/Frameworks/IDEKit.framework/Resource/IDETextKeyBindingset
sau đó khởi động lại xcode, mở các tiền tố xcode, chuyển đến tab keybinding, tìm kiếm dòng trùng lặp (tùy chỉnh) và xác định khóa ngắn cho nó giống như hình ảnh bên dưới