2013年02月06日

GVimの起動時には幾つかの関数が使用出来ない

ここで言う"起動時"というのは、GVim起動直後の.vimrc処理時で、多分、"has('vim_starting')==1"な時の事。

なお、GVim――つまりGUI用のVimでの話であって、コンソールで使う普通の(?)Vimでは問題ない。

:help input()曰く。

NOTE: This function must not be used in a startup file, for
the versions that only run in GUI mode (e.g., the Win32 GUI).

しかしどうもinput()だけの話じゃ無いようで、以下の関数が使えなかった。

  • input()
  • inputdialog()
  • inputlist()
  • confirm()

ユーザーに何か問い合わせる系統かな……そういう関数って他にも在る?

inputで始まる関数群はまともに動かない(空文字列とか0が帰ってきている模様)だけだけど、confirm()が曲者で、Linux(Crunchbang)だとGVimの起動さえしない。

因みにWindows XPだと、第1引数と第2引数を改行で連結した内容がダイアログボックスで表示された。例えば、

call confirm('prompt', "Yes\nNo")

とだけ書いたファイル(%HOMEDRIVE%%HOMEPATH%\test.vim)を用意して、以下のように実行すると、

Windows XPの

gvim -u "%HOMEDRIVE%%HOMEPATH%\test.vim" -U NONE

以下のダイアログボックスが表示される。

1行目に

:autocmdにするとよさげ。やや意味合いが変わってくるけれど、影響は無いんじゃないかなぁ?

autocmd VimEnter * call confirm('prompt', "Yes\nNo")

どうも、--cmdオプションで使った時も同様の問題が発生する模様(あまりきちんと調べていない)。

バージョン7.3で確認。

ラベル:vim Gvim Vim_script
posted by 天井冴太 at 00:35| Comment(0) | TrackBack(0) | Tool | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください

この記事へのトラックバック