Vim/NeovimのCTRL_GをPrefixにしてみる

by
カテゴリ:

<C-G>Ctrl_G)は、編集中のバッファのファイル名や編集状態、現在行に関する情報を与えてくれるマッピングです。

私の場合、ステータスラインに必要な情報は表示しているので、不要だなと気付きました。

なので思いきって、Gitに関連する操作のPrefixに割り当ててみました。 Git関連の操作には、lambdaalisue/gin.vimtanvirtin/vgitnvim-telescope/telescope.nvimといったプラグインを使い分けています。

-- <C-G>相当だが、ファイルパスをクリップボードに追加
vim.keymap.set('n', '<C-G><C-G>', [[<C-G><Cmd>let @+ = expand("%")<CR>]], {})

-- git commitをインサートモードで開始
vim.keymap.set('n', '<C-G><C-Space>', [[<Cmd>Gin commit<CR>i]], {})

-- git stage
vim.keymap.set('n', '<C-G><C-S>', [[<Cmd>Telescope git_status<CR>]], {})

-- ファイルを保存してカーソル位置のハンクをgit add
vim.keymap.set('n', '<C-G><C-A>', function()
  vim.cmd("up")
  require("vgit")vgit.buffer_hunk_stage()
end, {})

Enjoy