Hatena::Groupsubtech

#生存戦略 、それは

-> 06 { 05 / 24 }

vim7 新機能の説明

14:38 | はてなブックマーク -  vim7 新機能の説明 - #生存戦略 、それは

あっちで出そうと思ったけど途中書きかけで放置してて続き書く気もなくなったのでこっちで書いとく。

:h new-7

new-vim-script

vim スクリプト周りの説明ですが、vim スクリプト書けないでよく解りません…。List, Funcref 型や let での +=, -=, .= 演算子の追加 などが行われたようです。id:motemen が List あると超便利になりますよ!とか云ってた気もします。

また、vimball と呼ばれる vim プラグインパッケージングが加わりました。.vba ファイル開いて、

vim PackageName.vba
:so %

のようなコマンドで plugin やら document やらを適切なディレクトリインストールしてくれます。また、vimball の使い方も簡単で、自作の plugin やドキュメントなどを runtimepath においておきます。

~/.vim/plugin/example.vim
~/.vim/doc/example.vim

次に、そのファイル名から runtimepath をのぞいた文字列を作り

plugin/example.vim
doc/example.vim

その文字列を範囲選択して

:MkVimball example.vba 

と MkVimball コマンドで vimball ファイルを作ることができます。

Spell checking

スペルチェック機能が加わりました。使ってないのでよく解りませんが、辞書ファイルなどからチェックが可能になり、[s などのコマンドでエラー箇所に飛べるみたいです。

Omin completion

インテリジェンスな補完を行う機能が加わりました。デフォルトでは Ctrl-X Ctrl-O で補完が可能になります。VIMRUNTIME/autoload/*.vim に filetype のファイルがあり、その中で *complete#Complete* という関数(php なら phpcomplete#CompletePHP )が定義されていると利用できるようになります。

例えば JavaScript

document.getE[tab]

と押したときは

document.getElementById(
~        getElementById(
~        getElementsByName(
~        getElementsByTagName(

と補完候補が表示され補完が行えます。また今現在、次の形式がサポートされています。

php の Omni 補完はめっちゃ強まってます(参考)が、vim だと遅くて話にならなかったりします、、、。(gvim でなんとか)

MzScheme interface

MzScheme のインタプリタサポートされました。--enable-mzschemeinterp してコンパイルすると使えるようになります。

これで mzscheme の中から vim を弄ったり、:mzf で選択範囲を実行したりといったことができるようです。

Printing multi-byte text

マルチバイト文字を PostScript を使ったときに印刷できるようになったみたいです。

Tab pages

ネイティブでタブがサポートされました。以下簡単な使い方です。

vim -p foo.txt bar.txt baz.txt
# おのおののタブでファイルを開く
:tabe foo.txt
# foo.txt を新しいタブで編集
gt
# 次のタブへ
:tabn
# 次のタブへ
:tabp
# 前のタブへ
:tabonly
# そのタブのみにする
:tab ball
# バッファをすべてタブで開く
:tabs
# タブの一覧表示
:h tabpage
# タブ機能のヘルプ

個人的には MiniBufExplorer の方が今のところ使い勝手がよいです。

Undo branches

undo や redo を時系列で戻せる機能がつきました。例えば 30 秒前まで遡りたければ、

:earlier 30s

5分前まで遡りたければ

:earlier 5m

で戻ることが可能です。この undo は undolevels によってどこまで undo の履歴を保存しておくか(default 1000)なので、数百時間前まで戻したいような人は、set undolevels で多めに設定しておくと良さそうです。

ElimElim2006/05/24 20:35capsule イイネ!

secondlifesecondlife2006/05/25 00:49新作は好みじゃないかも><

shugoshugo2006/05/26 08:27vimのundoって、すぐに「u_undo: 行番号が間違っています」って言われません?

secondlifesecondlife2006/05/26 09:50む、云われたこと無いですね。

shugoshugo2006/05/26 12:05やっぱり日頃の行いですかねえ:(

secondlifesecondlife2006/05/26 12:10そうだと思います!:P