ttoc : 見出しの一覧を検索して表示(+vimエディタをメモ用ツールとして活用する)
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スクリプトです。
目次一覧の表示、リスト表示機能、および、目次位置へのカーソル移動機能があります。
ちょっとしたメモを取る用途にも向いていると思います。

インストール方法
スクリプトのダウンロード
このスクリプトを使用するには、次の2つのスクリプトが必要です。
まず、必要なそれぞれのスクリプトをダウンロードしてください。
ファイル | 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」コマンドで、スクリプトを読み込みます。

↓(vimエディタで「vba」ファイルを開いたら、次のコマンドを入力)
:source %
↓(「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」スクリプトで一覧表示できるようになります。

Note
「memo.vim」は Kaoriya パッチに入っているメモ用シンタックス定義ファイルです。
Kaoriya パッチがあたっていないvimエディタでもシンタックスファイルを入手すれば使用可能です。
メモのサンプルは下(↓)になります。
「memo.vim」のシンタックス定義の確認にご利用ください。
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
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 7 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 11 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 12 years ago