2014年11月26日水曜日

vimビルドメモ

個人用メモ

hg clone https://vim.googlecode.com/hg/ vim

hgの#!が正しくないと動かない。
#!/usr/local/bin/python

luaとpythonが入っていることが前提。
./configure --with-features=huge \
            --enable-multibyte \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/local/lib/python2.7/config \
            --enable-perlinterp \
            --enable-luainterp \
            --with-lua-prefix=/usr/local/ \
            --enable-cscope --prefix=/usr/local/stow/vim74_2 2>&1 | tee configurelog.txt
            
make 2>&1 | tee makelog.txt
ここでvimが起動するか確かめる。動かなかったらconfigure見直したりDLL調べたりする。
cygwinだとcygcheckが便利。

make install 2>&1 | tee makeinstalllog.txt

どこかに書かないと後でどのようにconfigureしたか思い出せない。

2013年8月13日火曜日

vim 7.4がリリースされました

なんとなくvim.orgに行ったら更新されててわろた。
正規表現エンジンが新しくなったようですね。あとpythonまわりも。
あとでアップデートしておこう。

最近 --remote-tab-silentでgvimの多重起動を防ぐことを知った。
最初の起動をどうしようか。

あとM570とK270を買ってワイヤレスになってから姿勢が悪くなった。
ファイラーのキーバインドを設定してキーボードだけである程度操作できるようになり、
ランチャーはfenrirを使い、
ブラウザにはvimperatorとかvichromeとかを入れ、
キーボードとトラックボールをひざに置いて背もたれに思い切り寄りかかる。
それなりに楽だけど健康にいいかは疑問である。

BPSでシラセが使ってたマウスなのかキーボードなのかよくわからないやつとヘッドマウントディスプレイがあれば幸せになれる気がします。

2013年8月6日火曜日

gvimを半透明にするついでに透明度を切り替えられるようにする

windows kaoriya版でのお話。
ウィンドウを透過させるとなにかと便利ですよね。
半透明と不透明をトグルで切り替えるようにすると半透明が邪魔になる場合も対応できて幸せになれます。

"とりあえず起動時のデフォルトを200
set transparency=200
let s:_transparency = &transparency
function! g:toggleTransparency()
if &transparency != 255
let s:_transparency = &transparency
set transparency=255
else
execute 'set transparency=' . s:_transparency
endif
endfunction
noremap <expr><Plug>_toggleTransparency g:toggleTransparency()
map <Space>tt <Plug>_toggleTransparency

簡単な説明
<Space>ttを押すと半透明、不透明が切り替わります。透明度が保存されているので不透明から半透明になるとき復元されます。
透明度の設定なので_gvimrcなどに追加してください。

2013年6月18日火曜日

vimで()や""などの括弧を自動補完しようとしたら迷走した

追記2016-02-17
この記事を読まないでvim-smartinputを使うとよろし

括弧の閉じ忘れミスを減らそうと思ってvimの自動補完を考えたら迷宮に入った気分になった。
とりあえずこう書いておいて、あとでまた考えることにする。

----------------------------------
function! g:needSemicolon()
if &filetype =~ 'ruby\|vim'
return "\<LEFT>"
else
return ";\<LEFT>\<LEFT>"
endif
return ""
endfunction
inoremap <expr><Plug>endSemicolon g:needSemicolon()
imap (; ()<Plug>endSemicolon
imap {; {}<Plug>endSemicolon<CR><ESC>O
imap [; []<Plug>endSemicolon
imap "; ""<Plug>endSemicolon
imap '; ''<Plug>endSemicolon
imap /; //<Plug>endSemicolon
inoremap <> <><LEFT>
inoremap {<CR> {<CR>}<ESC>O

----------------------------------
関数名や妙なキーバインドからも迷走具合がよくわかる。
でもこの{}は気持ちがいい。
inoremap {<CR> {<CR>}<ESC>O

以下はどのように迷走したかを書く感じで。