パーソナルツール

ttoc : 見出しの一覧を検索して表示(+vimエディタをメモ用ツールとして活用する)

作者: 小見 拓 — 最終変更 2012年01月08日 11時51分
— カテゴリ:

vimエディタを簡易アウトライナーにするvimスクリプトです。 目次一覧の表示、リスト表示機能、および、目次位置へのカーソル移動機能があります。 ちょっとしたメモを取る用途にも向いていると思います。 (Windows, Mac)

概要

ttoc : A regexp-based table of contents of the current buffer
http://www.vim.org/scripts/script.php?script_id=2014

vimエディタを簡易アウトライナーにするvimスクリプトです。
目次一覧の表示、リスト表示機能、および、目次位置へのカーソル移動機能があります。
ちょっとしたメモを取る用途にも向いていると思います。

ttocスクリプトで目次一覧の表示

インストール方法

スクリプトのダウンロード

このスクリプトを使用するには、次の2つのスクリプトが必要です。
まず、必要なそれぞれのスクリプトをダウンロードしてください。

  • 「 ttoc 」スクリプト
  • 「ttoc」スクリプトで必要とする「 tlib 」スクリプト
ファイル URL
ttoc.vba.gz http://www.vim.org/scripts/script.php?script_id=2014
tlib.vba.gz http://www.vim.org/scripts/script.php?script_id=1863

Vimballからのインストール

ダウンロードした各スクリプトは「Vimball」と呼ばれる形式で配布されています。
「Vimball」形式で配布されているスクリプトをインストールするには、

  • ファイルが圧縮されているなら解凍ツールで解凍し、
  • vimエディタで「.vba」拡張子のファイルを開き、
  • 「source」コマンドで、スクリプトを読み込みます。
vimballを開く

↓(vimエディタで「vba」ファイルを開いたら、次のコマンドを入力)

:source %

↓(「Vimball」形式のファイルが展開されます。)

vimballを読み込む

この作業をスクリプト実行に必要な2つのファイル
(ttoc.vba.gz、tlib.vba.gz)で行ってください。

Note

vimエディタのコマンド中で「%」記号を使用すると、
その「%」はコマンド実行時に、今、vimエディタで開いている ファイルのパスに置き換わります。

使い方

一通りの操作を説明しますが、次の3つの操作だけ覚えれば、
このスクリプトを使う分には問題ないはずです。

  • 「TToC」コマンドで目次一覧を表示する
  • 目次を選択すると、その位置に移動する
  • 「?」キーで操作の説明が表示される

目次の表示

目次を検索、表示するには次のコマンドを実行します。
目次の一覧の検出定義はファイルタイプごとに決まっています。

:TToC

Note

vimエディタの環境をそれほど変更していなければ、
「:TT」コマンドだけでもスクリプトが動作します。

:TT

目次の選択

目次の選択
操作 説明
マウスで目次を選択 選択した目次の位置にカーソルを移動。目次一覧は閉じられる。
目次のインデックスの数字を入力 指定した目次の位置にカーソルを移動。目次一覧は閉じられる。
<Enter> カーソル下の目次の位置にカーソルを移動。目次一覧は閉じられる。
<C-g> カーソル下の目次の位置にカーソルを移動。目次一覧は開いたまま。
< カーソル下の目次の位置にカーソルを移動。目次一覧は開いたまま。
<C-p> カーソル下の目次の場所を編集ウィンドウで表示。

ウィンドウ、カーソルの操作

ウィンドウ、カーソルの操作
操作 説明
<Up> カーソルを上に移動する。
<Down> カーソルを下に移動する。
<C-r> 目次一覧を閉じる。
<M-r> 目次一覧を閉じる。
<ESC> 目次一覧を閉じる。
<C-z> ノーマルモードに移行して、カーソルが自由に動かせるようになる。カーソルの初期位置は目次一覧ウィンドウです。
<M-z> ノーマルモードに移行して、カーソルが自由に動かせるようになる。カーソルの初期位置は目次一覧ウィンドウです。
<C-o> ノーマルモードに移行して、カーソルが自由に動かせるようになる。カーソルの初期位置は編集ウィンドウです。

目次一覧のフィルタリング

目次一覧のフィルタリング
操作 説明
テキストの入力 目次フィルタリング文字列に入力したテキストを追加します。
<BS> 目次フィルタリング文字列を一文字削除します。
<C-q> フィルタリング用文字列の編集を行います。
<M-q> フィルタリング用文字列の編集を行います。

