Có một phím tắt để tạo một bình luận khối trong Xcode không?


152

Tôi đang viết mã C tương thích ANSI và do đó tôi không thể sử dụng //nhận xét dòng ( ). Tôi đang sử dụng Xcode. Trong Sublime Text và Eclipse, và tôi nghĩ rằng hầu hết các IDE khác, có các phím tắt riêng biệt cho các nhận xét dòng và chặn nhận xét ( /**/). Tuy nhiên, tôi không thấy điều đó trong Xcode - thực tế, tôi thậm chí không thấy tùy chọn menu để thêm nhận xét chặn. Có phải nó chỉ đơn giản là không được hỗ trợ trong Xcode? Đó chắc chắn sẽ là một quyết định khập khiễng nếu vậy.


Bạn có gần gũi hơn với một giải pháp? Ngoài ra, một câu hỏi giống hệt đã được hỏi hơn một năm trước (và thật đáng buồn, cũng không được trả lời).
Blaz

Và việc thiết lập một phím tắt / phím tắt cũng sẽ có lợi cho các ngôn ngữ khác, vì các bình luận khối có thể, như là một dấu hiệu trực quan cho mã cũ nhưng chưa bị xóa, trong khi các //bình luận thông thường sẽ vẫn là các bình luận "thực". Nếu không, bạn không thể nói (trong nháy mắt) những gì.
Blaz

Chào! Bạn đã tìm thấy các phím tắt? cảm ơn
Frade

Vẫn đang tìm kiếm một cái gì đó như thế này. Eclipse đủ thông minh để xây dựng nó sau /* + Return, nhưng Xcode chỉ đưa bạn xuống vị trí cột 0 trên dòng tiếp theo.
Craig Otis

Không thể tin rằng ngay cả trong Xcode 9, nó bao bọc tất cả ("", (), {}, []), không có cách nào để làm điều tương tự theo bất kỳ cách nào để bình luận khối ... Năm này qua năm khác, với mỗi lần phát hành. Nếu 'đoạn mã' có thể sử dụng một số mã thông báo cho 'lựa chọn', thì cũng sẽ rất tuyệt ...
bauerMusic

Câu trả lời:


231

Hãy thử command+ /. Nó làm việc cho tôi.

Vì vậy, bạn chỉ cần làm nổi bật khối mã bạn muốn nhận xét và nhấn hai phím đó.


39
Tôi không nghĩ rằng bạn đã đọc câu hỏi của tôi, hoặc bạn sẽ thấy rằng tôi nói rõ ràng rằng tôi không thể sử dụng //nhận xét, đó là những gì lệnh / sản xuất.
limp_chimp

1
Các phím tắt để bỏ ghi chú là gì?
Nizam

13
@Nizam Chỉ cần nhấn Command+ Shift+ 7, tức là Command+ /, một lần nữa.
muenchdo

4
Bất kể thực tế câu trả lời này không giải quyết được câu hỏi cụ thể, nó xuất hiện rất gần với đầu tìm kiếm của Google về "phím tắt nhận xét Xcode" vì vậy phải có một số độ tin cậy - tôi thừa nhận sau khi đọc câu hỏi này, đây là quyền Trả lời để có thể câu hỏi của bạn là một chút phức tạp. Tôi sẽ xem xét lệnh + / trên thực tế là một khối, theo tiêu đề câu hỏi của bạn. Dù bằng cách nào, đây là một giải pháp cực kỳ hữu ích - cảm ơn.
nocarrier

10
điều này dường như đã ngừng hoạt động trong Xcode 8.0, ở đâu, oh, đã Cmd-/đi đâu?
bshirley

41

CẬP NHẬT:

Vì tôi lười biếng và không thực hiện đầy đủ giải pháp của mình, tôi đã tìm kiếm xung quanh và tìm thấy BlockVer cho Xcode , một plugin được phát hành gần đây ( tháng 6 năm 2017 ). Đừng bận tâm với giải pháp của tôi, plugin này hoạt động rất đẹp và tôi đánh giá cao nó.

TRẢ LỜI GỐC:

Không có cái nào ở trên làm việc cho tôi trên Xcode 78 , vì vậy tôi:

  1. Tạo dịch vụ Automator bằng AppleScript
  2. Hãy chắc chắn rằng "thay thế sản phẩm đã chọn văn bản" được kiểm tra
  3. Nhập mã sau:

    on run {input, parameters}
    return "/*\n" & (input as string) & "*/"
    end run

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

Giờ đây, bạn có thể truy cập dịch vụ đó thông qua Xcode - Menu Dịch vụ hoặc bằng cách nhấp chuột phải vào khối mã đã chọn mà bạn muốn nhận xét hoặc đặt phím tắt trong Tùy chọn hệ thống.


