Dòng mã Xcode trùng lặp


127

một Duplicatelệnh trong Menu Edit (với một phím tắt mặc định của D), nhưng nó là (như Halley chỉ ra) có nghĩa là cho sự trùng lặp ở phần giao diện Builder của Xcode.

Vậy, làm thế nào để bạn ( dễ dàng ) sao chép một dòng trong Xcode 4?


Câu hỏi liên quan (với câu trả lời hoạt động) cho Xcode 3 ... và không hoạt động cho Xcode 4.


Tại sao không chỉ sao chép và dán?

Bởi vì nó tẻ nhạt và đòi hỏi quá nhiều nhào lộn bằng tay:

hoặc (1) : di chuyển đến dòng bắt đầu và sau đó nhấn ⇧^E, sau đó sao chép với ⌘C, chuyển sang dòng mới, alligning con trỏ, và cuối cùng dán với ⌘V;

hoặc (2) : ^A(đặt con trỏ thành dòng bắt đầu), ^SPACE(đặt dấu), ^E(đặt con trỏ thành kết thúc dòng), ⇧^W( Select to Mark; tùy chỉnh), sao chép, dòng mới, v.v.

Như Frank Schröder (trong câu hỏi liên quan ) đặt nó:

Toàn bộ điểm KHÔNG được sử dụng các phím tắt Cmd-C / Cmd-V.


1
Chọn dòng và sao chép dán?
Dani

1
@Dani, CP chỉ là quá nhiều công việc (và sao chép dòng không phải là thứ chỉ cần phát sinh). :) Tôi đã cập nhật câu hỏi.
Blaz

1
Command-D dành cho sao chép điều khiển trong Interface Builder.
Hailei

@Halley, điều này là tốt để biết. Và nó có tương đương với-mouse-drag (cũng sao chép các thành phần giao diện) không?
Blaz

@courteous Mình nghĩ vậy. Phần Khóa sửa đổi trong disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/ cảm nói rằng "nhấn phím Tùy chọn trong khi thao tác kéo và thả sao chép các đối tượng đã chọn thay vì di chuyển chúng."
Hailei

Câu trả lời:


173
  1. Chuyển đến thư mục này chứa mặt tối của lực lượng:

    • Xcode 4.2 hoặc trước đó: /Developer/Library/PrivateFrameworks/IDEKit.framework/Resources
    • Xcode 4.3 trở lên : /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources.
  2. Mở IDETextKeyBindingSet.plist.

  3. Thêm một từ điển mới và một mục lệnh mới như ảnh chụp màn hình bên dưới (đặt tên cho chúng là những gì bạn muốn): Chỉnh sửa số nhiều

    Đó là: selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:

  4. Khởi động lại Xcode và đi đến Tùy chọn - Ràng buộc chính, tìm kiếm lệnh của bạn.

  5. Đặt tổ hợp phím cho lệnh: Tổ hợp phím

  6. Cuối cùng cũng giải phóng sức mạnh của các ràng buộc chính trên Xcode ... Hãy tận hưởng nó!


3
@MichalStefanow, vị trí mà bạn đã viết thực sự là cùng một vị trí/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resourcesbí danh trỏ đến. Mặt khác, tôi đã thực hiện thành công các bước của Halley trên phiên bản 4.3.2 ... Tôi khuyên bạn nên sao lưu tệp gốc và sau đó mở tệp đó bằng chính Xcode (chứ không phải trong TextEdit). Ngoài ra, liên quan đến các quyền: thay đổi chúng (chỉ đối với chính tệp; không cần đệ quy) trong Finder hoạt động tốt.
Blaz

29
Lớn hơnx! Đối với người dùng lười biếng - selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, xóaBackward:
Vlad Tsepelev

15
Nếu xCode của bạn gặp sự cố! Đóng xCode, mở tệp bằng bất kỳ trình soạn thảo văn bản nào và thêm từ điển của bạn: <key>Custom</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> </dict>
Vlad Tsepelev

