トップ «前の日記(2007-09-27) 最新 次の日記(2007-09-29)» 編集

Pyon's Diary

[はてなブックマーク登録数] [Google に登録] [RSS フィード] Gourmet Hardware Programming Society Software
Amazon
成る可くJIS X 0213:2004對應MSフォント(5.0)、IPAフォント(003.01)で御覽下さい

2007-09-28 舊 平成拾玖年丁亥葉月拾捌日乙丑 (金・曇) [長年日記]

[節] Vim (7.1.100) での Perl Omnicompletion (Omni 補完)に附いて。

Vim (7.1.100) で使用出來る Omni 補完 (Omni Completion) は以下の九つ。

  • C (ft-c-omni)
  • (X)HTML with CSS (ft-html-omni)
  • JavaScript (ft-javascript-omni)
  • PHP (ft-php-omni)
  • Python
  • Ruby (ft-ruby-omni)
  • SQL (ft-sql-omni)
  • XML (ft-xml-omni)
  • その他 (ft-syntax-omni)

何故か Perl 用が無いので 「vim omni perl」で檢索するPerlMonks と云ふサイトで以下の頁が見附かつた。

未だ開發中だつたらしい。リンクを辿ると、アーカイブは以下の場所に在つた。

此處から落として頁に書かれてゐる通りに、

% unzip omniperl.zip
% vim omniperl.vba

と VimBall ファイルを Vim (7.1.100) で開き、

> :so %

を實行すると、

Vimball Archive
extracted <ftplugin/perl/omniperl.pl>: 649 lines
wrote /home/ishikawa/.vim/ftplugin/perl/omniperl.pl
extracted <ftplugin/perl/omniperl.vim>: 1486 lines
wrote /home/ishikawa/.vim/ftplugin/perl/omniperl.vim
extracted <doc/omniperl.txt>: 394 lines
wrote /home/ishikawa/.vim/doc/omniperl.txt
did helptags
続けるにはENTERを押すかコマンドを入力してください

とメッセージが出力されてインストール完了。$HOME/.vim/ の下に以下のファイルが出來てゐた。

$HOME/.vim/.VimballRecord
$HOME/.vim/ftplugin/perl/omniperl.vim
$HOME/.vim/ftplugin/perl/omniperl.pl
$HOME/.vim/doc/tags
$HOME/.vim/doc/omniperl.txt

其處で適當な Perl スクリプト・ファイルを開くと、Vim で勝手に畫面分割されて、

OmniPerl :
First Run, doing some checks !
Testing the perlscript with the standard module 'Carp' :
Got some results...GOOD
...but not what I expected...BAD!

Testing 'File::Basename' :
Got some results...GOOD
Found 'File::Basename::basename' ...EXCELLENT

Testing 'Net::Ping' :
Got some results...GOOD
Found '$net_ping->ping' ...EXCELLENT

Trying to build a module list ...
Done. List contains 504 entries.

Basic tests : 3/4 passed.
All fine.

To repeat this tests, exec the command :OmniPerlTest
 or remove the config file !
< OK >

Creating config file with defaults :
=> /home/ishikawa/.vim/ftplugin/perl/omniperl_config.vim
< OK >

と云つたメッセージが出力された。

此れで Perl でも Omni 補完 (Omni Completion) が利く樣に成つた。

追記: Gentoo と FreeBSD 4.x では。

Gentoo の emerge で入れた Vim (7.1.42) と FreeBSD 4.10 で野良インスコした Vim (7.1) では、

function <SNR>27_Init..<SNR>27_Test の処理中にエラーが検出されました:
行    3:
E36: 充分な容量がありません
function <SNR>27_Init の処理中にエラーが検出されました:
行    4:
E171: :endif がありません

英語だと、

Error detected while processing function <SNR>27_Init..<SNR>27_Test:
line    3:
E36: Not enough room
Error detected while processing function <SNR>27_Init:
line    4:
E171: Missing :endif

と云ふメッセージが出力されて動か無かつた。

追記: 假想端末の行數が問題?。

四時間程悶々としたが、上の問題は解決した。

職場では PuTTY を五拾行で使用してゐるが、普段家では二拾四行で作業してゐる。

「E36: Not enough room」と云ふメッセージは、vim71/src/global.h, vim71/src/windows.c 邊を見るとウィンドウに關係するエラー・メッセージで主に新しいウィンドウを作成出來無かつた時に出力される樣に見えた。

其れを頭に入れて omniperl.vim を眺めてゐると、1384 行目附近に、

func! s:Test()
  let cmdh_save=&cmdheight
  try
    set cmdheight=25
    redraw!
    echohl TODO
    echo "OmniPerl :"

と書かれてゐて、畫面の高さが問題では無いかと思ひ、假想端末の行數を二拾四行から一行づゝ増やして行くと、二拾八行にした所でエラー・メッセージが出力されずに、正常終了のメッセージが出力され、omniperl_config.vim が作成された。

なんなんだよぅ、一體!!!。

追記: GNU Screen でステータス領域を非表示にしてゐる場合。

GNU Screen でステータス領域を表示してゐ無い場合は二拾七行で正常に動いた。

Tags: Software | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] 晩御飯。

  • 白飯。
  • 若布の吸物。
  • エビチリ。
Tags: None | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink
[]

正當なXHTML1.1です! 正當なCSSです! BlogScouter Pyon's Land (MyMiniCity)
© pyon