## 事象
[[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)