2
Hoạt động với tôi trong XCode 4.4.1! Có một số vấn đề khi thay đổi quyền (công cụ tìm hoặc chmod 777 và bắt đầu với sudo từ thiết bị đầu cuối không hoạt động, vì một số lý do). Tôi đã sao chép tập tin sang một nơi khác, chỉnh sửa nó và ghi đè lên bản gốc, nó đã hoạt động.
Ixx

2
Tôi là nhà phát triển Android và khi tôi bắt đầu dùng thử ios dev, tôi đã nhận ra android studio (hay ý tưởng intellij) tốt như thế nào.
IlyaEremin

90

Cập nhật 2020

Hoạt động trên các phiên bản Xcode: 11.3.1 cũng vậy

Hoạt động trong các phiên bản Xcode: 7.1, 7.3, 7.3.1, 8.0, 8.1, 8.2, 8.3, 9.0, 9.1, 9.2, 10.0, 10.1, 10.2.1

Chỉ dẫn

  1. Cấp quyền để chỉnh sửa các tập tin sau. Hầu hết thời gian HĐH sẽ không cho phép bạn chỉnh sửa các tệp.

cho phiên bản 11.3.1

sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources//IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

dưới 11.3 phiên bản


sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
  1. Chỉnh sửa tệp, bằng cách viết lệnh sau: (Mở tệp bằng trình chỉnh sửa cao siêu hoặc văn bản nếu bạn có thể)

cho 11.3.1

open  

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

cho các phiên bản dưới đây

open /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  1. Nối các đoạn xml sau:
<key>custom</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>

Ảnh chụp màn hình

nhập mô tả hình ảnh ở đây

và Khởi động lại Xcode và đi đến Preferences - Key Bindings, tìm kiếm lệnh chúng tôi đã nhập (Dòng trùng lặp & Dòng trùng lặp).

nhập mô tả hình ảnh ở đây

Đó là nó.

Đối với người unix cần lưu ý: -

sudo chmod 755 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/ 

Nó hoạt động như một say mê! Tôi đã chỉnh sửa IDETextKeyBindingSet.plistvà thêm từ điển ở trên và sau đó ánh xạ các khóa trong Tùy chọn của XCode.
Randika Vishman

3
Đây là những câu trả lời mọt sách mà người dùng mac cần!
Luca Davanzo

1
Đối với XCode 10.1, tôi đã phải sử dụng chuỗi sau: moveToBeginningOfLine:, xóaToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank : . Big nhờ @tmsimont
marcelosalloum

1
đây là điều đầu tiên tôi Google bất cứ khi nào Xcode được cập nhật.
triển mới

1
Giải pháp này phù hợp với tôi hơn là câu trả lời được chấp nhận
khalid

18

Ok, tôi đã nghĩ ra điều này:

Phiên bản cho XCode 11:

selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:
  • không chạm vào clipboard
  • hoạt động với nhiều dòng
  • chọn các dòng được thêm vào, vì vậy có thể được sử dụng nhiều lần mà không cần chọn lại
  • lựa chọn cố định trong XCode 11
  • hoạt động tốt hơn với hoàn tác

Vì tôi đang áp dụng thay đổi này sau mỗi lần cập nhật XCode, tôi đã tạo một kịch bản cho điều đó. Có thể nó có thể gây ra một số thiệt hại, nhưng tôi đã cố gắng làm cho nó tương đối an toàn. Nó tạo một bản sao của tệp, và sau đó thay thế dòng bằng bản sao của nó và lệnh bổ sung bằng cách sử dụng perl. Yêu cầu XCode được cài đặt tại/Applications/Xcode.app

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Phiên bản cũ hơn (Tôi không chắc phiên bản mới có tương thích với phiên bản cũ hay không, vì vậy tôi sẽ giữ nó ở đây):

selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:

