nvim-treehopperを使うと、ソースコードの抽象構文木に基づいた範囲選択が簡単にできます。
関数定義全体を選択とか、if文の条件部分を選択とか、文脈に沿った範囲選択が捗るわけです。
おそらく、定番の使い道は選択範囲の削除(d | D)やヤンク(y | Y)でしょう。加えてコードの折り畳み(zf)とも相性が良いとに気付きました。

treehopperで選択した範囲を折り畳む様子
ノーマルモードではzf{motion}と、モーションで移動した範囲に対して折り畳みを実行するので、使い勝手が悪く感じます。
そこで、以下のようにzfをマッピングしてあげると、モーションの変わりにnvim-treehopperで折り畳み範囲を決定できます。
vim.api.nvim_set_keymap(
  'n',
  'zf',
  function()
    require'tsht'.nodes()
    vim.cmd("normal! zf")
  end,
  {silent = true}
):help zfにある通り、zfはfoldmethodオプションが “manual” か “marker” の時しか、使えませんので、ご注意下さい。
Enjoy!!
 Atusy's blog
Atusy's blog