パーソナルツール

markjump.vim : テキストに目印を挿入 + 目印をつけた場所に移動

作者: 小見 拓 最終変更 2012年01月10日 02時06分
— カテゴリ:

このスクリプトでファイルに目印となる記号を書き込んでおくと、 その後、好きな時に、そのマークをつけた位置に、このスクリプトで移動することができます。 目印となるマーカーはファイルに埋め込まれるので、 後々になっても、そのマーカーを利用することができます。 (Windows, Mac)

概要

markjump.vim : Code transversal functions, move to prev/next marker, insert/strip markers.
http://www.vim.org/scripts/script.php?script_id=485

このスクリプトでファイルに目印となる記号を書き込んでおくと、 その後、好きな時に、そのマークをつけた位置に、このスクリプトで移動することができます。
目印となるマーカーはファイルに埋め込まれるので、 後々になっても、そのマーカーを利用することができます。

目印となるマーカーは、ユーザーが設定した特定の開始文字、終了文字に囲まれた文字列となります。
例えば、開始文字が「<<」、終了文字が「>>」の場合だと、下のようになります。

マーカーの例 その1
<<marker_name>>

マーカーの開始文字と、終了文字の間に文字が含まれている必要はありません。

マーカーの例 その2
<<>>

インストール方法

このスクリプトをインストールするには、 スクリプト をダウンロードして、
pluginディレクトリにコピーしてください。

マーカー文字の設定、キーマッピングの設をする場合は、 設定 の項目を参照してください。

ファイル URL
markjump.vim http://www.vim.org/scripts/script.php?script_id=485

使用方法

このスクリプトで用意されているコマンドの一覧です。 マーカーを書き込むコマンドと、それを検索するコマンドが用意されています。
軽く説明すると、
「:MI」でマーカーの挿入、
「:MN」、「:MP」でマーカーの検索を行えます。

より簡単にスクリプトを使いたいのなら、キーマップの 設定 をしておきましょう。

コマンド 説明
:MN 進行方向側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。
:MP 進行方向とは逆側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。
:MI カーソル位置にマーカーを挿入します。
:MA カーソル位置の右隣にマーカーを挿入します。
:MIV ビジュアルモードで選択したテキストを、マーカーの開始文字、終了文字で囲んで、マーカーにします。
:MAV ビジュアルモードで選択したテキストを、マーカーの開始文字、終了文字で囲んで、マーカーにします。:MIVと同じ。
:MS カーソル位置にマーカーがあるなら、そのマーカーから、マーカーの開始文字、終了文字を取り除きます。

GUI版vimでは、このスクリプトをインストールすると、 メニューにスクリプト用の項目が追加されるので、これらを利用することもできます。

markjump.vimスクリプトで追加されるメニュー項目
メニュー 説明
Prev Marker 進行方向側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。
Next Marker 進行方向とは逆側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。
Insert Marker カーソル位置にマーカーを挿入します。
Append Marker カーソル位置の右隣にマーカーを挿入します。
Strip Markers カーソル位置にマーカーがあるなら、そのマーカーから、マーカーの開始文字、終了文字を取り除きます。

設定

マーカーの開始文字、終了文字の文字と、
コマンドを実行するキーマップを設定することができます。

マーカーの開始文字、終了文字の設定

スクリプトでデフォルトとして設定されているマーカーの開始文字、終了文字は、

になっているので、大半の日本人にとっては都合が悪いですね。
マーカーの開始文字、終了文字は、vimエディタの設定ファイルで、 次のように設定することで変更することができます。

:let L_Marker = "マーカーの開始文字"
:let R_Marker = "マーカーの終了文字"
" マーカーの設定例
:let L_Marker = ">>"
:let R_Marker = "<<

キーマッピングの設定

マーカーを挿入するときはともかく、
マーカーを検索する場合に、いちいち「:MN」とコマンドを入力するのは、
面倒だと思います。

キーマップを設定して、あるキーを入力した時に、コマンドを実行できるようにしておくと、
より容易に、このスクリプトが利用できるようになります。

キーマッピング一覧
名前 モード 説明
MjInsMarker インサートモード用 カーソル位置にマーカーを挿入します。
MjNext ノーマルモード用 進行方向側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。
MjPrev ノーマルモード用 進行方向とは逆側にマーカーを検索して、マーカーを見つけたら、その位置に移動します。

例えば、下のような設定を、vimの設定ファイルに書いておくと、
入力モードでの「 ¥ i 」入力で、マーカーの挿入、
ノーマルモードでの「 ¥ s 」または「 ¥ p 」の入力で、マーカーの検索を実行できるようになります。

" キーマッピング設定例。
:imap <LocalLeader>i <plug>MjInsMarker
:nmap <LocalLeader>s <plug>MjNext
:nmap <LocalLeader>p <plug>MjPrev

Note

キーマップのキーは、好きなキーに変更しても問題ありません。
変更する場合は、上の例だと、<LocalLeader>iの部分を置き換えると良いでしょう。

ドキュメントアクション
コメント
blog comments powered by Disqus