いろんないみで

はまっちゃた

行の折りたたみfoldtextを設定をした

この記事は Vim Advent Calendar 2013 184 日目の記事です。

初めてvacを書きます

最近ますますvimが好きになってきました。 vimを使うまではテキストエディタにこだわりはなかったのですが、

なんでだろう。


vim

  • こんな機能があったらいいな
  • できたらいいな

を叶えてくれます。

vimrcにvimScriptを書いて「自分だけのあったらいいな機能」を作るのは楽しいです。
意外とvimScriptの情報は充実しています。

  • 日本語ヘルプ
  • VAC

それと、Lingr-vimの部屋

この部屋を覗くようになってから。更にvimが好きになりました。
見ているだけで面白いし、この部屋の人たちが好きになります。


vimrcに書いた折りたたみの設定

行の折りたたみの表示に関する設定をしました。
折りたたみの表示がなんか味気ないなと思って設定しました。
ファイルタイプがvim用です。

" min_vimrc {{{1
set enc=utf8
set cpo&vim modeline
set ambiwidth=double
set number

" {{{1
function! s:vimFoldText() " {{{2
    let mark = get(split(&foldmarker, ','), 0, '')
    let line = getline(v:foldstart, v:foldend)
    let sub = split(line[0], mark)[0]
    "let stars = ['☆', '★']
    let stars = ['★', '☆']
    let findTodo = '\c\v"[^"]+todo:[^"]*$'
    return repeat(stars[empty(filter(copy(line), 'v:val =~ findTodo'))], v:foldlevel) .
    \       substitute(sub, '\v^\s*"|"\s*$', '', 'g')
endfunction

augroup MYAUTOCMD " {{{2
    " todo: scriptId()
    autocmd!
    autocmd FileType vim
    \   let &l:foldtext = string(function('s:vimFoldText')) . '()'
augroup END

" {{{1

syntax enable
filetype on

"__END__ {{{1
" vim:set foldmethod=marker:

折りたたみの深さを☆の数で表します。
todo:コメントがある場合☆は★になります。

あれ、逆かな...。逆だった。

gvimrcは読み込んでいます。

gvim -u min_vimrc -- min_vimrc

こんな感じです。

画面キャプチャ

vim楽しい。