while ("im the true Vim master");

2009-09-29

Re: locate/findの結果ファイルをまとめてVimでひらく - ブックマクロ開発に

22:57

その方法でやるならもっと簡単に書けます。

vim -p `grep --files-with-matches {pattern} {file} ...`

私の場合は大抵Vim内から以下のような感じで:argsか:grepで開きます。

args `grep --files-with-matches {pattern} {file} ...`
grep {pattern} {file} ...

Re: インデント - 呆備録

11:28

nnoremap <silent> <leader>e :call <SID>MyIndent()<cr>
function! s:MyIndent()
  let line = getline('.')
  if match(line, '{') == 0
    execute ":normal V%="
  elseif match(line, '{') != -1 
    execute ":normal f{V%="
  elseif match(line, '}') == 0 
    execute ":normal V%="
  elseif match(line, '}') != -1
    execute ":normal f}V%="
  endif
endfunction
インデント - 呆備録

細かいところに目を瞑れば

nnoremap <Leader>e  $=aB

これで十分な気がします。

追記: その方法でやるにしても、もう少し整理できる気が。

nnoremap <silent> <Leader>e  :<C-u>call <SID>MyIndent()<Return>

function! s:MyIndent()
  let line = getline('.')
  if match(line, '{') == 0
    normal! V%=
  elseif match(line, '{') != -1 
    normal! f{V%=
  elseif match(line, '}') == 0 
    normal! V%=
  elseif match(line, '}') != -1
    normal! f}V%=
  endif
endfunction

function! s:MyIndent()
  let line = getline('.')
  if match(line, '{') == 0
  elseif match(line, '{') != -1 
    normal! f{
  elseif match(line, '}') == 0 
  elseif match(line, '}') != -1
    normal! f}
  else
    return
  endif

  normal! =aB
endfunction

function! s:MyIndent()
  let cursor_pos = getpos('.')
  let cursor_line = cursor_pos[1]

  normal! 0
  if (search('^[^{]*{', 'ce', cursor_line) == 0
  \   && search('^[^}]*}', 'ce', cursor_line) == 0)
    call setpos('.', cursor_pos)
    return
  endif

  normal! =aB
endfunction

opparaoppara2009/09/29 12:46追記ありがとうございます。また、<C-u>を忘れてました。
最後のものが私の求めていたものです。。
精進します。

トラックバック - http://vim.g.hatena.ne.jp/ka-nacht/20090929
最近のコメント
あわせて読みたいブログパーツ
AX