và tập lệnh cho phiên bản cũ hơn để tránh chỉnh sửa tập tin thủ công:

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

chỉnh sửa: sửa lỗi nhỏ edit2: đã thay đổi thành lựa chọn đoạn chỉnh sửa3: phiên bản đã thêm cho XCode 11


Thực sự cảm ơn vì điều này, tìm kiếm sự kết hợp này. Điều này có thể nhân đôi một dòng hoặc nhiều dòng mà không cần thêm newLines không mong muốn và ctrl-z cũng hoạt động tốt.
mkeremkeskin

Cảm ơn, đó là những gì gần gũi nhất với hành vi của IntelliJ IMHO
OxyFlax

17

Hôm nay tôi đã viết một plugin rất nhỏ cho Xcode 5 để xóa và sao chép các dòng và lựa chọn.

Bạn có thể tải xuống từ repo GitHub của tôi: Plugin XcodeKit - https://github.com/ptfly/XcodeKit


Tôi vừa tải xuống và cài đặt cái này - Bạn cũng có thể sử dụng Tùy chọn hệ thống để đặt phím tắt cho các lệnh. Rất đẹp!
Orion Edwards

Giải pháp tốt nhất là bởi vì cái này sẽ không phá vỡ clipboard của bạn hiện tại. Để thêm các phím bấm: Tùy chọn hệ thống -> bàn phím -> phím tắt -> phím tắt ứng dụng -> '+'. Ở đó chọn Xcode và tiêu đề menu, ví dụ 'Xóa lựa chọn / Dòng'
Sjoerd Perfors 18/214

Tôi chỉ cần cài đặt này. TUYỆT VỜI, vì một số lý do, trình đơn "Sao y" của tôi khi chỉnh sửa bị mờ đi. Mặc dù tôi đã chọn một dòng trong trình chỉnh sửa, con trỏ và đã thử chọn toàn bộ dòng.
John Ballinger

Điều này là hơn cả tuyệt vời. Cảm ơn bạn!
0x6A75616E

nó không làm việc cho tôi "Bản sao" bị mờ đi và phím tắt cũng không hoạt động.
SquareBox

13

Câu trả lời của @ Hailei khá hay, nhưng có tác dụng phụ đáng tiếc trong việc ghi đè các nội dung trong bảng tạm (để lại nội dung của dòng trùng lặp), đó chính xác là một phần của phương pháp sao chép / dán thủ công mà tôi đang cố gắng tránh .

Vì vậy, tôi đã thay đổi chuỗi lệnh này:

moveToBeginningOfLine:,
deleteToEndOfLine:,
yank:,
insertNewline:,
moveToBeginningOfLine:,
yank:

2 yank:giây có thể không hoạt động như dự định nếu bạn đã NSTextKillRingSizeđặt sang một thứ gì đó ngoài 1, nhưng tôi khá chắc chắn 1là mặc định và bạn phải thực hiện một số công việc không tầm thường để thay đổi nó (nó yêu cầu thêm một mục vào ~/Library/Preferences/.GlobalPreferences.plist).


Tôi đề nghị sử dụng lệnh defaults write -g NSTextKillRingSize 1thay vì chơi với GlobalPreferences.plist. ;)
dbernard

@amas Có thể bạn cần sao chép tệp ở nơi khác trước khi sửa đổi tệp rồi ghi đè tệp gốc, trừ khi bạn muốn mạo hiểm thay đổi quyền trên thư mục gốc.
nipponese

điều này gần như hoạt động, nhưng vì một số lý do, một loạt các khoảng trắng được thêm vào cuối dòng trùng lặp .. có ý tưởng nào tại sao không?
tmsimont

5
nếu sửa nó với sửa đổi này:moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank:
tmsimont

Đây phải là câu trả lời được đề xuất (theo hướng dẫn của @ Hailei). Cảm ơn!
brkeyal

9

