■掲示板に戻る■ 1- 最新10

vim6

[340:名無しさん@お腹いっぱい。 (2001/07/30(月) 13:55)]
すごく初歩的なことだけど、
vim スクリプトってコマンドの後の変数とか文字列とか何が展開されるかわかりにくいよね。

set ○○=××
の××は"××"て書いたら " がコメントとみなされて空文字列が入るのに
let &○○="××"は普通に通ったりとか
set とか so の後は環境変数やオプション変数(?)は展開されるのに let でつくられた変数は展開されないとか。

多分本当は始めから
set ○○="××" とか source "△△"
っていう書き方をして統一すればよかったんだろうけど
設定ファイルに互換性を持たせるためにそういうわけにもいかずに set とかは自動的にダブルクォートで囲まれたような
挙動をすることにしたんだろうね。
解釈あってる?

#しかし α とか β とか思えないほど安定してるな。一回も落ちたことないよ。
#ところで ap で printersettings が printeroptions に変わったのに syntax/vim.vim は変更されていない。


[341:KoRoN (2001/07/30(月) 14:31)]
>>340
ソースにあたってないので正確ではないですが、おそらく違うでしょう。
スクリプトでオプションに設定する値を動的に生成して、
実際に設定したいという欲求があれば、それは:executeを使えばできるわけです。
:execute "set " . name . "=".value
こんな感じで。

でもこの表記は面倒な上にわかりにくいので、せっかく変数と代入:letという仕組みがあるのだから、
そいつにオプションを設定できる機能を持たせよう、というということではないでしょうか。
つまり「:let &name = value」は上で示すexecuteコマンドのエイリアスだと考えるのが正しいでしょう。
# &によるオプションの値の参照は説明できていませんけど勘弁してください。

vimを、letを含むスクリプトのevalベースで捉えることができれば確かに美しくて理解しやすくなりますが、
それではvimがviであるという本質を見誤っています。vimはevalが無くても機能するのですから。

# その変更を行った人物とsyntax/vim.vimのメンテナーが別人物なのでしょうね。どうしたってラグがでますよ。


[342:340 (2001/07/30(月) 17:19)]
># &によるオプションの値の参照は説明できていませんけど勘弁してください。
これは僕の勘違いです。
set ○○=&×× という書き方はできませんでした。

なるほど、あくまでも eval は追加機能だということですね。
これで納得できました。

でも個人的には、どうせならスクリプトを解釈する機能はコンパイル時に外せないようにして
すっきりした書き方にしてしまってもよかったんじゃないかなという気もしますが。


[343:KoRoN (2001/07/30(月) 17:57)]
>>342
> すっきりした書き方にしてしまってもよかったんじゃないかなという気もしますが。

私もそういうふうに考えたことがあったのですが、
それを極論していくとLispをベースにvimを再構築することが、
一番すっきりすることになってしまったんですよ。
ってそれemacsやん!、というわけでそれ以降考えるのは止めました。
この適度なゴタゴタ感、つぎはぎな感じこそがvimがvimたる所以なのではないでしょうか。


[344:名無しさん@お腹いっぱい。 (2001/07/30(月) 23:16)]
:autocmd や :map や :command
などの結果を別ウインドウで表示ってできませんか?
ただ、ドバーっと流れるだけじゃ不便です。


[345:KoRoN (2001/07/31(火) 00:11)]
なんか出来そうで出来ませんねぇ…autocmdやgroupで縛ったりくらいはできますけど。
それとも、何か見落としていることがあるのかしら?。


[346:名無しさん@お腹いっぱい。 (2001/07/31(火) 16:44)]
gVim-6.0ap(Win)にしてみたのですが、
gvimディレクトリ内のvimを読んでくれない(?)のか、
vimrc内でcmdheight=1としてもコマンドウィンドウの高さが2なんですよ。
gvim立ち上げて:set cmdheight=1を入力すると高さが1になるんですけどね。
2だと少々大きく感じるので、1にしたいですなぁ


[347:KoRoN (2001/07/31(火) 17:26)]
>>346
もうしわけないです。$VIM/gvimrcを見てください。
そっちでもcmdheight=2を設定してしまっているのです。
gvimrcにあるほうは削除してください。
gvimrcからvimrcに設定を移動したのですが、消すのを忘れてました。

個人用の設定は$HOME/_vimrcか$VIM/_vimrcに書くのをオススメします。
そうしていれば今回のようなことはなかったハズです。


[348:名無しさん@お腹いっぱい。 (2001/07/31(火) 17:35)]
それがうまく効かないんですよね。
$VIM/gvimrcに set cmdheight=2が。
で、$HOME/_vimrcに
set cmdheight=1 と書いたのですが、これも変化無し…

間違って前バージョンに上書きしたのがまずかったのかな?


[349:KoRoN (2001/07/31(火) 17:43)]
>>346-347
うそです。原因はちょっとだけ違っていました。

対処法は$VIM/_gvimrcの最後にcmdheightの設定を追加するか、
個人設定ファイル_gvimrcで行なってください。


次10 前10 最新10
NAME:MAIL:

read.cgi ver5.26+ (01/10/21-)