Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

foldexprの評価のみを実行する方法

$
0
0

短い日本語でタイトルをうまく表現できなかったのですが、以下の理由で、foldexprを評価するだけの関数(もしくはコマンド)を作り、手動でfoldexprを評価させたかったのです。

  • ずっとfoldmethodexprのままだと、行数の多いファイルを編集時にものすごく重い!
  • autocmdで動的にうまくfoldmethodを切り替えられたらよいのですが、ちょうど良い設定が実現できない。
  • :setlocal foldmethod=exprを一々タイプするのもめんどい。

で、以下が実現できるコードです。わかってしまえば簡単だったのですが、redrawを行うとfoldexprが評価され、redrawを行わないとfoldexprが評価されませんでした。

function!s:eval_foldexpr()let saved_foldmethod =&foldmethodlet saved_foldexpr =&foldexprtrysetlocalfoldmethod=expr
    setlocalfoldexpr=getline(v:lnum)[0]==\"\\t\"redrawfinallylet&l:foldmethod= saved_foldmethod
    let&l:foldexpr= saved_foldexpr
  endtryendfunction" 適当にキーマッピングする。nnoremap<leader>f    :<C-u>call<sid>eval_foldexpr()<cr>

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>