1
Bạn là một thiên tài. Tôi đã thử thực hiện tất cả các câu trả lời khác trong bài đăng này, bao gồm giải pháp 'Automator -> Run Shell Script' và không có câu trả lời nào hoạt động, ngoại trừ câu trả lời của bạn. AppleScript chiến thắng trong ngày. Tôi ủng hộ câu trả lời của bạn ...
Charles Robertson

Mát mẻ. Rất vui vì nó đã giúp bạn ra ngoài :)
Nikola Milicevic

Tôi biết điều này là một chút táo tợn, nhưng bạn có biết làm thế nào tôi có thể bảo vệ thụt lề, khi áp dụng các bình luận khối này? Ví dụ, trong XCode, hầu hết mã của tôi được thụt lề ở một mức độ nào đó và nó trông gọn gàng hơn khi nhận xét bảo toàn thụt lề. Điều này sẽ bắt chước hành vi của phong cách bình luận khối bản địa. Cảm ơn ...
Charles Robertson

Hmm bạn có thể cung cấp một ảnh chụp màn hình? Bởi vì nó nên bảo tồn vết lõm. Và để có kết quả tốt nhất, bạn nên chọn toàn bộ dòng, như trong ví dụ.
Nikola Milicevic

Làm thế nào để bạn làm khối uncomment?
Abhishek Bedi

36

Bây giờ với xCode 8, bạn có thể làm:

+ +/

để tự động tạo một bình luận doc.

Nguồn: https://twitter.com/felix_schwarz/status/774166330161233920


1
Điều này không phù hợp với tôi khi thực hiện với Swift và nhấn, tùy chọn, lệnh, /. Tôi đã làm gì sai? Tôi chỉ nhận \\\ Descriptionvà không phải là khối tài liệu với @params, v.v.
Jonnny

Đó là vì chức năng của bạn không cung cấp bất kỳ tham số nào
Beninho85

23

Hiện tại đã có một plugin Xcode cho phép điều này: CComment .

Cách dễ nhất để cài đặt này là sử dụng trình quản lý plugin tuyệt vời cho Trắc nghiệm cho Xcode .

EDIT Apple đã buồn bã (và sai, IMHO) đã gỡ bỏ mô hình plugin cũ bằng Xcode 8. Hệ thống plugin mới khá hạn chế, nhưng nên cho phép phát triển lại một plugin như thế này một lần nữa. Đối với bất kỳ ai quan tâm đến việc này, hãy xem WWDC 2016 phiên 414 . Ngoài ra, vui lòng gửi radar cho API cho các plugin bạn muốn viết hoặc xem.


Cảm ơn, @BugsBunny - câu trả lời của tôi mới hơn nhiều so với câu hỏi, vì vậy tôi đoán không ai thấy nó cho đến bây giờ :)
fzwo

2
Điều này không hoạt động từ Xcode 6.3 (Phiên bản 6.3.1 (6D1002)) trở đi. Không có plugin hoạt động.
Abhishek Bedi

@AbhishekBedi Xem stackoverflow.com/questions/30361228/ Khăn để khắc phục sự cố plugin chung cho các phiên bản Xcode mới.
fzwo

12

CẬP NHẬT: Cập nhật Xcode 8

Bây giờ với xcode 8 bạn có thể làm:

+ +/

Lưu ý: Phương pháp bên dưới sẽ không hoạt động trong phiên bản xcode => 8

Các bước rất đơn giản để thêm chức năng Block Comment vào bất kỳ trình chỉnh sửa nào của mac OS X

  1. mở Automator
  2. Chọn dịch vụ
  3. Tìm kiếm Run Shell Script và nhấp đúp vào nó

Thêm các applescript dưới đây trong textarea

awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'

kịch bản apple cho bình luận khối

  1. Lưu tập lệnh dưới dạng Block Comment

Thêm một phím tắt

Mở tùy chọn hệ thống> Bàn phím> Phím tắt , thêm phím tắt mới bằng cách nhấp +và phải cùng tên tức là Block Commentnhư bạn đã đưa cho applescript trong bước 4. Thêm Phím tắt bàn phím của bạn và nhấp vào nút Thêm .

Phím tắt mới

Bây giờ bạn sẽ có thể sử dụng nhận xét khối trong Xcode hoặc bất kỳ trình chỉnh sửa nào khác, chọn một số văn bản, sử dụng phím tắt để chặn nhận xét bất kỳ dòng mã nào hoặc nhấp chuột phải, menu ngữ cảnh và tên bạn đặt cho tập lệnh này sẽ hiển thị gần phía dưới


Không cần phải viết "Upvote nếu nó hoạt động" trong câu trả lời. Mọi người sẽ upvote nếu họ thấy nó hữu ích.
taskinoor