Tôi tự hỏi tại sao không ai đề cập đến việc sử dụng cùng với các phím mũi tên ( ) để di chuyển con trỏ và chọn toàn bộ dòng (bằng cách thêm ).

Tôi thường xuyên sao chép toàn bộ dòng (trùng lặp) bằng cách di chuyển con trỏ đến đầu dòng bằng + (thay vì ctrl+ A) và sau đó sử dụng + + (thay vì ctrl+ +E ) để chọn toàn bộ dòng đến cuối rồi sao chép / dán.

Tôi đã chạy vào các chủ đề khác, nơi dường như không ai sử dụng các phím tắt này. Chúng là toàn cầu trong OS X và tôi sử dụng chúng mọi lúc! Ít nhào lộn bằng tay;)


Điều này đòi hỏi nhiều "nhào lộn bằng tay" hơn là sao chép chỉ với 1 hành động / tổ hợp phím ... đó là cách tôi sao chép văn bản trong trình soạn thảo văn bản hoặc trình duyệt web, vâng, nhưng tôi mong đợi một chút từ IDE.
Ixx

1
Ngoài ra, với lối tắt dòng trùng lặp, bạn không ghi đè lên nội dung của bảng tạm. Nhiều lần tôi sao chép một cái gì đó, sao chép mã và muốn dán nó - với phương pháp của bạn, bạn phải sao chép lại.
Ixx

Vâng vâng. Nhưng ít hơn so với cách đề xuất của OP. Tôi có thể đồng ý rằng một lệnh duy nhất sẽ là tốt nhất. Tôi chỉ nghĩ rằng tôi sẽ chỉ ra một sự thay thế.
Baldur

1
điều này vẫn tốt hơn so với không có gì ngoài hộp. tôi ước rằng cmd + C / X không có lựa chọn nào sẽ chỉ sao chép / cắt toàn bộ dòng như các biên tập viên khác làm ...
manroe

@Baldur Đây là những gì tôi làm là tốt. cmd + cmd trái + shift + cmd phải + c cmd + phải nhập cmd + cmd trái + p. Với 7 lần nhấn phím, có thể dễ dàng thực hiện trong vòng chưa đầy 3 giây, tuy nhiên, nó vẫn khá tẻ nhạt so với ctrl + d như trong nhiều trình soạn thảo văn bản. Thật không may, điều này không được tích hợp vào xcode, hoặc nói chung, phần mềm mac và apple không có các phím nóng tốt hơn.
csga5000

9

EDIT: ngày 12 tháng 7 năm 2020 Sau khi cập nhật lên Xcode 11.5 một lần nữa, duplicate linemục nhập khóa của tôi từ plisttệp đã biến mất. Tôi đã phải thêm nó một lần nữa. Các ràng buộc quan trọng vẫn còn đó mặc dù.

EDIT: ngày 17 tháng 9 năm 2019 Sau khi cập nhật lên Xcode 10.3 một lần nữa, duplicate linemục nhập khóa của tôi từ plisttệp đã biến mất. Tôi đã phải thêm nó một lần nữa. Các ràng buộc quan trọng vẫn còn đó mặc dù.

EDIT: 28 tháng 5 năm 2019 Sau khi cập nhật lên Xcode 10.2, duplicate linemục nhập khóa của tôi từ plisttệp đã biến mất. Tôi đã phải thêm nó một lần nữa. Các ràng buộc quan trọng vẫn còn đó mặc dù.

EDIT: ngày 23 tháng 12 năm 2018 Sau khi cập nhật lên Xcode 10.1, tất cả các phím tắt của tôi đã bị hỏng một lần nữa. Nhưng một điều khác biệt là sau khi cập nhật tệp plist để sao chép dòng, tôi không phải xác định các ràng buộc chính của mình, chúng đã ở đó. Lạ thật.

