私はANSI互換のCコードを書いているので、行(//
)コメントを使用できません。 Xcodeを使用しています。 Sublime TextとEclipse、および他のほとんどのIDEには、行コメントとブロックコメント(/**/
)用の個別のキーボードショートカットがあります。ただし、Xcodeには表示されません。実際、ブロックコメントを追加するメニューオプションも表示されません。 Xcodeでサポートされていないだけですか?もしそうなら、それは確かに不完全な決定のように思われるでしょう。
試して command + /。わたしにはできる。
したがって、コメントアウトするコードブロックを強調表示して、これら2つのキーを押すだけです。
更新:
私は怠zyで、ソリューションを完全に実装していなかったので、周りを検索して、最近リリースされたプラグインである BlockComment for Xcode を見つけました(June 2017) 。私のソリューションを気にしないでください、このプラグインは美しく動作します、そして私はそれを強くお勧めします。
元の回答:
上記のどれもXcode 7および8では機能しなかったので、私は:
次のコードを入力してください。
on run {input, parameters}
return "/*\n" & (input as string) & "*/"
end run
これで、Xcode-[サービス]メニューから、またはコメントしたいコードの選択したブロックを右クリックするか、[システム環境設定]でショートカットを指定して、そのサービスにアクセスできます。
XCode 8で次のことができるようになりました。
⌥ + ⌘ + /
docコメントを自動生成します。
ソース: https://Twitter.com/felix_schwarz/status/77416633016123392
これを可能にするXcodeプラグインがあります: CComment 。
これをインストールする最も簡単な方法は、すばらしい Xcode用のAlcatrazプラグインマネージャー を使用することです。
EDITAppleは悲しいことに(そして間違って、私見)Xcode 8で古いプラグインモデルを廃止しました。新しいプラグインシステムはかなり制限されていますが、このようなプラグインの開発を再度許可する必要があります。これに興味がある人は、 WWDC 2016セッション414 をご覧ください。また、書き込みまたは表示したいプラグインのAPIについては file radars をご覧ください。
UPDATE:Xcode 8アップデート
Xcode 8でできること:
⌥ + ⌘ + /
注:以下のメソッドはxcodeバージョンでは機能しません=> 8
Mac OS Xのエディターにブロックコメント機能を追加する非常に簡単な手順
テキストエリアに以下のアップルスクリプトを追加します
awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'
Block Comment
として保存キーボードショートカットを追加する
システム環境設定>キーボード>ショートカットを開き、+
をクリックして新しいショートカットを追加しますそして、4番目のステップでapplescriptに指定したのと同じ名前(つまり、Block Comment
)。 キーボードショートカットを追加し、Addボタンをクリックします。
これで、Xcodeまたは他のエディターでブロックコメントを使用し、テキストを選択し、ショートカットキーを使用してコードの行をブロックまたは右クリックして、コンテキストメニュー、このスクリプトに付けた名前が近くに表示されるはずです。ボトム。
Nikola Milicevic のコードを少し変更したので、コードが既にコメントされている場合はコメントブロックも削除されます。
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
これは非常に簡単に自分で割り当てることができます。ステップごとに説明します。
1.)xCode .mファイルに次のように入力します。空の領域であれば、どこに入力してもかまいません。
/*
*/
2.)2行のコードを強調表示して、「コードスニペットライブラリパネル」領域(ユーティリティパネルの下部にあります)にドラッグアンドドロップします。正しく実行すると、水色のプラス記号が表示されます。
3.)マウスボタンを離すと、新しいウィンドウがポップアップ表示され、名前やショートカットなどを追加するように求められます。示されているように。ご覧のとおり、//にショートカットを追加しました。したがって、ブロックコメントが必要になるたびに//と入力します。お役に立てれば
私はオートマタタスクを介してこれをうまく機能させることができ、ショートカットを使用してキーの組み合わせctrl + option + command + bにバインドしました。私がしなければならないのは、xcodeでコメントをブロックしたいコードを強調表示し、上記のキーを押すと、選択したテキストが/ * ... * /を使用してブロックコメントアウトされることです。
私はコードをかなり折りたたんで使用しているので、この機能が必要な理由は、コメント付きコードのブロックを簡単に折りたたむことができるようになったからです...
macオートマトンの使用に慣れていませんが、次のwwdcビデオの指示に従ってください
wWDC 2012ビデオセッション402-Xcodeの効率的な使用(約6分から)で、Mac OSX Automatorを使用して選択したテキストを操作するサービスを追加する方法の説明があります。ビデオに示されている例は、シェルコマンドsortおよびuniqを使用して、選択したテキストの重複を削除することです。このアプローチを使用しても同じことができますが、ビデオで彼が行うことの代わりに次のコマンドを入力します
awk 'BEGIN {print "/ "} {print $ 0} END {print " /"}'
(前の行には、何らかの理由で表示されていないアスタリスクが2つあることに注意してください....下のスクリーンショットに表示されるので、入力する正しいコマンドとしてコピーしてください)
このようなシェルスクリプトを実行する必要があります
これにより、選択したテキストに対して、コメント区切り文字が前後に配置されます。
保存するときは、名前を付けるオプション(ブロックコメントと呼びます)とキーボードショートカットを割り当てるオプションを取得する必要があります
xcodeを開き、テキストを選択して右クリックし、コンテキストメニューを表示すると、このスクリプトに付けた名前が下部近くに表示されます。
名前をクリックすると、スクリプトが実行され、選択したコードのコメントをブロックするか、割り当てたキーボードショートカットを使用します。
お役に立てれば
Xcodeのヘルプメニューの前に、ユーザースクリプトの編集があるシンボルがあります。コメントセクションのUn/Comment Selectionで、$ cCmt = "//"を変更します。 $ cCmt = "#";またはIDEが機能するものは何でも。次に、行とコマンド+ /(これは私のxcodeのデフォルトです)を選択することで、選択した行をコメント化およびコメント解除できます。
Add Documentation
アクションから自動生成されたコメントを変換する方法を探している場合( cmd-shift-/)あなたもそれが便利だと思うかもしれません:
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;
}
@Charles Robertsonの回答と同じように休みます。