higevim(仮) このページをアンテナに追加

2007-06-19 このエントリーを含むブックマーク

グループの方にもテスト

no title

トラックバック - http://vim.g.hatena.ne.jp/higeorange/20070619

2006-08-12

行をソートする 18:13 行をソートする - higevim(仮) を含むブックマーク はてなブックマーク - 行をソートする - higevim(仮)

function! SortLine() range
    let lines = []
    let cl = a:firstline
    while cl <= a:lastline
        let line = getline(cl)
        call add(lines,line)
        let cl += 1
    endwhile
    let cl = a:firstline
    call sort(lines)
    for i in lines
        call setline(cl,i)
        let cl += 1
    endfor
endfunction

不細工だ。

追記 8/20 11:54

いまさら気づいたけど普通にあるじゃねーか

:sort

何か作るにしてもまずヘルプを読めということですね。

トラックバック - http://vim.g.hatena.ne.jp/higeorange/20060812

2006-08-10

Dictionary(辞書って訳してよいものだろうか) 00:29 Dictionary(辞書って訳してよいものだろうか) - higevim(仮) を含むブックマーク はてなブックマーク - Dictionary(辞書って訳してよいものだろうか) - higevim(仮)

Perlでいうところのハッシュ,javascript連想配列か。

{ {key} : {value}, ....}
:let dict = {"un": "one", "deux": "two", "trois": "three"}
:echo dict["deux"]
> two
:echo dict.trois
> three

Dictionary関係組み込み関数

並び的にはリストのそれとよく似ている。Dictionaryだけの関数をいくつか。

keys()

Dictionaryのkeyすべてを配列に、順番は任意

:echo keys(dict)
> ["deux","trois","un"]

b

values()

Dictionaryのvalue全てを配列

:echo values(dict)
> ["two","three","one"]
items()

keyとvalueをセットにして重配列(そんな言葉あるのか)としてかえす

