パーソナルツール

cmdex.vim : Kaoriyaパッチ ユーティリティコマンド集

— カテゴリ: , ,
作者: 小見 拓 最終変更 2012年01月15日 21時26分

cmdex.vimスクリプトはKaoriya版vimエディタに含まれるユーティリティコマンド定義スクリプトです。 「:CdCurrent」「:VDsplit」「:Scratch」「:Transform」「:Tutorial」など、 Kaoriya版に組み込まれている便利なコマンドのいくつかは、このcmdex.vimスクリプトで定義されています。 Kaoriya版のvimエディタを使用しているなら、この記事は読んでおくべきです。 (Windows, Mac)

概要

cmdex.vimスクリプトはKaoriya版vimエディタに含まれるユーティリティコマンド定義スクリプトです。
「:CdCurrent」「:VDsplit」「:Scratch」「:Transform」「:Tutorial」など、
Kaoriya版に組み込まれている便利なコマンドのいくつかは、このcmdex.vimスクリプトで定義されています。
Kaoriya版のvimエディタを使用しているなら、この記事は読んでおくべきです。

インストール方法

cmdex.vimスクリプトは、Kaoriyaパッチに添付されています。
Kaoriyaパッチ入りのvimエディタを使用している場合は、
既に使用可能な状態になっているため、インストール作業は必要ありません。

cmdex.vimにより使用できるようになるコマンド、マッピングの一覧

cmdex.vimスクリプトには、次の表のコマンド、キーマッピングが定義されています。

追加されるコマンド
コマンド 簡易説明
:Tutorial vimエディタのチュートリアルを開始する。
:Scratch 作業用バッファを作成する。
:CdCurrent カレントディレクトリを、現在開いているファイルと同じディレクトリに変更する。
:Transform perl言語のtr演算子のような置換処理を行う。
:VDsplit 今開いているファイルと、指定したファイルとの差分表示を行う。
:Undiff diffモードを終了させる。
:HTMLConvert 見た目そのままのHTMLを生成し、拡張子.htmlを付けたファイルに出力する。
:Nohlsearch 最後の検索ワード情報を消去する。「:nohlsearch」コマンドの強化版。
:IminsertOff 入力モードに入った時に、インプットメソッド(日本語入力)をオフにする。
:IminsertOn 「:IminsertOff」コマンドによって行われた変更を元に戻す。
:MenuLang 指定した言語のメニューバー設定ファイルを読み込む。
追加されるマッピング
マッピング 使用できるモード 簡易説明
Ctrlキーを押しながらx コマンドラインモード 今開いているファイルのディレクトリまでのパスを出力する。

各コマンドの使い方、説明

:Tutorial

「:Tutorial」コマンドを実行すると、vimエディタのチュートリアルが開始されます。
このコマンドはチュートリアルの原本のファイルを「TUTORCOPY」という名前でコピーし、 そのコピーファイルを使用してチュートリアルを行うので、
「:Tutorial」コマンドでチュートリアルを開始した場合は、 チュートリアル中にファイルを変更しても何ら問題ありません。

参考:「 チュートリアルでvimの使い方を覚えよう

" vimエディタのチュートリアルを開始する。
:Tutorial
チュートリアルの開始

:Scratch

「:Scratch」コマンドを実行すると、作業用の空のバッファを作成します。
作業用バッファは一時的なメモや編集用のスペースとして利用できます。

" スクラッチバッファを開く。
:Scratch
スクラッチバッファを開く

:CdCurrent

「:CdCurrent」コマンドは、カレントディレクトリを今開いているファイルと 同じディレクトリに変更するコマンドです。
ファイルを引数にとるコマンドを実行する時などに便利に利用できるコマンドです。

" カレントディレクトリをファイルと同じディレクトリにする。
:CdCurrent

:Transform

「:Transform」コマンドを使用すると、perl言語のtr演算子のような処理を実行できます。
このコマンドは引数として、変換対象の文字、変換後の文字の2つ受け取ります。

" A→x、B→y、C→zと対応する文字に置換します。
:Transform ABC xyz