Note

  • 「 」(スペース)でAND、
  • 「|」でOR、
  • 「-」でNOTの

フィルタリング条件を追加できます。

その他操作

その他操作
操作 説明
? ヘルプ画面を表示する。何かキーを押すとヘルプ画面から戻れます。

設定

キーマップの設定

このスクリプトを多用するなら、キーマップを設定すると楽になります。
設定するのであれば、例えば、次のように設定します。

:noremap <F3> :TToC<CR>
:noremap <F4> :TToC!<CR>
:inoremap <F3> <C-o>:TToC<CR>
:inoremap <F4> <C-o>:TToC!<CR>

このマッピングをvimエディタの設定ファイルに追加すると、
「F3」キーでそのまま、「F4」キーで編集を破棄して目次一覧を表示します。

ファイルタイプごとの目次検出の定義

目次一覧の検出に使用されている変数の一覧はは次の表のとおりです。 ファイルの種類ごとに異なる検出ルールが用いられます。
未知のファイルタイプの場合は、デフォルトの目次検出ルールが使用されます。

目次の検出ルールに使われている変数
ファイルタイプ 変数
デフォルト g:ttoc_rx
bib g:ttoc_rx_bib
html g:ttoc_rx_html
perl g:ttoc_rx_perl
php g:ttoc_rx_php
python g:ttoc_rx_python
rd g:ttoc_rx_rd
ruby g:ttoc_rx_ruby
scheme g:ttoc_rx_scheme
sh g:ttoc_rx_sh
tcl g:ttoc_rx_tcl
tex g:ttoc_rx_tex
viki g:ttoc_rx_viki
vim g:ttoc_rx_vim

新しいルールを定義する、もしくは、新しいルールで古い定義を上書きする場合は、
vimエディタの設定ファイルで次のように指定します。

:let g:ttoc_rx_${ファイルタイプ} = '${目次の項目にマッチする正規表現}'

設定例(ファイルタイプ「txt」では数字で始まる行を目次の項目とする)
:let g:ttoc_rx_txt = '^\d.*'

簡易メモツールとして使う

簡易な目次検索機能つきメモとして使うのなら、
Kaoriya版vimエディタ に添付する「memo.vim」スクリプトと組み合わせて、
vimエディタの設定ファイルで、次のように指定すると便利です。

" configuration for filetype memo
:autocmd BufNewFile,BufRead *.memo :set filetype=memo
:let g:ttoc_rx_memo = '^\k\+\>'

上記の設定を行うと、
拡張子「.memo」のファイルを開くとシンタックス「memo」が適用され、
目次の項目を「ttoc」スクリプトで一覧表示できるようになります。

ttocスクリプトで目次一覧の表示

Note

「memo.vim」は Kaoriya パッチに入っているメモ用シンタックス定義ファイルです。
Kaoriya パッチがあたっていないvimエディタでもシンタックスファイルを入手すれば使用可能です。

メモのサンプルは下(↓)になります。
「memo.vim」のシンタックス定義の確認にご利用ください。

 1 ラベル
 2
 3 タイトル1 20-12-2007.
 4     メモメモメモメモメモメモメモメモ
 5     メモメモメモメモメモメモメモメモ
 6
 7 タイトル2 21-12-2007.
 8     メモメモメモメモメモメモメモメモ
 9     メモメモメモメモメモメモメモメモ
10
11 項目1
12     ■ 項目
13     □ 項目
14     ◆ 項目
15     ◇ 項目
16
17 項目2
18     ○ 項目
19     ● 項目
20     ◎ 項目
21     〇 項目
22
23 括弧書きや注意書きの書き方
24     メモメモメモメモ
25     メモメモメモメモ
26     (括弧書きの記述)
27     注意: 注意書きの記述
28
29 リストの書き方
30     - リスト
31     - リスト
32     + リスト
33     + リスト
34     * リスト
35     * リスト
36
37 リスト(順番つき)の書き方
38     1: 順番つきリスト
39     2: 順番つきリスト
40     1. 順番つきリスト
41     2. 順番つきリスト
42     1) 順番つきリスト
43     2) 順番つきリスト
44
45 コメントやvimの設定の記述
46     # コメント
47     # コメント
48     vim: set expandtab :
49
ドキュメントアクション
コメント
blog comments powered by Disqus