Open21
Nvim ntoes

現環境(2025/06/03)
- macOS 15.5
- nvim(from brew) v0.11.2
- pkg managaerとしてlazy.nvimを使用
主にrust関連のエディタに使用中
ここは無作為に情報を突っ込んでいくので、まとまってきた情報は記事にまとめる予定

入れてるPlugins
インデントされたものは依存関係
- "vhyrro/luarocks.nvim": luaのversion manager(?)
- "catppuccin/nvim": color theme
- "mason-org/mason.nvim": rust-analyzerとかのlsp manager
- "windwp/nvim-autopairs": ブラケットとか({})のオートペアツール
- "hrsh7th/nvim-cmp": 補完ツールの繋ぎ役らしい
- "hrsh7th/cmp-nvim-lsp"
- "hrsh7th/cmp-buffer"
- "hrsh7th/cmp-path"
- "saadparwaiz1/cmp_luasnip"
- "L3MON4D3/LuaSnip"
- "neovim/nvim-lspconfig": rust以外で必要らしい。一応入れてる
- "hrsh7th/cmp-nvim-lsp"
- "saecki/crates.nvim": rustのcrates系サポート
- "mrcjkb/rustaceanvim": rust特化のlsp等々設定ツール
- "nvim-tree/nvim-tree.lua": 左にファイルエクスプローラー
- "nvim-tree/nvim-web-devicons"

ctrl+o
でカーソルを前の位置に戻せる

Normal modeで
カーソル移動はhjkl or 矢印。キーポジションから絶対に離れたくないならhjkl使えばいいけど、普通に矢印の方が操作性がいい
h j k l
← ↓ ↑ →

Normal modeで かつ 大文字はshift押しながら
-
0
: 0でカーソルを行頭へ -
$
: でカーソルを行末へ -
gg
: ページ先頭へ -
G
: ページ最後へ -
L
: ページ最後(Gとは挙動が違う?一緒に見える)

-
w
: 次の単語へ(word?) -
b
: 前の単語へ(back?) -
W
: 次のスペース(の次の単語) *下部コードブロック参照 -
B
: Wの逆
fn r_serch<P: AsRef<Path>>(path: P) -> Vec<PathBuf> {
// ↑now ↑ここに

gk
: 1行上
gj
: 1行下

zz
: カーソル行を中央に
zt
: カーソル行をtopに
zb
: カーソル行をbuttomに

i
: カーソルの左にinsert
a
: カーソルの右にinsert
I
(big i): 先頭に移動してinsert
A
: 行末に移動してinsert

]]
: 次の関数?へ移動
[[
: 👆の逆?

-
<C-d>
: 半ページ下にスクロール -
<C-u>
: 半ページ上にスクロール

iでinsert mode
oでカーソル行の下に改行を作ってinsert

基本操作
Normal modeを中心に、insert mode, Command mode, View Modeがある
- escでいかなる場合でもnormalまで戻れる
- iやoでインサートへ
-
:
でコマンドモード(名称あってる?) - vでヴィジュアルモードへ(選択とか)

マウスでスクロールできるように

inlay hintは
以下でいけた。多分rust-analyzerが入ってればこれでいける
if vim.lsp.inlay_hint then
vim.lsp.inlay_hint.enable(true, { 0 })
end

ただ、なぜか2重で表示されてる

重ねて設定してたのでそこをコメントアウト
-- vim.keymap.set("n", "<Leader>rh", function()
-- vim.lsp.buf.inlay_hint(0, nil)
-- end, { desc = "Toggle inlay hints" })

画面分割

バッファーを以下コマンドで分割できる
-
:vsp path
: 左に新しく分割 -
:sp path
: 下に新しく分割 -
:vsp | b 3
: bufferにあれば(lsであれば) -
:sp | b 3
: 同じく

-
:vertical resize +10
: 現在のウィンドウ幅を変更。値は+-値と絶対値

:wa
: 全バッファ保存