1 件の投稿を表示中 (合計 8 個)
  • 作成者
    投稿
  • #24666
    ebifurai55
    参加者

    例えば、
    HTMLだったら<!– –>とかCSSだったら/* */だったりだとか、

    その言語によってショートカットキーでコメントできたら良いなと

    思います。できれば何も選択してない状態だったら、1行を/* */で囲んだり、

    複数行だったら複数行を/* */を囲めたり、Sublime Textだったら出来た事が

    EmEditorでも出来る様になったら良いと思います。もうすでにできるのかも

    しれませんが、標準で出来た方が良いと思います。その様な方法はありますでしょうか?

    #24667
    redakt55
    参加者

    私からもお願いします。

    Atom も Ctrl + / で,その言語に応じたコメント化/非コメント化ができます(トグル動作)。
    作業効率とストレスフリー度がぜんぜん違うんですよ。

    #24668
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    既定では、

    Ctrl + K, C コメントを設定
    Ctrl + K, U コメントを解除

    となります。これらは、2段階のショートカット キーになります。

    1 段階のショートカット キーに割り当てたい場合には、設定のプロパティの [キーボード] ページ、または、ヘルプ メニューの [キーマップ] で、自由に好きなショートカット キーに割り当て、変更していただけます。

    よろしくお願い申し上げます。

    #24703
    redakt55
    参加者

    コメント化/非コメント化のショートカットがあるとは知りませんでした。

    少し不便なのが,①二段階であること,②コメント化と非コメント化でショートカットが違うこと,ですが,現状でもかなりありがたい機能です。

    質問です。
    Ctrl + K, C および Ctrl + K, U は,[編集]→[選択範囲の変換]→[コメント挿入]/[コメント削除]と同じものでしょうか。
    であれば,メニューの横にショートカットも表示していただけないでしょうか。

    ところで,「コメント挿入」「コメント削除」は適切な表現でないように思います。
    というのは,これは選択したものをコメント化するのであって,そこにコメントを挿入するわけではないし,コメント記号を取り除いて非コメント化するのであって,コメント自体を削除してしまうわけではないからです。
    「コメント化」「非コメント化」ではダメでしょうか。

    次に要望です。

    Ruby で,範囲選択した状態でコメント化すると,選択範囲の先頭・末尾にそれぞれ「=begin」「=end」が挿入されます。
    これは,Ruby のプロパティーの「強調(2)」の「コメント」の「開始」「終了」の値をそのまま入れているのだと思います。
    しかし,Ruby の =begin/=end は,C などの「/*」「*/」などとは違って,行中に使うことができません。

    =begin
    x = 3
    =end

    のように,「=begin」だけの行と「=end」だけの行で囲まなくてはならないのです。
    (正確に言うと,「=begin hoge」のようにスペースなどを挟んで何かを書くことはできます。しかし「=」の前にはスペースも置けません)

    よって,Ruby の場合,選択範囲の先頭行の前に「=begin」の行を挿入し,選択範囲の最終行の後に「=end」の行を挿入してほしいです。

    もっとも,Ruby の =begin/=end はコーディング規約で避けられることが多いうえ,本来は一時的にコードをコメント化するためのものではなく,コード中に機械処理可能なフォーマットのドキュメントを埋め込むためのものです。
    なので,範囲選択の場合でも =begin/=end のコメントではなく「#」のコメントにしてほしいですが。

    それから,Ruby の「#」や C の「//」のような行コメントについて。
    現状では,コメント記号しか入れてくれませんが,コメント記号のあとにスペースを一つ入れてほしいんです。
    それがふつうの(?)書き方だからです。
    Atom のコメント機能はそうなっています。
    設定で切り替えるのでもかまいません。

    また,現状ではコメント記号を挿入する位置は行の先頭ですが,これをインデント位置に変えてほしいんです。
    例えば

    3.times do |i|
    puts i
    end

    の第 2 行をコメント化した場合は

    3.times do |i|
    # puts i
    end

    ではなく

    3.times do |i|
    # puts i
    end

    にしてほしい,ということです。
    言語にもよるのでしょうが,少なくとも Ruby ではこれが望ましいスタイルとなっているようです。
    たとえコメントでもインデントのコーディング規約に従うべき,ということでしょう。

    複数行が選択されていて,インデントのレベルが同じではない場合は,最もインデントの浅いものに合わせます。

    Atom はそうなっています。
    こちらも,設定で切り替えるのでかまいません。

    #24704
    redakt55
    参加者

    ああ,この投稿欄は行頭スペースが削除されるんでしたね。
    最後の三つのコード例が意味不明になっちゃいました。
    スペースを「␣」にして再掲します。

    ★ここから

    例えば

    3.times␣do␣|i|
    ␣␣puts␣i
    end

    の第 2 行をコメント化した場合は

    3.times␣do␣|i|
    #␣␣␣puts␣i
    end

    ではなく

    3.times␣do␣|i|
    ␣␣#␣puts␣i
    end

    にしてほしい,ということです。

    #24708
    Yutaka Emura
    キーマスター

    redakt55 様

    いつもお世話になっております。江村です。

    Ctrl + K, C および Ctrl + K, U は、「コメント挿入」「コメント削除」と同じものです。

    ご希望通り、次の beta 2 (v17.7.92) より、「コメント挿入」「コメント削除」は、マイクロソフトの Terminology を参考にして、変更いたします。また、2段階ショートカットについても、メニューの横にショートカットに表示できるようになりました。メニューの定義が変更された場合には、それに追従してメニューの表示も変わるようになります。

    Ruby の構文について、説明していただき、ありがとうございます。EmEditor で、細かいオプションを追加することは、将来のバージョンで検討いたします。ただ、あまり多くのオプションを追加するよりは、マクロやスニペットを使用して自由にカスタマイズすることが現実的ではないかと思います。もし、マクロやスニペットの作成方法でご質問がございましたらご連絡ください。

    ご意見ありがとうございました。今後もよろしくお願い申し上げます。

    #24712
    redakt55
    参加者

    表示などの改善ありがとうございます。

    > あまり多くのオプションを追加するよりは、マクロやスニペットを使用して自由にカスタマイズすることが現実的ではないかと思います。

    オプションをやたらに増やさないほうがよい,という話は非常によく理解できます。
    ただ,今の場合,オプションを導入しないと,組込みの機能が正常に働かない,という話なので・・・

    そこで,もう少し他の言語についての情報提供です。
    いわゆる「オフサイドルール」(インデントの階層でブロックの入れ子関係を表現する構文)を採用している言語の例です。
    コメント記号のインデントレベルに制約があります。
    いくつか例を挙げます。

    ◎Python
    複数行コメントは,先頭行の前と最終行のあとに """ の行を置きます。よって現行仕様では正しいコメントになりません。
    この点では Ruby と似ていますが,Ruby は =begin/=end を行頭に置かなければならないのに対し,Python ではブロックのインデントに合わせて """ もインデントしなければなりせん。正しくインデントしないとエラーになります。

    単行コメント(先頭に # を付ける)の場合,インデントはどうでもいいみたいです。

    ◎CoffeeScript
    複数行コメントは,先頭行の前と最終行のあとに ### の行を置きます。よって現行仕様では正しいコメントになりません。
    Python と違うのは,### のインデントがどうでもいいことです。

    単行コメント(先頭に # を付ける)の場合も,インデントはどうでもいいみたいです。

    ◎Slim および Sass
    以下に関しては,Slim と Sass はルールが同じなので,まとめて書きます。

    単行コメントはインデントしなければなりません。正しくインデントしないとエラーになります。

    複数行を囲むインデント形式はありません。
    ただ,単行のコメントの直後に,それよりもインデント階層の深い部分があるとそこまで含めてコメントになります。
    そこが Python や CoffeeScript と違うところですね。

    ところで,「マクロやスニペットを使用して自由にカスタマイズ」というのは,コメント化,非コメント化を,組込みの機能ではなくマクロやスニペットで実現する,という話でしょうか。
    マクロは分かるのですが,スニペットでもそういうことができるのですか?

    #24716
    Yutaka Emura
    キーマスター

    redakt55 様

    いつもお世話になっております。江村です。

    ご説明ありがとうございます。
    おっしゃるとおり、「コメント化,非コメント化を,組込みの機能ではなくマクロやスニペットで実現する,という話」になります。
    これだけ多くの言語でコメントの構文に違いがあるため、組み込みのコメント機能には限界があります。そこで、スニペットを使ってコメント機能を実装するのが現実的です。
    スニペットの中に、マクロを書くこともできますので、スニペット機能は、マクロのすべての機能を含み、さらに多くの柔軟なことができます。スニペットについて、詳しくは、

    https://jp.emeditor.com/text-editor-features/extensibility/plug-ins/snippets/howto-1/

    https://jp.emeditor.com/text-editor-features/extensibility/plug-ins/snippets/howto-2/

    をご覧ください。

    今後もよろしくお願い申し上げます。

1 件の投稿を表示中 (合計 8 個)
  • このトピックに返信するにはログインしてください。