EDIT: 14 tháng 10 năm 2018 Xcode 10: Ai đó cao cấp tại Apple thực sự thích sao chép / dán và đảm bảo rằng với mọi phiên bản cập nhật Xcode, việc sao chép dòng được xóa khỏi cài đặt của mọi người. Các nhà phát triển của chúng tôi đã vô cùng thất vọng bởi sự vô nghĩa này xảy ra trong Xcode mãi mãi, IDE duy nhất không có tùy chọn sao chép dòng. Tôi vừa cập nhật lên Xcode 10, và như bạn đoán nó - tất cả các phím tắt của tôi được xóa cùng với chức năng sao chép dòng của tôi. Tuy nhiên, nó có thể sửa được như trong câu trả lời ban đầu. Một sự khác biệt nhỏ lần này là bạn sẽ cần dòng sau:

<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>

EDIT: Xcode 9: Tôi đã phải làm lại các phím tắt và sao chép và xóa dòng, nhưng điều tốt là bây giờ bạn có thể chỉnh sửa lại IDETextKeyBindingSet.plist. Anh chàng cao cấp này của Apple phải nghỉ phép khi họ phát hành phiên bản này.

EDIT: Xcode 8: Buggy, bạn hoàn toàn không thể sửa đổi tệp IDETextKeyBindingSet.plist. Xcode đặt lại nó khi bắt đầu. Anh chàng cao cấp này tại Apple thực sự quyết tâm khiến chúng tôi sử dụng bản sao / dán thay vì sao chép dòng đơn giản như trong tất cả các IDE khác ngoài kia.

EDIT: Xcode 7.1 và vẫn không có phím tắt để sao chép và xóa dòng. Đây là IDE duy nhất tôi từng làm việc không có phím tắt như vậy. Và tôi không thể tưởng tượng cuộc sống của một nhà phát triển mà không có hai phím tắt quan trọng này.

Đây là cách nó có thể được thực hiện:

Trước tiên, chúng ta cần sửa đổi một tệp plist nằm trong gói Xcode.app (cần sudo để chỉnh sửa)

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Sau đó tìm <key>Insertions and Indentations</key>và bên dưới <dict>thẻ thêm vào như sau:

<key>Insert New Line Below</key>
<string>moveToEndOfLine:, insertNewline:</string>
<key>Insert New Line Above</key>
<string>moveUp:, moveToEndOfLine:, insertNewline:</string>
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>

Sau đó tìm và những thứ bên trong phần <key>Deletions</key>dưới <dict>thẻ:

<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>

nhập mô tả hình ảnh ở đây

Bây giờ, hãy mở / Khởi động lại Xcode, đi tới Tùy chọn và chuyển đến tab Thẻ khóa ràng buộc. Sử dụng thanh tìm kiếm để lọc và tìm kiếm các phím tắt mới. Sau đó bấm vào phía trước mô tả phím tắt để gán cho nó một lối tắt theo ý thích của bạn. Hãy chắc chắn rằng phím tắt của bạn không xung đột với các phím tắt hiện có.

nhập mô tả hình ảnh ở đây


8

Tại sao nhân đôi một dòng? Sao chép toàn bộ đoạn văn là tốt hơn. Trình tự của tôi:

Bản sao đoạn hiện tại

selectParagraph:,
delete:,
yank:,
moveToBeginningOfParagraph:,
yank:,
moveUp:,
moveToEndOfParagraph:

Xóa đoạn hiện tại

selectParagraph:,
delete:,
moveUp:,
moveToEndOfParagraph:

Hoạt động tốt trong Xcode 4.6


Đồng ý, thao tác các đoạn văn là vượt trội so với các dòng. Mọi người, làm cho trình soạn thảo của bạn đủ hẹp để bọc văn bản và cố gắng sử dụng các lệnh dòng.
Logan Moseley

Cửa sổ của bạn nhỏ đến mức nào. Cân nhắc việc chia mã của bạn thành các dòng nhỏ hơn nếu điều đó xảy ra thường xuyên.
tuyệt vời

3

Tôi sẽ xem xét sửa đổi chuỗi lệnh thành:

