Vim6スクリプトお勉強スレat UNIXVim6スクリプトお勉強スレ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト19:ヘッポコ訳者 ◆xBY/hgW2 01/12/18 21:32 <<<変数の削除>>> 変数はメモリを食ってて,":let" コマンドで一覧を見る事が出来るぜぃ. で,変数を削除したい時には ":unlet" コマンドを使うべし. :unlet s:count こんな感じ.この場合はファイルローカルな変数 "s:count" を削除して メモリを解放するってわけだ.変数が存在すんのかしねぇのか分からん けど,無い時でもエラーメッセージが出るのはウザいから嫌って場合は "!" を後にくっつければいいだけ. :unlet! s:count つまりこーゆー事ね.んで, script が終了した後でも,ローカル変数が自 動的に削除されるって事は無くって,次にその script が読み込まれた時に, 前に使った時と同じままの値になるからな.まぁつまり, :if !exists("s:call_count") : let s:call_count = 0 :endif :let s:call_count = s:call_count + 1 :echo "called" s:call_count "times" こんな事が出来るってわけだ."exists()" 関数は変数が定義されてるかどーか を調べる関数な.引数には調べたい変数の名前(の文字列)を与えてやりゃー いい.変数そのものを与えちゃダメだぞ.もし, :if !exists(s:call_count) なんてやっちまったら s:call_count という変数に「格納されてる値」が調 べたい変数の名前として適用されちまうからな.これはやりたい事とは違う だろ. 感嘆符 "!" は値を反転(否定)するぞ.つまり値が真だったら偽にするし,値が 偽だったんなら真にするってわけだ.まぁつまり"not"って読めゃいいんだよ. んだから, "if !exists()" っつーのは "if not exists()" ってわけ. Vim で真っつったらゼロ以外の事だぞ.んでもってゼロだけが偽な. 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch