## 事象 [[snacks.picker]]の `min_height` より小さいターミナルウィンドウでピッカーを開くと、一番上の候補がリストに表示されなくなる。 ![[2026-01-17-20-39-46.avif]] *縦サイズ30のウィンドウで起動した結果* 期待値は下のリストにアクティブな `.gitignore` が表示されること。 設定は以下。 ```lua opts = { -- 中略 picker = { layout = { cycle = true, preset = "vertical", layout = { backdrop = false, width = 120, min_width = 80, height = 0.9, min_height = 30, box = "vertical", border = "rounded", title = "{title} {live} {flags}", title_pos = "center", { win = "preview", title = "{preview}", height = 0.5, border = "bottom" }, { win = "input", height = 1, border = "bottom" }, { win = "list", border = "none" }, }, }, } -- 中略 } ``` ### 環境 | 対象 | バージョン | | --------------- | --------- | | [[macOS]] | 15.7.3 | | [[Ghostty]] | 1.2.3 | | [[Neovim]] | 0.11.5 | | [[snacks.nvim]] | `fe7cfe9` | ## 原因 `min_height` で指定されたサイズ以下(もしくは+2以下)の場合に、borderを描画していると不足している表示領域が占有されるため(らしい)。 ## 解決方法 [[Neovim]]の表示行数に応じて `border` の表示/非表示を切り替える。 ```diff - border = "rounded", + -- min_heightより小さいときは枠線を出すと先頭の候補が消えるので調整 + border = vim.o.lines <= 32 and "none" or "rounded", ``` ![[2026-01-17-20-41-01.avif]] 都合悪くなければ、`min_height` を `10` など極端に小さくする方法もある。 ## 参考 - [snacks picker 表示問題の解決](https://gemini.google.com/share/0e1e45402554)