selectLine:,
copy:,
moveToEndOfLine:,
insertNewline:,
deleteToBeginningOfLine:,
paste:,
moveToBeginningOfLine:, 
deleteBackward:

Việc bổ sung deleteToBeginningOfLineduy trì sự thụt dòng của dòng trùng lặp.


Điều này hoạt động rất tốt khi tôi nhận ra rằng tôi phải trao đổi các dòng mới (ưa nhìn) với một khoảng trắng sau dấu phẩy.
McUsr

2

insertLineBreak cần ít nhất là cho tôi để sao chép trên dòng mới, không có nó tôi đã sao chép trên cùng một dòng


2

Tôi gặp rắc rối lớn khi mở khóa tệp .plist trên MacOS Sierra và Xcode 9, ngay cả quyết định @Tim cũng không hiệu quả với tôi. Nếu bạn có cùng một vấn đề, đi đến thiết bị đầu cuối và làm điều này:

cd /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
sudo chmod -R 777 *
nano IDETextKeyBindingSet.plist

Vài cách khác có thể để làm điều này cũng được mô tả ở đây .

Sau đó, trong trình chỉnh sửa nano, nhấp ^Wvà nhập 'phần chèn' để chuyển đến phần 'Phần chèn và phần lõm'. Ngay dưới <dict>thẻ dán đoạn xml này:

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewLine:, paste:, deleteBackward:</string>

Nhấn control + X, sau đó Y, Enterđể lưu tệp trong trình chỉnh sửa nano.

CẬP NHẬT: Tôi đã đưa ra một quyết định tốt hơn, trong đó thêm một dòng bổ sung trước khi sao chép (hữu ích khi bạn muốn sao chép một dòng có một dòng khác ngay bên dưới nó):

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertLineBreak:, moveUp:, paste:, moveToBeginningOfLine:</string>

1

Đây là Xóa ( CTRL+ D) và Sao y của tôi ( CMD+ SHIFT+D ) từ IDETextKeyBindingSet.plist của tôi. (trong /Appluggest/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resource)

Tôi chỉ thiết lập những thứ này trong Xcode 4.6.1 (dựa trên câu trả lời từ user570753 ở trên và ở nơi khác)

    <key>Custimozed</key>
<dict>
    <key>Delete Current Line</key>
    <string>deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, deleteToBeginningOfLine:, paste:, moveToBeginningOfLine:, deleteBackward:</string>
</dict>

0

Bất kỳ người dùng văn bản tuyệt vời mà tôi muốn để phù hợp tuyệt vời của duplicateLineUpduplicateLineDown trong XCode, hãy thêm những điều sau đây để bạn IDETextKeyBindingSet.plist tập tin

<key>Line Duplications</key>
<dict>
    <key>Duplicate Current Line Above</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:, moveUp:</string>
    <key>Duplicate Current Line Below</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>

0

Trong trường hợp bất kỳ ai khác bị từ chối truy cập để chỉnh sửa IDETextKeyBindingSet.plist, bạn có thể cấp cho mình quyền đọc / ghi bằng cách:

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist

0

Chỉ để bổ sung cho câu trả lời của Hailei, các lệnh làm việc tốt nhất với tôi là:

selectLine:, copy:, moveRight:, moveLeft:, insertNewline:, paste:, deleteBackward:

Đối với tôi, các lệnh được đề xuất của ông là sao chép dòng mong muốn hai dòng dưới đây.


0
<key>Duplicate Lines</key>    
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:</string>

Hỗ trợ (các) dòng trùng lặp. (Điều này hoạt động trong Xcode 9.2)


0

Đối với Xcode 11, không có cái nào ở trên làm việc cho tôi. Câu trả lời đầu tiên có một hành vi kỳ lạ khi nó đang chèn dòng sau dòng tiếp theo. Câu trả lời sau đây, tuy nhiên, làm việc cho tôi.

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.