@Baig Đây là một câu trả lời thực sự tốt, mà tôi quản lý để thực hiện chính xác. Nhưng khi tôi chọn một đoạn văn bản và chạy phím tắt ctrl + tùy chọn + lệnh + b, không có gì xảy ra. Ngay cả khi tôi sử dụng menu ngữ cảnh, không có gì xảy ra? Thật là xấu hổ, bởi vì tôi chắc chắn rằng điều này sẽ làm việc. Đừng bận tâm, ít nhất, tôi đã học được cách sử dụng Automator. Thật là một ứng dụng tuyệt vời!
Charles Robertson

@Baig Tôi có cần khởi động lại máy tính không?
Charles Robertson

@Baig Điều kỳ lạ là khi tôi kiểm tra nó trong cửa sổ đầu ra của Automator 'Run Shell Script', nó hoạt động tốt. Có lẽ, tổ hợp phím tắt của tôi đã được sử dụng và điều này có thể đang chặn nó? Nhưng, chức năng menu ngữ cảnh cũng không hoạt động? Điều này đang làm phiền tôi ...
Charles Robertson

Điều này đã làm việc hoàn hảo trong phiên bản osx trước. Tôi kiểm tra nó, nó không hoạt động bây giờ.
Baig

7

Tôi đã sửa đổi mã của Nikola Milicevic một chút để nó cũng xóa khối nhận xét nếu mã đã được nhận xét:

on run {input, parameters}
    repeat with anInput in input
        if "/*" is in anInput then
            set input to replaceText("/*", "", input as string)
            set input to replaceText("*/", "", input as string)

            return input
            exit repeat
        end if
    end repeat
    return "/*" & (input as string) & "*/"
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

Hy vọng điều này sẽ giúp được ai đó.nhập mô tả hình ảnh ở đây


7

Trong XCode 10, bạn có thể sử dụng tùy chọn + lệnh + dấu gạch chéo ngược để viết một nhận xét đẹp cho chức năng hoặc lớp của bạn như dưới đây:

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


6

Bạn có thể tự chỉ định điều này rất dễ dàng, ở đây đi từng bước giải thích.

1.) Trong tệp xCode .m của bạn, hãy nhập như sau, không quan trọng bạn nhập ở đâu miễn là đó là một vùng trống.

/*
*/

2.) Đánh dấu rằng hai dòng mã sau đó kéo và thả vào khu vực 'bảng điều khiển thư viện đoạn mã' (nó nằm ở phần dưới cùng của bảng Tiện ích). Một dấu cộng màu xanh nhạt sẽ hiển thị nếu bạn làm đúng.

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

3.) Sau khi bạn buông nút chuột, một cửa sổ mới sẽ bật lên và sẽ yêu cầu bạn thêm tên, cắt ngắn, v.v. như được hiển thị. Như bạn thấy tôi đã thêm phím tắt của mình vào //. Vì vậy, mỗi khi tôi muốn bình luận khối, tôi sẽ gõ //. Hi vọng điêu nay co ich

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


bạn vẫn có thể làm điều này trong XCode 10, khu vực 'bảng điều khiển thư viện đoạn mã' vừa được di chuyển. tìm { }biểu tượng ở phía trên bên phải của khu vực biên tập.
manroe

1

tôi quản lý để làm cho điều này hoạt động tốt thông qua một tác vụ tự động hóa và đã sử dụng phím tắt để liên kết nó với tổ hợp phím ctrl + tùy chọn + lệnh + b. tất cả những gì tôi phải làm là làm nổi bật mã tôi muốn khối nhận xét trong xcode và nhấn các phím trên và văn bản đã chọn được chặn nhận xét bằng cách sử dụng / * ... * /.

Tôi sử dụng mã gấp một chút công bằng vì vậy lý do tôi muốn chức năng này là vì vậy tôi có thể dễ dàng gập xuống một khối mã nhận xét ... mã nhận xét theo cách thông thường bằng cách sử dụng // không gấp.

Tôi không quen với việc sử dụng máy tự động mac nhưng tôi chỉ đơn giản là đã theo dõi Barsux trong video wwdc sau đây

trong video WWDC 2012 Phiên 404 - Hoạt động hiệu quả với Xcode (từ khoảng 6 phút trở đi) có mô tả về cách sử dụng Mac OSX Automator để thêm dịch vụ để thao tác văn bản đã chọn. Ví dụ hiển thị trong video là để loại bỏ các bản sao trong một lựa chọn văn bản bằng cách sử dụng các lệnh shell sort và uniq. Sử dụng phương pháp này bạn cũng làm tương tự nhưng bạn nhập lệnh sau thay vì những gì anh ta làm trong video

