tmux/vim/neovim禁用鼠标中键粘贴

有时候我们只想保留终端软件的中键粘贴功能,而tmux、neovim、vim都有可能映射中键粘贴,这可能会导致粘贴两次,所以我们需要禁用tmux、neovim、vim的中键粘贴,一般做法都是解绑keymap的关系。

tmux禁用鼠标中键粘贴

检查tmux是否存在中键粘贴

tmux list-keys|grep mouse

可以看到MouseDown2Pane有映射paste相关的代码,说明有中键粘贴。

bind-key    -T root         MouseDown2Pane         select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { paste-buffer -p }

可以在配置中禁用。
在~/.tmux.conf中,添加下面的配置即可禁用中键粘贴。

# Disable the middle mouse button for pasting
unbind-key -T root MouseDown2Pane

vim/neovim禁用鼠标粘贴

vim/neovim可能还有鼠标中间的连击粘贴,所以需要都去除下。

vim

` Disable the middle mouse button for pasting
` map--mapmode nvo
map <MiddleMouse> <Nop>  
map <2-MiddleMouse> <Nop>
map <3-MiddleMouse> <Nop>
map <4-MiddleMouse> <Nop>
` imap--mapmode ic
imap <MiddleMouse> <Nop>
imap <2-MiddleMouse> <Nop>
imap <3-MiddleMouse> <Nop>
imap <4-MiddleMouse> <Nop>

neovim

-- Disable the middle mouse button for pasting
-- mode "" is equal to "n", "v", "o"
vim.keymap.set({"", "c", "i"}, "<MiddleMouse>", "<Nop>")
vim.keymap.set({"", "c", "i"}, "<2-MiddleMouse>", "<Nop>")
vim.keymap.set({"", "c", "i"}, "<3-MiddleMouse>", "<Nop>")
vim.keymap.set({"", "c", "i"}, "<4-MiddleMouse>", "<Nop>")

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Contents
滚动至顶部