編集中のPerlスクリプトの文法チェックをキー一発で 。
%
% mkdir -p ~/.vim/ftplugin/perl
% vi .vim/ftplugin/perl/init.vim
i
compiler perl
map ^C :make^M ... ^Cは Ctrl-V Ctrl-Cと打鍵。^MはCtrl-V RETURNと打鍵
:wq
これで、perlスクリプトをvimで開くと、Ctrl-CキーでPerlの
文法チェックが行われ(perl -Wc)、結果が表示される。
参考ページ:
perl.vimの、perlプラグインの使い方
~/.vim/ftplugin/perl/init.vim, filetype plugin on を設定
vimユーザマニュアル ファイルタイプを使う
とおもったら、ちょうどRuby会議の中でVim Kaigiが行われていて、
その中での発表資料
Vim用キーワード補完プラグイン - neocomplcacheについてが
おもしろかった。冒頭でVimプラグインでshellを作ったり、という
話を聞いてうーん、と思ったが、後半、shellの話からVim用twitter
プラグインの話まで展開し、まさに怒涛の開発。neocomplecacheの
ほうは、includeファイルや構造体のメンバーも含め、
関数名や変数名をポップアップメニュー表示をしながら、vim上で補完できる。
また、関数名についてはスニペット(tooltip)で関数の概要を表示してくれる。
すごい。
直前または次の空行に移動するViコマンドで、
perlの配列データの作成がスイスイ 。
配列を定義するソースコードの要素の間に空行を入れておく。
viの '{' コマンドで直前の空行に移動、'}' で次の空行に
移動する。'{{{{'と連続入力すれば、4つ前の空行へ移動する。
空行にカーソルを置いた状態で 'y}' とすれば、現在の空行から
次の空行までが、vi上にコピーされる。
TeraTerm で開いた ssh コンソールで
vim のカラー表示 。~/.vimrc に以下の設定を追加する。
256 色表示もあったが、いい配色がなかった。
set term=builtin_linux
set ttytype=builtin_linux
colorscheme pablo
syntax on
vim はすごい、ほとんどemacs 。
なんとはなしに
/proc/プロセス番号/mapsを見てみた。
すると、libperlとかlibpythonがロードされていた。
で、vimで
:help perlしてみたら、perlのスクリプトを
編集するためのオプションのほかに、vim内からperlを呼ぶ方法が
書かれていた。しかも、vim内部のデータを利用しながら、
vimのJavaScriptのような感じで利用できる。vim内部のデータを
利用するときは、perlのVimモジュールを利用する。
pythonとrubyでも同じようなことができるらしい。
確かに、vim のスクリプティング言はなかったので、
perl や pythonを使って拡張してしまうのも、あり。
機能が別々になってしまいそうだけれども。
ただしFedora 9添付のvimにはrubyはリンクされていなかった。
Windowの分割表示もできるし。
作成(Ctrl-W n)、単一化(Ctrl-W o)、次へ(Ctrl-W j)、前へ(Ctrl-W k)
など。
もちろん編集中モードにしておけば、上下左右のカーソルキーで
どこにでも移動できるので、コマンドモードに戻って
jklhなどのカーソル移動コマンドも覚える必要がない。
覚えたほうが速い操作ができるけれども、emacsとvimの差は
あまりない。スクリプトだって、Lispで書くか、よく知っている
perl/python/rubyで書くか、の違い。Lispでネットワーク関係の
スクリプトを書くことも少ないので、当然vimのほうがよい。
emacsも、エディタの内部データを扱うスクリプトを
perl/ruby/pythonで書けるのか? 最近使ってないのでわからないが。
Linux標準教科書の "viを一番簡単に利用する方法"を読んでみて 。
かなりぐっとくる見出しだったので読んでみた。iコマンドでinsertモードに
入っても、カーソルキーが効く、とある。なるほどー。今は効くのか。
これは簡単。上の行でも下の行でも移動できる。
行移動に関しては:コマンドを使った行指定が説明
されている。確かに、s/// コマンドでも利用するので、これは必要。
vi に慣れたら、Gを使ってほしい。
| コマンド | 操作
|
|---|
1G | ファイルの先頭行へ移動する
|
|---|
[数字]G | 数字で指定した番号の行に移動する
|
|---|
G | ファイルの最終行に移動する
|
|---|
あと、強制上書きコマンドの :w! は、ファイルの書き込み
モードがオフになっていても、オーナーがグループが合っていれば
書き込みできてしまうので、よく注意が必要だ。
EMobile環境の vi (vim) で便利なのは、f コマンドと
; コマンド 。fコマンドに続けて1文字打ち込むと、現在行内で指定した
文字の上にカーソルを移動する。
; コマンドで、さらに右にある同じ文字の上にカーソルを移動する。
この応用で、直近の " までの文字を削除するviコマンドは、これ。
x f "
遅延が大きいネットワークでは、コマンドでカーソル移動を高速化
できると気持ちいい。