Recent changes

2013-04-14 2013-04-02 2013-02-17 2013-01-29 2013-01-20 2013-01-18 2012-12-08 2012-11-06 2012-09-04 2012-08-02

vim/script



vim script

vim scriptを勉強してみるぞ。もくもくと更新していくよ!

Hello World

<blockquote> 2 :1:01/12/17 12:22 まずはHelloWorldから。 適当なファイル hello.vim とかに echo "HelloWorld" とだけ書いて :source hello.vim で実行 HelloWorld が表示されれば大成功! </blockquote> やった!ぼくにもできたよ!

変数への代入

<blockquote> ■変数代入 実行例:

echo foo

Hello World

let bar = "2"

foo+bar=7 </blockquote> これならできるできる!

変数の削除

変数を確保した時点でメモリを消費するので使わない場合は解放が必要になる。

:unlet s:count 

でs:countを解放できる。存在しない変数にたいして行うとエラーがでるが、エラーを無視するには

:unlet! s:count 

とする。

関数とかリファレンス

getline()

指定された行の内容を返す。

let aaa = getline('.')

とかで、現在カーソルが存在する行の内容を取得できる。

exists()

変数が定義されているか調べる。s:countが定義されているかどうか調べるには

:if exists("s:count")
:endif

みたいな。引数には文字列を入れる。exists(s:count)だとs:countの中身と同じ名称の変数が定義されているかどうか調べてしまうので。

:echo

文字列の表示

:let

変数に値を代入する。

:let {variable} = {expression} 
let foo = "Hello World"
let s:foo = "Hello World"

s:をつけると、そのファイル内だけで利用できるローカル変数になる。っつーことはs:つけまくれってことだな。(ただし関数内なら、s:つけなくても勝手にローカル変数になる。当然メモリも勝手に解放してくれるはず) 他にも

  • b:name バッファローカルな変数
  • w:name ウィンドウローカルな変数
  • g:name (関数内で宣言されてても)グローバルな変数
  • v:name Vim で最初っから用意されてる変数

がある。

:while

まんまwhile。

:while {condition}
: {statements}
:endwhile 

memo

Vimは0がfalse。それ以外はtrue。-1もtrue

可変長引数

vim7からかな。関数の引数を...とする事で可変長の引数を受けとることができる。受けとるにはa:数字。a:0は引数の数。以下は第一引数をfirstという変数に代入するサンプル。

function Test(...)
 if a:0 > 0
   let first = a:1
 endif 
endfunction

関連リンク


コメント

[[halt>UserPage/halt]] &size(80%){2006-01-12 16:26:59}: ご指摘などありましたら。