awk 'BEGIN {in "/ "} {in $ 0} END {in " /"}'

(lưu ý có nghĩa là có 2 dấu sao ở dòng trước mà vì lý do nào đó không hiển thị .... chúng hiển thị trong ảnh chụp màn hình bên dưới để sao chép đó là lệnh chính xác để nhập)

cuối cùng bạn nên chạy một kịch bản shell như thế này

ảnh chụp màn hình

điều này sẽ, đối với bất kỳ văn bản đã chọn nào, sẽ đặt các dấu phân cách nhận xét trước và sau.

Khi bạn lưu nó, bạn sẽ có các tùy chọn để đặt tên cho nó (tôi gọi nó là blockcomment) và cũng để gán phím tắt

sau đó bạn sẽ có thể mở xcode, chọn một số văn bản, nhấp chuột phải, menu ngữ cảnh và tên bạn đã đặt cho tập lệnh này sẽ hiển thị ở gần cuối

chỉ cần nhấp vào tên và tập lệnh sẽ chạy và chặn nhận xét mã đã chọn hoặc sử dụng phím tắt bạn đã gán.

hi vọng điêu nay co ich


Nó lộn xộn nhưng tôi đã làm một cái gì đó tương tự với Bàn phím Maestro và awk để tạo tiêu đề cho các phương thức. Swift là một công việc nhiều hơn một chút vì vậy tôi vẫn chưa giải quyết nó.
Lloyd Sargent

0

Có một biểu tượng trước menu trợ giúp trên xcode có Chỉnh sửa tập lệnh người dùng. Trên Un / Comment Selection trong phần bình luận thay đổi $ cCmt = "//"; đến $ cCmt = "#" của tôi; hoặc bất cứ điều gì IDE của bạn làm việc với. Sau đó, bằng cách chọn các dòng và lệnh + / (Đó là mặc định xcode của tôi), bạn có thể nhận xét và bỏ ghi chú các dòng đã chọn.


0

@Nikola Milicevic

Dưới đây là ảnh chụp màn hình của vấn đề thụt đầu dòng. Điều này là rất nhỏ, nhưng thật lạ là nó dường như hoạt động rất tốt, trong ví dụ trực quan của bạn.

Tôi cũng đang thêm một ảnh chụp màn hình thiết lập Automator của mình ...

Cảm ơn

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

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

Cập nhật:

Nếu tôi thay đổi tập lệnh một chút thành:

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

Và sau đó chọn dòng đầy đủ trong XCode, tôi nhận được kết quả mong muốn:

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

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


1
Ồ, vâng. Tôi đã không thêm dòng mới sau khi đóng bình luận, tôi thích nó hơn mà không có nó. Tốt bạn đã tìm ra nó.
Nikola Milicevic

0

Nếu bạn đang tìm cách chuyển đổi nhận xét được tạo tự Add Documentationđộng từ hành động (có sẵn trong cmd- shift- /), bạn cũng có thể thấy nó hữu ích:

function run(input, parameters) {
  var lines = input[0].split('\n');
  var line1 = lines[0];
  var prefixRe = /^( *)\/\/\/?(.*)/gm;
  var prefix = prefixRe.test(line1) ? line1.replace(prefixRe, "$1") : ""

  var result = prefix + "/*\n";  
  lines.forEach(function(line) {
    result += prefix + line.replace(prefixRe, "$2") + '\n';
  });
  result += '\n' + prefix + ' */';
  return result;
}

Phần còn lại giống như trong câu trả lời của @Charles Robertson:

Máy tự động

Dịch vụ


0

Trong xcode 11.1 swift 5.0

chọn mã bạn muốn thêm bình luận khối sau đó nhấn + +/

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


-1

Cmd+ Shift+ 7sẽ bình luận các dòng đã chọn.


Bạn có thể vui lòng xác định trong những điều kiện nó hoạt động? Với tôi nó không ...!
SeF

Có lẽ có nghĩa là Cmd+ /. Dường như ít nhất là bố trí bàn phím tiếng Đức/trên 7chìa khóa, nhưng về bố cục của Mỹ /là trên chìa khóa riêng của mình mà không cần thay đổi.
Jake Cobb

Tôi có /qua 7phím trên bàn phím bố trí Na Uy là tốt, nhưng nó vẫn không làm việc .. shortcut này chỉ đơn giản là mở Help-menu
Sti

-1

trong Macbook, bạn có thể sử dụng shift+ cmd+ 7để nhận xét một khối được tô sáng trước đó


-11

Có vẻ như đã có rất nhiều người trả lời câu hỏi này.

trong Swift 3.0, nhận xét một dòng là đưa hai dấu gạch chéo lên phía trước: "//"; multiline được đặt "/ * .... * /".

Hi vọng điêu nay co ich.

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.