snacks.nvim
v2.4.0
snacks.nvim
Neovim 用の小さな QoL プラグインのコレクション。
スナック | 説明 | 設定 |
---|---|---|
ビッグファイル | 大きなファイルを扱う | |
バッファ削除 | ウィンドウのレイアウトを崩さずにバッファを削除 | |
ダッシュボード | 美しい宣言型ダッシュボード | |
デバッグ | デバッグ用のかなりの検査とバックトレース | |
git | Gitの便利な機能 | |
gitbrowse | ブラウザでアクティブなファイルのリポジトリを開きます (GitHub など)。 | |
怠け者 | LazyGit をフロートで開き、カラースキームを自動構成し、Neovim と統合します | |
通知する | Neovim のvim.notify と連携するユーティリティ関数 | |
通知者 | より良く、より美しくなったvim.notify | |
クイックファイル | nvim somefile.txt 実行すると、プラグインをロードする前に、ファイルができるだけ早くレンダリングされます。 | |
名前を変更する | neo-tree.nvim や mini.files などのプラグインをサポートする LSP 統合ファイルの名前変更。 | |
ステータス列 | かなりのステータスコラム | |
ターミナル | フローティング/分割端子の作成と切り替え | |
トグル | どのキーアイコン/色と統合されたキーマップを切り替えます | |
勝つ | フローティング ウィンドウまたは分割を簡単に作成および管理 | |
言葉 | LSP リファレンスを自動表示し、それらの間を素早く移動します |
パッケージ マネージャーを使用してプラグインをインストールします。
重要
いくつかのプラグインでは、 snacks.nvim
早めにセットアップする必要があります。セットアップはいくつかの autocmd を作成しますが、プラグインはロードされません。コードをチェックして、それが何をするのかを確認してください。
注意
プラグインのオプションを明示的に渡すか、 enabled = true
設定して有効にする必要があります。
ヒント
:checkhealth snacks
を実行して、すべてが正しく設定されているかどうかを確認することをお勧めします。
{
" folke/snacks.nvim " ,
priority = 1000 ,
lazy = false ,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
bigfile = { enabled = true },
notifier = { enabled = true },
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
},
}
lazy.nvim
snacks.nvim
の詳細なセットアップについては、以下の例を確認してください。
特定の設定については、各プラグインの Readme を参照してください。
--- @class snacks.Config
--- @field bigfile ? snacks.bigfile.Config | { enabled : boolean }
--- @field gitbrowse ? snacks.gitbrowse.Config
--- @field lazygit ? snacks.lazygit.Config
--- @field notifier ? snacks.notifier.Config | { enabled : boolean }
--- @field quickfile ? { enabled : boolean }
--- @field statuscolumn ? snacks.statuscolumn.Config | { enabled : boolean }
--- @field styles ? table<string , snacks.win.Config>
--- @field dashboard ? snacks.dashboard.Config | { enabled : boolean }
--- @field terminal ? snacks.terminal.Config
--- @field toggle ? snacks.toggle.Config
--- @field win ? snacks.win.Config
--- @field words ? snacks.words.Config
{
styles = {},
bigfile = { enabled = false },
dashboard = { enabled = false },
notifier = { enabled = false },
quickfile = { enabled = false },
statuscolumn = { enabled = false },
words = { enabled = false },
}
snacks.nvim
を設定する方法については、以下の例を参照してください。
{
" folke/snacks.nvim " ,
priority = 1000 ,
lazy = false ,
--- @type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = { enabled = true },
notifier = {
enabled = true ,
timeout = 3000 ,
},
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
styles = {
notification = {
wo = { wrap = true } -- Wrap notifications
}
}
},
keys = {
{ " <leader>un " , function () Snacks . notifier . hide () end , desc = " Dismiss All Notifications " },
{ " <leader>bd " , function () Snacks . bufdelete () end , desc = " Delete Buffer " },
{ " <leader>gg " , function () Snacks . lazygit () end , desc = " Lazygit " },
{ " <leader>gb " , function () Snacks . git . blame_line () end , desc = " Git Blame Line " },
{ " <leader>gB " , function () Snacks . gitbrowse () end , desc = " Git Browse " },
{ " <leader>gf " , function () Snacks . lazygit . log_file () end , desc = " Lazygit Current File History " },
{ " <leader>gl " , function () Snacks . lazygit . log () end , desc = " Lazygit Log (cwd) " },
{ " <leader>cR " , function () Snacks . rename . rename_file () end , desc = " Rename File " },
{ " <c-/> " , function () Snacks . terminal () end , desc = " Toggle Terminal " },
{ " <c-_> " , function () Snacks . terminal () end , desc = " which_key_ignore " },
{ " ]] " , function () Snacks . words . jump ( vim . v . count1 ) end , desc = " Next Reference " , mode = { " n " , " t " } },
{ " [[ " , function () Snacks . words . jump ( - vim . v . count1 ) end , desc = " Prev Reference " , mode = { " n " , " t " } },
{
" <leader>N " ,
desc = " Neovim News " ,
function ()
Snacks . win ({
file = vim . api . nvim_get_runtime_file ( " doc/news.txt " , false )[ 1 ],
width = 0.6 ,
height = 0.6 ,
wo = {
spell = false ,
wrap = false ,
signcolumn = " yes " ,
statuscolumn = " " ,
conceallevel = 3 ,
},
})
end ,
}
},
init = function ()
vim . api . nvim_create_autocmd ( " User " , {
pattern = " VeryLazy " ,
callback = function ()
-- Setup some globals for debugging (lazy-loaded)
_G . dd = function (...)
Snacks . debug . inspect ( ... )
end
_G . bt = function ()
Snacks . debug . backtrace ()
end
vim . print = _G . dd -- Override print to use snacks for `:=` command
-- Create some toggle mappings
Snacks . toggle . option ( " spell " , { name = " Spelling " }): map ( " <leader>us " )
Snacks . toggle . option ( " wrap " , { name = " Wrap " }): map ( " <leader>uw " )
Snacks . toggle . option ( " relativenumber " , { name = " Relative Number " }): map ( " <leader>uL " )
Snacks . toggle . diagnostics (): map ( " <leader>ud " )
Snacks . toggle . line_number (): map ( " <leader>ul " )
Snacks . toggle . option ( " conceallevel " , { off = 0 , on = vim . o . conceallevel > 0 and vim . o . conceallevel or 2 }): map ( " <leader>uc " )
Snacks . toggle . treesitter (): map ( " <leader>uT " )
Snacks . toggle . option ( " background " , { off = " light " , on = " dark " , name = " Dark Background " }): map ( " <leader>ub " )
Snacks . toggle . inlay_hints (): map ( " <leader>uh " )
end ,
})
end ,
}
ハイライトグループ | デフォルトグループ | 説明 |
---|---|---|
おやつノーマル | ノーマルフロート | フロートウィンドウの通常 |
スナックウィンバー | タイトル | ウィンドウのタイトル |
スナック背景 | なし | 背景 |
スナックノーマルNC | ノーマルフロート | 現在のウィンドウ以外では通常 |
スナックWinBarNC | スナックウィンバー | 現在のウィンドウ以外のタイトル |
スナック通知情報 | なし | 情報の通知ウィンドウ |
スナック通知者警告 | なし | 警告の通知ウィンドウ |
スナック通知デバッグ | なし | デバッグの通知ウィンドウ |
スナック通知エラー | なし | エラーの通知ウィンドウ |
スナック通知トレース | なし | トレースの通知ウィンドウ |
スナック通知アイコン情報 | なし | 情報通知のアイコン |
スナック通知アイコン警告 | なし | 警告通知のアイコン |
スナック通知アイコンデバッグ | なし | デバッグ通知のアイコン |
スナック通知アイコンエラー | なし | エラー通知用アイコン |
スナック通知アイコントレース | なし | トレース通知のアイコン |
スナック通知者タイトル情報 | なし | 情報通知のタイトル |
スナック通知者タイトル警告 | なし | 警告通知のタイトル |
スナック通知者タイトルデバッグ | なし | デバッグ通知のタイトル |
スナック通知タイトルエラー | なし | エラー通知のタイトル |
スナック通知者タイトルトレース | なし | トレース通知のタイトル |
スナック通知ボーダー情報 | なし | 情報通知の境界線 |
スナック通知ボーダー警告 | なし | 警告通知の境界線 |
スナック通知ボーダーデバッグ | なし | デバッグ通知の境界線 |
SnacksNotifierBorderError | なし | エラー通知の枠線 |
スナック通知者ボーダートレース | なし | トレース通知の境界線 |
スナック通知フッター情報 | 診断情報 | 情報通知のフッター |
スナック通知フッター警告 | 診断警告 | 警告通知のフッター |
スナック通知フッターデバッグ | 診断ヒント | デバッグ通知のフッター |
スナック通知フッターエラー | 診断エラー | エラー通知のフッター |
スナック通知フッタートレース | 診断ヒント | トレース通知のフッター |
スナックダッシュボード通常 | 普通 | ダッシュボードの通常 |
スナックダッシュボードデスク | 特別 | ダッシュボードの説明テキスト |
スナックダッシュボードファイル | 特別 | ダッシュボード ファイルの項目 |
スナックダッシュボードディレクトリ | 非テキスト | ディレクトリ項目 |
スナックダッシュボードフッター | タイトル | ダッシュボードのフッターテキスト |
スナックダッシュボードヘッダー | タイトル | ダッシュボードのヘッダーテキスト |
スナックダッシュボードアイコン | 特別 | ダッシュボードのアイコン |
スナックダッシュボードキー | 番号 | キーバインドテキスト |
スナックダッシュボードターミナル | スナックダッシュボード通常 | 端末テキスト |
スナックダッシュボードスペシャル | 特別 | 特別な要素 |
スナックダッシュボードタイトル | タイトル | タイトルテキスト |