秀丸のコメント判定方法について

このQ&Aのポイント
  • 秀丸を使って、ある言語のプログラムのコメント部分を判定する方法について説明します。
  • 秀丸のファイルタイプ設定で、複数行コメントの開始と終了の文字列を指定することができますが、特定の条件でのコメント判定方法について詳細を教えてもらえませんか?
  • C言語のように、複数行コメントと1行コメントの判定方法が異なる場合、単純な設定ではうまくいきません。
回答を見る
  • ベストアンサー

秀丸のコメント判定方法について

秀丸を使って、ある言語のプログラムを参照したり編集したりしています。 今までは特に気にしなかったのですが、少し秀丸の機能を使っていこうと思い、手始めにコメント部分の色変えを試しているところです。 ファイルタイプの設定から、デザイン→複数行コメント で開始と終了の文字列を指定できるのですが、以下のような判定方法の場合はどのように設定して良いのかが判りません。 判定方法 [/*]で始まり、[*/]で終わる部分(これの設定はできました。) [/*]で始まり、[*/]がなければ、[/*]からその行の終りまで ※C言語などの[//]と同じ役割です。 C言語のように 開始が[/*]と[//]で使い分けができればいいのですが、 1行コメントも複数行コメントも[/*]で始まるので、単純に開始文字列と終了文字列の設定ではうまくいかないようです。 お知恵をお借りできればい幸いです。 よろしくお願いいたします。

noname#129871
noname#129871

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

/* から「その行の中にある」*/ (もしくは行末) まで, ならできてもいいんだけどねぇ.... どんな言語なのかが興味深い.

noname#129871
質問者

お礼

ありがとうございます。 やはり難しそうですね。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

>[/*]で始まり、[*/]で終わる部分 >[/*]で始まり、[*/]がなければ、[/*]からその行の終りまで 条件が矛盾しているので設定できないでしょう。 /*が見つかったら*/を探すとしているのに、*/がなくてもいいなんてどうやって判定するの。

noname#129871
質問者

お礼

ありがとうございます。 判定の方法は、 [/*]からコメントが開始して、[*/]がきたらそこで終了。[/*]か[eof]が来たらその行のみと判定すれば良いとおもいます。 が、やはりこんな複雑(でもないですが)判定は秀丸にはできないんでしょうか。 マクロを使用して文字の色を変えられでもすればマクロで簡単に組めるのですが。

関連するQ&A

  • 秀丸での正規表現について(強調表示)

    秀丸初心者です。 ある特定の文字列(複数行)を強調表示したいのですが うまく設定できません。 具体的には !==== TEST ====== - 処理 - !================ を他のコメント(!の行)と区別したのです。 開始文字列は、"!"の次に"="が来るのは必須ですが、"TEST"は前後のブランクがあろうがなかろうが"="で挟んであればOKです。 終了文字列は、"!"の次に"="が来ればOKです。 どなたかご教示ください。 よろしくお願いします。 説明不足等ありましたら補足します。 念のため・・・・ 動作環境 W2KProSP4 秀丸Ver.  7.1.0.99 です。

  • [秀丸] コメント機能について質問です

    秀丸Ver4.17を使用しています。 「表示とカラー」の設定にある「コメント」機能を使用したいのですが、過去の質問を見ると、「モードを「C言語/Java」などにしないといけない」という回答がありました。 私はどちらかというと物書き屋のため、モード設定は「なし」じゃないと困ります。そのため、「C言語」などの設定にはしないで、コメント機能を使いたいのですが、良い方法はありますでしょうか。 希望としては、/**/ の中に、日本語・英語・数字(全角・半角ともに)などがきたとしても、/**/がつけばコメント扱いになるように設定したいです。 通常のコメント機能がダメな場合は、強調表示機能で代替えするのでしょうか? その場合は、メタキャラクタなどの書き方が分からないため、具体的な文字列(?)を教えていただけますでしょうか。 よろしくお願いします。

  • コメント行を検索対象から除外する方法

    C/C++のソースコードを普通にテキスト検索やGREPを実行すると、当然コメントも検索結果に表示されます。コメント部分が検索結果に表示されないようにする手段やツールはあるでしょうか?つまり、"//"以降改行文字までと"/* */"に囲まれたコードを検索対象から除外するということです。#if 0 ~ #endifも適切に解釈して除外してくれるとより助かります。 Visual Studioのテキストエディタで実現出来れば一番都合が良いのですが、それらしいオプションが見当たりません。 秀丸エディタのGREPのオプションに「追加の条件」の設定があり、ここでコメントを除く指定をすればコメント行が検索対象から除外されます。ただ、この方法だと通常の検索の何倍もの時間がかかってしまい非現実的です。恐らく全ての文字をコメント文字かどうか判定しているのでしょう。 検索対象のソースは2万ファイルに上り、100万行を超えています。10文字の検索文字列で、普通に全ソースGREPすると25秒程度、コメントを除くオプション指定だと315秒(5分以上)かかりました。もちろん検索文字の長さやその他オプションにも依存するでしょうが、さすがに普段使いとしては現実的ではない所要時間です。 除外したいコメント行はたいてい行頭にコメント文字"//"がありますので、行頭の"//"のチェックに限定したいです。ただ空白スキップくらいはあると良いです。これにより現実的な検索時間に収まるかどうかはやってみないと分かりませんが・・ なお、検索結果からコメント行を削除する秀丸のマクロはありました。ただ、この方法ではコメント行も検索対象となるため、余分な検索時間がかかっていますし、何しろ二度手間です。普段のソース検索でコメント行も含む検索はあまり行わないと思います。 なぜこれが問題になるかと言いますと、ソースに修正前のコードをコメントとして残してあるため、コメント行が膨大になっているのです。Javaの標準ライブラリほどではありませんが、ざっと調べたところソースの40%はコメント行です。 同一箇所の複数の変更履歴が全部コメントとして残っているため、実質1か所のヒットでも検索結果に2つも3つも重複して表示されてしまいます。もちろん、このように修正履歴をコメントとして残すこと自体が問題なのは分かっていますが、自前のソースではないので手を出せないのです。

  • 秀丸で行番号を複数選択する方法は

    秀丸で行番号をとびとびに複数選択したいのですが、 shiftボタンを押すと、一つ目の選択した行から二つ目の選択した行までの間の行も 選択されてしまい、Ctrlを押すとすべての文字列が選択されてしまいます。 WordやExcelのように、任意の行を複数選択するにはどうしたらよいのでしょうか?

  • 秀丸マクロについて質問です。

    秀丸マクロについて質問です。 秀丸で編集されたテキスト文書の中でabcdefgという文字列がある行を検索し、 その行情報を取得し、その行の隣にある文字列(下記の例では123456)を返す にはどのようにすればよいでしょうか? ご回答よろしくお願いします。 (例) 567行目に以下の文があるとします。 abcdefg,123456,goukaku

  • VS2005でコメント挿入

    VS2005でソースに文字列を挿入できるようなショートカットを探しています。 C++を使いプログラミングしています。 //========================== // このような複数行コメント //========================== をショートカットキーを使って挿入したいのですが、 なにかいい方法はないでしょうか?

  • 秀丸エディタで原稿を書こうと思っています。

    今までwordで書いていたのですが、秀丸で書かなければいけないことになりました。その上で、秀丸エディタの初期設定を変更し、カスタマイズの方法で悩んでいます。 まず、1行の文字数が35文字の指定で、1ページに15行という条件で原稿を書く必要があります。 一行の文字数の設定、1ページの行数の設定は自分で何とかできたのですが、以下の部分がとても困っています。 ★困っている点 その1★ 秀丸エディタで、文字を打つときに、どうしても左よりになっているので、wordよりも書きづらいです。 先頭の文字をある程度一番左の部分から離して、中央よりから書き始めることはできないのでしょうか。 それに加え、左側にある行表示(ページ表示)の部分と、書き出しの文字の先頭部分の間に一定のスペースが入るようにできると大変助かるのですが、そういった設定もあるのですか? ★困っている点 その2★ ページ番号を表示させようとすると、全ての行番号(1行35文字の設定の上で)も表示されてしまいます。 個人的には、各行番号は必要なく、ページ番号だけ分かれば良いのですが、そういう設定はできないのでしょうか?? ※wordのように小さくページ番号がたまに分かれば十分なのです。いちいち各ページのすべての行数は表示させたくないのです。 それは可能なのでしょうか?? ★困っている点 その3★ ページ番号が変わる部分で、一定のスペースを空けるような設定はできないのでしょうか?? 例えば2ページの終わりの15行目と、3ページの始まりの1行目が同じ間隔だと、とてもみづらいのです。 そういったページごとに一定間隔をあける設定を教えていただければ嬉しいです。 以上、3点ですが、誰かお分かりの方に教えていただけると本当に助かります。・ 色々、質問してしまいましたが、何卒どうぞよろしくお願いいたします。

  • 秀丸 強調表示

    秀丸の強調表示を編集しています。 単語の強調表示は、出来ましたがそれ以外の部分で困っています。 1)「’~’」の文字列 2)「XXXXX:」の見出 3)XXX=ZZZZ !あああああ の文中からのコメント 宜しくお願いします。

  • 【秀丸マクロ】IFの使い方

    秀丸マクロでの、IFの使い方が分かりません…。 秀丸でCSVデータの編集をしています。 "文字列1","文字列2","文字列3","文字列4","文字列5", のうち、文字列4だけを見て、条件に合致するものは『行ごと』削除したいんです。 調べて調べて、やっとこ↓までは書いたのですが、 gofiletop; while( code != eof ){ searchdown "^\"((.*?)\",){4}\"(.*?)\"(?\\1)"; deleteline; } IFがないので、これではぜーんぶ消えてしまいます。(苦笑) IFをどういった方法で追加すればよいのか、教えてください。 よろしくお願いします。

  • 秀丸の色の設定

    秀丸の色の設定に関してです。 秀丸の文字の色は、複数の条件に当てはまるときは、混ざった色になるのでしょうか。 現在、秀丸を立ち上げたときの背景は黒です。 メニューの「その他」 「ファイルタイプ別の設定」 「(ファイルタイプ)の設定」は「共通」 「カラー」タブ 左側の「場所の一覧」の「タブ文字」を選択 右側の「割り当てた色」のラジオボタンは「個別の色」が選択されている 「文字の色」は、水色(「空色」と呼ぶのが正しいかもしれません。)になっている。 「カーソル行」は、黄色になっています。 この状態で、タブキーを押すと、緑色になってしまいます。 私は、黄色か空色のいずれかが優先されると思っているのですが、それは誤解でしょうか。 カーソル行のタブ文字だから、黄色+空色で、緑になってしまうのでしょうか。 しかし、「普通の文字」では、このようなことは起きません。 (「普通の文字」を空色にしても、カーソル行の色が優先されて、黄色になる。) もう一つ質問です。 同じくカラーの設定で、「コメント」を選択すると、「緑」になっています。 しかし、 文字を /* */ で囲っても緑色になりません。 なぜでしょうか。 Version 3.19