■使用例とテクニック
ここではCMeDitorのコマンド入力機能の使用例とテクニックを紹介したいと思います。このページは今後もCMeDitorを使う上で役に立つ例やテクニックを掲載していく予定です。
例1) 大文字・小文字に変換する
例2) ある範囲の文章を行単位でコピーする
例3) 現在開いているファイルの文字列の検索結果を一覧にする
例4) 検索あれこれ
以下のような文章があったとします。 1行目の文章を大文字に変換したいと思います。 |
||
選択した文字列を大文字に変換する場合 |
→ | 「upperchar sel」と入力してEnterキーを押すと選択した文字列が大文字になります。 |
行単位で大文字に変換する場合 |
→ | 「upperchar 1」と入力してEnterキーを押すと1行目全てが大文字になります。 |
このuppercharコマンドはアルファベットを大文字にするコマンドです。「upperchar」の後に半角スペースを一つ入れ、その後に何を入れるかによって
大文字に変換する対象が変わってきます。この部分をパラメータといいます。
今回の例ではパラメータに「sel」「1」を使いましたが、uppercharコマンドでは以下のパラメータを使うことが出来ます。
・sel … 選択した文字列を変換の対象とする
・"abc" …" "の中の文字列を変換して現在のカーソル位置に出力する
・N … N行目の行の文字列全てを変換の対象とする
・無指定 … 現在の文章全てを変換の対象とする
このuppercharコマンドとは反対の小文字へ変換する機能をもつものとしてlowercharコマンドがありますが、このコマンドもパラメータはuppercharコマンドと同様です。
また、全てのコマンドには短縮形のコマンド名がありますので、使い慣れてきたら入力が短くてすむ短縮形のコマンド名を使うとよいでしょう。(例:upperchar
→ up)
以下のような文章があったとします。 1〜2行目を3行目の直後にコピーしたいと思います。 |
||
特定の行の後にコピーする場合 |
→ | 「copy 1-2 -a 3」と入力してEnterキーを押すと1〜2行目が3行目の後にコピーされます。 |
特定の行の二重化をする場合(元の行の直後にコピー) |
→ | 「cp 1-2」と入力してEnterキーを押すと1〜2行目が2行目の後にコピーされます。 |
このcopyコマンドは行単位でコピー&貼り付けするコマンドです。「copy」の後に、コピーする行(複数も可能)→前か後ろか→貼り付け先の行、の順に
パラメータを指定します。ちょうど「copy 1-2 after 3:3行目のあとに1〜2行目をコピーして貼り付けする」といった意味になります。
今回の例のポイントとなるのは「-a」というパラメータです。この2番目のパラメータはオプションとなっており、貼り付けする先の行の前か後ろかを
指定することになります。
・-a : 次の行に貼り付け
・-b : 前の行に貼り付け
これら二つの指定の仕方があり、また3番目のパラメータとセットで指定する必要があります。もし2番目と3番目のパラメータをセットしないとどうなるか。
それが2番目の例です。
2番目の例は「copy」の後ろにはコピーする行の番号しか指定されていません。そして実際の動作は元の行の直後にコピーされます。これは貼り付け先の
指定がないと、デフォルトで元の行の直後にコピーする仕組みになっているためです。これを「行の二重化」としてCMeDitorでは実装しています。
また、この行の二重化はメニューの「編集」からも実行することができます。ただし、この場合はコピーする行を選択していないと実行できません。
同じパラメータの仕方として、「move」コマンドがありますが、これは行単位で切り取りするという機能です。このコマンドの場合は2番目と3番目のパラメータの指定は
必須となっています。
例3) 現在開いているファイルの文字列の検索結果を一覧にする
以下のような文章があったとします。 これはVBScriptのファイルです。 このファイルにはいくつかのSubプロシージャ、Function プロシージャがありますのでこれらを検索してみたいと 思います。 |
→ | 「find -lar "^Sub|^Function"」と入力してEnterを押します。 |
そうすると補助エディタが表示され、そこに検索結果が 表示されます。 なお、補助エディタ内の行をダブルクリックすると該当行に ジャンプすることができます。 |
今回使ったfindコマンドは文字列を検索するコマンドです。コマンドの内容を解説します。
-lar : 検索オプション。左から順に「l : 検索結果を一覧にする」「a : ファイルの最初から検索する」「r
: 正規表現を使用する」となっています。
オプションは必ずしもこの順番でなくてもかまいません。
"^Sub|^Function" : 「Sub」「Function」は今回検索したかった文字列です。ただ今回は二つを同時に検索したかったので
正規表現を用いて検索しました。今回使用した正規表現は以下のとおりです。
「^」 : 行頭にあるものを対象とする。
「|」 : OR条件で、「|」の前後にある単語どちらかがあるものを対象とする。二つ以上のものを一度に検索する場合に適している。
上記を組み合わせた結果、検索されたのは行頭にあるSubかFunctionという文字列で、補助エディタに検索結果の文字列が存在する
行を出力しています。さらにこのコマンドのいいところは、補助エディタ内のいずれかの行をダブルクリックすると、メインエディタの
該当行へとジャンプすることができるのです。「|」オプション付きのfindコマンドを使えば簡易アウトラインエディタとしても使うことができます。
CMeDitorお勧めの機能です。
CMeDitorでは一般的なエディターでできる検索・置換ダイアログでの検索のほかに、いくつかの検索・置換の方法が存在します。
用途や状況によって使い分けることができるので、ぜひいろいろ試してください。
方法 | 特徴 |
検索ダイアログで検索・置換 | 視覚的にわかりやすい操作で検索できる。 |
コンテキストメニューから検索 | 細かいオプションは指定できないが一番簡単な検索方法。 すぐに好きな単語を検索できる。 |
「find」コマンド | キーボード操作に慣れた方ならよりすばやく、楽に検索できるので お勧め。 例1:find "検索文字列" 例2:f 検索文字列 (例1と例2は同じ動作) 例3:f -am 検索文字列 |
「grep」コマンド | 「find」コマンドと同様に、キーボード操作に慣れた方にお勧め。 例1:grep 検索文字列 C:\myhome\*.txt 例2:grep -bhs "検索文字列" |
「change」コマンド | 「find」コマンドとペアで使うと便利なコマンド。検索対象は現在の 文章のみに限られる。 例1:change "検索文字列" "置換文字列" 例2:chg 検索文字列 置換文字列 例3:chg 検索文字列 置換文字列 -a |
「replace」コマンド | 「change」コマンドとは異なり、検索対象を細かく指定できる。 動作の確認などは出ないので上級者向け。 例1:replace sel "検索文字列" "置換文字列" 例2:rep sel 検索文字列 置換文字列 例3:rep $main[100] 検索文字列 置換文字列 -a 例4:rep "東京都千葉県神奈川県北海道" 検索文字列 置換文字列 |
「index」コマンド | 普通の検索とは異なるが、単純にあるかどうかをチェックするだけ であれば便利かも。 例1:msg -n `index "INITDIR" sel` |