読者です 読者をやめる 読者になる 読者になる

c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programmingに分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

Vimのバイナリで音楽を作りました

音樂 FuniSaya Vim Programming

Vim Advent Calendar 2012 99日目の記事です。以前13日目に、Vimmerの末路への入り口と云う記事で、素人をVimmerに引き込んだので(妄想)、今度は引き剥がします。

Vimのバイナリで音楽を作りました

Vimのバイナリを読み込ませて鳴らしました。うるせえ。

Vimを使うだけが能ではないのかもしれません。Vimを使って音楽を作れればいいのかもしれませんが、どういう設計にすればまともに音楽をつくれるのかアイデアはありません。使っている制作ソフトはJeskola Buzzです。
こんなんでも二時間はかかるんだよ(〃l _ l)

Pythonでない時だけ、末尾の空白をとる

とるな! と云う方はとらないでください。
autocmd BufWritePreで保存時に末尾の空白をとっていたのですが、Pythonを編集した時に、必要なindentも消してしまって困りました。Pythonの時は、此れをする、と云う用途であれば、autocmd FileType python autocmd BufWritePre <buffer>を使うなり、autocmd BufWritePre *.pyを使うなり、filetype pluginを書くなりすればよいようですが、Pythonの時だけ此れをしたくないと云う、逆なので少し困りました。
関数を呼び出し、filetypeで場合分けします。

" .vimrc
autocmd BufWritePre * call s:strip_trailing_whitespace()
function! s:strip_trailing_whitespace()
  let position = getpos('.')
  if &ft =~ 'python\|haskell\|coffee\|haml'
    %s/\S\zs\s\+$//e
  elseif &ft =~ 'markdown'
    %s/^\s\+$//e
  else
    %s/\s\+$//e
  endif
  call setpos('.', position)
endfunction

\zsは、matchの範囲を制限する正規表現で、肯定的後読み (\@<=) の様に使えます。
cf. Vim-users.jp - Hack #70: 正規表現でマッチする範囲を制限する http://vim-users.jp/2009/09/hack70/
cf. Vim-users.jp - Hack #75: 正規表現で先読み/後読みを使用する http://vim-users.jp/2009/09/hack75/


次、100日目は@さんです。おめでとうございます。