:echo items(dict)
[["deux","two"],["trois","three"],["un","one"]
has_key()

key存在するかどうかを調べる

:echo has_key(dict,"un")
> 1
:echo has_key(dict,"cinq")
> 0

for文 09:10 for文 - higevim(仮) を含むブックマーク はてなブックマーク - for文 - higevim(仮)

:let hoge = ["fuga","foo","bar"]
:for i in hoge
:echo i
:endfor
> fuga
  foo
  bar

javascriptのfor inと同じかと思ったけどinのあとに取れるのはリストのみか。


if,while文 09:31 if,while文 - higevim(仮) を含むブックマーク はてなブックマーク - if,while文 - higevim(仮)

特に悩むところはなさそうなので省略。


htmlのオムニ補完 14:52 htmlのオムニ補完 - higevim(仮) を含むブックマーク はてなブックマーク - htmlのオムニ補完 - higevim(仮)

http://d.hatena.ne.jp/higeorange/20060804/1154676061

で書いたように大文字の要素名で補完されるんだけど、

"<"だけ打って,C-x-oすると小文字の要素名で補完できる。んーこれを何文字か打ったあとにやってくれればなぁ。"</"のあとにC-x-oすればちゃんと閉じてくれるからよしとするか。</ppp>

んでもう一つ気づいたことは,<html>直下では<body>,<head>しかありえないとか,<head>内ではこの要素だけとかをちゃんと考えてくれているんだね。


追記 - 解決策

.vimrc

autocmd FileType html :set filetype=xhtml
autocmd Filetype html :set omnifunc=htmlcomplete#CompleteTags

Thx, secondlife.


再追記 9/1 8:55

新規にhtmlファイルをつくろうとしたとき

autocmd FileType html :set filetype=xhtml

がエラーとなってしまう。これはやめて,"/usr/share/vim/vim70/autoload/htmlcomplete.vim"の645行目をコメントアウトする方に変更。

トラックバック - http://vim.g.hatena.ne.jp/higeorange/20060810

2006-08-08

ヘルプの読み方 13:37 ヘルプの読み方 - higevim(仮) を含むブックマーク はてなブックマーク - ヘルプの読み方 - higevim(仮)

"C-]"でカーソル下の単語のヘルプへ。戻りたい時は"C-t"。

例えば各ヘルプインデックスの頭にある数字のところにカーソルを持っていって "C-]"。でそこへとべる。

リスト 14:29 リスト - higevim(仮) を含むブックマーク はてなブックマーク - リスト - higevim(仮)

:let hoge = [1,2,3]
:echo hoge[0]
> 1
:echo hoge[-1] "-1は最後の要素
> 3

"リストを展開(perlっぽい)
"要素が多かったり少なかったりした場合はエラーがでる。一応展開はされるようだ。
:let [var1,var2,var3] = hoge
:echo var1
> 1
:echo var2
> 2
:echo var3
> 3

"リスト連結
:let fuga = hoge + [4,5]
:echo fuga
> [1,2,3,4,5]

"リストの要素を部分的にとりだす
:let foo = fuga[1:3]
:echo foo
> [2,3,4]
:let bar = fuga[2:]
:echo bar
> [3,4,5]

リスト関係組み込み関数

get()

要素を取り出す

:echo get(hoge,2)
> 3
:echo get (hoge,6,"null")
> null
len()

長さ

:echo len(hoge)
> 3
add()

最後に追加

:echo add(hoge,4)
> [1,2,3,4]
insert()

特定の場所に追加

"insert(リスト,追加する要素,追加する場所)
:echo insert(hoge,5,1)
> [1,5,2,3,4]
remove()

要素を取り除く

:echo remove(hoge,-1)
> 4   "[1,5,2,3]
map()

各要素に対してごにょる。

:echo map(hoge,"v:val + 1")
> [2,6,3,4]

v:valってのがリストの各要素。

join()

連結

:echo join(hoge,":")
> 2:6:3:4

まだまだたくさんあるけどこの辺で終了。

追記 8/10 1:35

get(),リストの展開

トラックバック - http://vim.g.hatena.ne.jp/higeorange/20060808

2006-08-07

vim script 16:42 vim script - higevim(仮) を含むブックマーク はてなブックマーク - vim script - higevim(仮)

vimグループに入ったもののvimスクリプトを書いたことはないので勉強を始める。

:h 41

を読むところから始める。


変数 17:10 変数 - higevim(仮) を含むブックマーク はてなブックマーク - 変数 - higevim(仮)

letで宣言。

:let hoge = 1

再代入時もlet。

:let s:huga = 2

ローカル変数

ほかにも,

b:name		バッファ内ローカル変数
w:name		ウィンドウ内ローカル変数
g:name		グローバル変数
v:name		vim内で定義済み変数

などがあるそうだ。

関数 17:20 関数 - higevim(仮) を含むブックマーク はてなブックマーク - 関数 - higevim(仮)

:function 名前 (引数,..,..)
:中身
:endfunction

関数名は大文字で始める

:call 関数名()

関数を呼び出す

:function hogefunc (foo,bar)
: echo a:foo
: echo a:bar
:endfunction

関数内で引数を扱う場合は"a:"で始める.


:function! ... (...,...)

で,既に定義されている関数の再定義

戻り値

:return hogehoge

returnのみの場合,0が返される。

vimスクリプトを試す 23:08 vimスクリプトを試す - higevim(仮) を含むブックマーク はてなブックマーク - vimスクリプトを試す - higevim(仮)

:runtime hoge.vim

SpudSpud2011/07/07 19:28Thanks for sahirng. Always good to find a real expert.

dcygbvxesudcygbvxesu2011/07/08 17:01L64uk0 <a href="http://ufnsgbmwbydp.com/">ufnsgbmwbydp</a>

eqlisfgakeqlisfgak2011/07/09 21:48iMR4Mi , [url=http://amlsalzderls.com/]amlsalzderls[/url], [link=http://zkqsjkczakaf.com/]zkqsjkczakaf[/link], http://tbjlcvxpxhcq.com/

cxdckfccxdckfc2011/07/10 18:53hKZbPp <a href="http://rwowewdwnffq.com/">rwowewdwnffq</a>

トラックバック - http://vim.g.hatena.ne.jp/higeorange/20060807

Link