AstroNvimのyankにおけるクリップボードへのコピーを無効にする

少し前から AstroNvim を使うようになった。 導入するだけで洗練されたUIですぐにnvimを使えるしプラグインもまとまっていてとても良い。

ただ個人的に馴染まなかったのがyankした時にクリップボードにもコピーされること。 yankでクリップボードにコピーされることで、想定してなかったペーストが起きたりでちょいストレスになってた。 AstroNvimのデフォルトに適用しようと頑張ったけど、どうしても手癖を矯正できなかったので、クリップボードへのコピーを無効にした。

デフォルトでクリップボードが有効になっている

vimのオプションに opt.clipboardというのがある。 これに unnamedplus が入っているとyankした時にクリップボードにもコピーされる。 luaのコメント通りSSHセッションではこれは無効化されて、ローカルでの操作のときに unnamedplus が有効になる。

github.com

    if not vim.env.SSH_TTY then -- only set `clipboard` if in SSH session and in neovim 0.10+
      opt.clipboard = "unnamedplus" -- connection to the system clipboard
    end

無効にする

~/.config/nvim/lua/plugins/astrocore.luaをいかのように修正すればよい。

  • 行頭の if true then return {} end を削除するかコメントアウト
  • vim.opt.clipboardを空にする設定を入れる
❯ cat ~/.config/nvim/lua/plugins/astrocore.lua
⭐️↓を削除 or コメントアウト
-- if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE

-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
-- Configuration documentation can be found with `:h astrocore`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
--       as this provides autocomplete and documentation while editing

---@type LazySpec
return {
  "AstroNvim/astrocore",
  ---@type AstroCoreOpts
  opts = {
    -- Configure core features of AstroNvim

...

    -- vim options can be configured here
    options = {
      opt = { -- vim.opt.<key>
        relativenumber = true, -- sets vim.opt.relativenumber
        number = true, -- sets vim.opt.number
        spell = false, -- sets vim.opt.spell
        signcolumn = "yes", -- sets vim.opt.signcolumn to yes
        wrap = false, -- sets vim.opt.wrap
        ⭐️↓追記
        clipboard = "", -- sets vim.opt.clipboard
      },

...

    },

...

自分は先頭行を思いっきり見落としてて clipboard = "" だけを入れた状態で、なんでクリップボード無効にならないんだ?となって危うくハマるところだった。 先頭行に if true then return {} end と書かれていて強制的にreturnしてこのファイルにある設定を一切取り込まないようになってた。 WARN: REMOVE THIS LINE TO ACTIVATE THIS FILEというコメントが書かれているのに😅