" コマンド処理の範囲の指定を行わないと、カレント行にしか置換処理を行いません。
:%:Transform abcde xxyyz
:20,40:Transform 12345 51234

Note

:Transform変換の説明図

左引数の1文字目が、右の引数1番目の文字に置換される。( A → O )
左引数の2文字目が、右の引数2番目の文字に置換される。( B → P )
左引数の3文字目が、右の引数3番目の文字に置換される。( C → Q )
左引数の4文字目が、...

:VDsplit

「:VDsplit」コマンドは今開いているファイルと指定したファイルとで差分比較を行うコマンドです。
コマンドの引数として比較対象のファイルを受け取ります。

参考:「 2つのテキストファイルの差分を取る

" カレントファイルと、'another.txt'とで比較を行う。
:VDsplit another.txt
:VDsplitコマンド実行後画面例

:Undiff

「:Undiff」コマンドは、カレントウィンドウのdiffモードを解除するコマンドです。
diffによる比較が終わった後に、元の状態に戻すのに使用できます。

" diffモードを解除する。
:Undiff
diffモードの解除、図解。

:HTMLConvert

「:HTMLConvert」コマンドを実行すると、今開いているファイルを見た目そのままの形式で HTMLに変換し、
「カレントファイルの名前 + .html」という名前のファイルに出力します。
この機能は2html.vimスクリプトに用意されている機能です。

参考:「 2html.vim : Transform a file into HTML, using the current syntax highlighting.

" HTMLを生成する。
:HTMLConvert
HTML変換後のビュー

:Nohlsearch

「/」「?」による検索を行った後、「:nohlsearch」コマンドを実行すると 検索のハイライトを消去することが出来ますが、
その状態でも「n」キーを押してしまうと、再び検索が始まり、 検索にマッチするテキストのハイライトが行われてしまいます。
「:Nohlsearch」コマンドを使用すると、前回の検索テキストの記録を消去することができるので、 そのような事態を避けることができます。

" このコマンドは「:nohlsearch」コマンドの代替として使用できる。
:Nohlsearch

:IminsertOn、:IminsertOff

「:IminsertOff」コマンドを実行すると、ノーマルモードなどから入力モードに入った時に、 必ず日本語入力がオフの状態から始まるようになります。
(つまり、アスキー入力の状態から始まります。)

「:IminsertOn」コマンドは、その「:IminsertOff」コマンドと対になるコマンドで、
「:IminsertOff」コマンドによって変更された状態をクリアし、初期の状態に戻すことができます。

" 入力モード開始時は日本語入力オフ。
:IminsertOff

" 「:IminsertOff」コマンドの変更をリセットする。
:IminsertOn

:MenuLang

「:MenuLang」コマンドは、指定した言語のメニュー定義ファイルを読み込み、 メニューをロードしなおすコマンドです。
次のコマンド例のように、メニューの言語を引数に取ります。

" 「:MenuLang」コマンドの使用例。
:MenuLang ja_jp.ujis
:MenuLang en
:MenuLang nl_NL.ISO_8859-1

マッピングの使い方、説明

コマンドラインモードで、Ctrl-x

コマンドラインモードでCtrl-x (Ctrlキーを押しながらx)を押すと、 編集ファイルの親ディレクトリまでのパスが出力されます。

例えば、次のような状態で、

入力前の状態

↓ Ctrl-xを入力すると、ファイルのあるディレクトリまでのパスが出力されます。

Ctrl-x入力後

設定

cmdex.vimの使用を停止する。

cmdex.vimスクリプトはvimエディタ起動時に読み込まれます。
スクリプトで定義されたコマンド、マッピングが読み込まないようにするには、 次の設定をvimエディタの設定ファイルに追加してください。

" cmdex.vimスクリプトの読込を停止する。
:let plugin_cmdex_disable = 1

注意事項など

この記事は2008年1月7日に記述されました。
今後、このcmdex.vimスクリプトファイルが変更され、 この記事どおりに行かない可能性がいくらかあります。

ドキュメントアクション
コメント
blog comments powered by Disqus
Update Feed
RSS1.0 / RSS2.0 / ATOM
Comment

Recent Comments