注:本文为 " Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案" 相关文章合辑。
未整理去重。
Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴
foryouslgme 发布时间 2016 - 09 - 28 10:24:16
Vim 基础
- 命令模式(command - mode) :多用于操作文本文件(而非操作文本文件内容),如保存文件;或改变编辑器自身状态,如设定多栏窗口、标签或退出编辑器等。进入命令模式:按
esc
+:
,再输入命令,例如:w
保存当前文件不退出,:q!
强制退出,:x
保存且退出。 - 插入模式(insert - mode) :用于修改文本内容。进入插入模式:在正常模式下按特定插入符,具体如下:
i
:在光标所在字符前开始输入文字并进入插入模式。a
:在光标所在字符后开始输入文字并进入插入模式。A
:在行尾开始输入文字并进入插入模式。o
(字母 o):在光标所在行的下面单独开一新行来输入文字并进入插入模式。O
(大写字母 O):在光标所在行的上面单独开一新行来输入文字并进入插入模式。s
:删除光标所在的字符并进入插入模式。I
:在行首开始输入文字并进入插入模式。S
:删除光标所在行并进入插入模式。G
:跳转到文章末尾。crtl + f
:向下翻页。ctrl + b
:向上翻页。
- 可视模式(visual - mode) :相当于高亮选取文本后的普通模式,具有子模式,包括以行为单位进行选取的可视行模式(使用 "V" 键进入)和以块为单位进行选取的可视块模式(使用 "Ctrl + v" 键进入)。进入可视模式:在正常模式下按
ctrl + v|V
。 - 正常模式(normal - mode)(普通模式) :主要用于浏览和修改文本内容,一般打开 Vim 即处于正常模式。进入正常模式:在任何模式下,按下
Esc
键即可返回正常模式。
不能右键粘贴设置方法
使用 vim 时,鼠标右键不能粘贴而是进入了 visual 模式,解决方法如下:
方法一
在命令模式下输入 :set mouse-=a
。
方法二
编辑 ~/.vimrc
文件,加入如下代码:
bash
if has('mouse')
set mouse-=a
endif
注:set mouse=a
用于开启鼠标功能,其中 a
表示所有模式。
附
vi 有三种模式:命令模式、插入模式、可视模式。鼠标可在各种模式中启用,具体如下:
The mouse can be enabled for different modes:
`n` Normal mode
`v` Visual mode
`i` Insert mode
`c` Command - line mode
`h` all previous modes when editing a help file
`a` all previous modes
`r` for |hit - enter| and |more - prompt| prompt
通常,使用 :set mouse=a
来启用所有模式下的鼠标功能(等价于设置 mouse
为 "nvich")。若只想在特定模式下使用鼠标,可针对性设置,例如:
:set mouse=nv
:使鼠标在普通模式和可视模式下工作。:set mouse=h
:使鼠标仅在帮助文件中工作(可通过 "g" 进行标签跳转)。
鼠标能否在可视模式或选择模式下开始选择,取决于 "selectmode" 选项是否包含 "mouse"。
查看之前的复制内容,可在命令模式下输入 :reg
。
>>>>>>
和 <<<<<<
等与 git
中的修改记录类似。
Vim 配置#Vim 中使用鼠标功能
马丁路德彬 发布时间 2017 - 02 - 10 11:53:47
1、简介
近期使用 vim 时,发现 vim 也可使用鼠标,本章主要介绍如何启用鼠标功能。
2、打开鼠标功能
在命令模式下输入 :set mouse=a
。
3、关闭鼠标功能
在命令模式下输入 :set mouse-=a
。
4、鼠标模式
'mouse'
的参数说明如下:
// n 普通模式
// v 可视模式
// i 插入模式
// c 命令行模式
// h 在帮助文件里,以上所有模式
// a 以上所有模式
// r 跳过|lit - enter|提示
// A 在可是模式下自动选择
'mouse'
的缺省值为空,即默认不使用鼠标。通常可使用 :set mouse=a
来启用鼠标(此设置等价于将 'mouse'
设为 "nvich")。若只想在某些模式或特定任务中使用鼠标,需关注对应模式的字母,例如:
:set mouse=nv
:使鼠标在普通模式和可视模式下可用。:set mouse=h
:使鼠标仅在帮助文件中可用(可通过 "g" 实现标签跳转)。
鼠标能否在可视模式或选择模式下开始选择,取决于 "selectmode" 选项是否包含 "mouse"。
5、解决鼠标模式右键不能粘贴问题
在设置了 'mouse'
选项(见上文)的情况下,使用鼠标和可视模式进行复制/粘贴的步骤如下:
- 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左键。这将启动可视模式并高亮选择区域。
- 按 "y" 将可视文本抽出到无名寄存器中。
- 在要插入的位置上按鼠标左键。
- 按鼠标中键(滚轮)进行粘贴。
解决配置 vim 之后不能鼠标右键复制问题
路安在 发布时间:2022 - 05 - 21 12:31:30
问题描述
配置完 vim 后,无法使用鼠标右键进行复制和粘贴,但从 vim 外复制的内容可通过鼠标右键粘贴。
解决问题过程
起初,尝试对 vimrc
文件中有关复制的命令进行注释和删除,但均未解决问题,CTRL + c
、ctrl + v
也无法使用。
随后,搜索浏览网上解答,部分回答称选中需要复制的内容后按键盘上的 y
即可复制,但实际操作时,选中内容未复制成功且被 y
字母覆盖。
最终,通过参考 https://blog.csdn.net/victoryckl/article/details/8122012 解决了问题。
解决方法
常规复制粘贴
- 先将光标置于要粘贴的位置或空白处。
- 找到要复制的语句,在键盘上一直按住
shift
,再用鼠标左键选中,然后点击鼠标滑轮,选中的语句或内容将直接粘贴到光标所在位置,无需使用crtl + V
。
跨界面复制粘贴
- 在 Vim 界面中,直接找到需要复制的语句,先按住
shift
,再用鼠标左键选中。 - 无需点击鼠标滑轮。
- 切换到其他界面,通过鼠标右键进行粘贴。
总结
- 复制:按住
shift
,再用鼠标左键选中。 - 粘贴:点击鼠标滑轮,内容将直接粘贴到光标位置。
Vim 全局配置 / 设置鼠标模式
BrandonPei 发布时间 2023 - 12 - 03 15:10
在新安装的 Linux(Debian)系统上,vim 一右击粘贴就进入 insert(Visual)模式。经查询,需设置 set mouse=
,但每次设置较为麻烦,同时还想修改全局配色。
定位全局配置文件
有博客指出,在 /usr/share/vim/share/...
下有个 vimrc
文件,但不同系统或版本可能存在差异。一般先在 /usr/share/vim
目录下查找,在此找到了 /usr/share/vim/vimrc
文件,文件末尾有如下几行:
vim
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
由此可知,应修改 /etc/vim/vimrc.local
文件。分析为何设置 vimrc.local
而非直接修改原文件:vim 每次更新后可能修改默认配置,直接修改会在更新时产生冲突,而 local
表示本地配置,与上游 vim 配置无关。
最终在 /etc/vim/vimrc.local
文件中添加如下内容:
vim
set mouse=
colorscheme slate
补充说明 :
经实测,在上述位置添加 set mouse=
不会生效。
参考
- vim 设置 mouse 行为不生效 - 简书
https://www.jianshu.com/p/29744bae5f3d
可知,鼠标的行为在 vimrc.local
之后加载。因此,有两种解决方法:
- 在
/etc/vim/vimrc.local
中添加let skip_defaults_vim = 1
。 - 在要用的 root 用户主目录下创建
.vimrc
文件,但这样会导致 root 用户没有代码高亮。解决办法是在~/.vimrc
中添加一句source
,即:
vim
source $VIMRUNTIME/defaults.vim
set mouse=""
补充说明 2 :
考虑到鼠标模式较为有用,可设置快捷键以便快速切换鼠标和非鼠标模式。在 /etc/vim/vimrc.local
中添加以下代码:
vim
map <F9> <ESC>:call Mouse()<CR>
function Mouse()
if has('mouse')
if &mouse==""
:set mouse=a
:echo "mouse enabled"
else
:set mouse=""
:echo "mouse disabled"
endif
else
:echo "no mouse"
endif
endfunction
上述代码中,map
命令将 F9 按键绑定到 <ESC>:call Mouse()<CR>
。其中,ESC
用于应对已进入 Visual 模式的情况,先退出该模式,再执行函数;CR
表示换行,用于应用命令。函数中 &mouse
表示获取 vim 中 mouse
选项的值。
vim 设置 mouse 行为不生效
sarto 属地:陕西 发布时间 2021.04.01 10:00:56
vim 在 debina 下的运行环境
在 vim 中输入 :echo $VIMRUNTIME
,会显示 /usr/share/vim/vim81
,此为 debian vim 运行环境的路径。
vim 中在 vimrc 中修改 mouse 不生效的问题
在 vimrc
中设置 vimrc-=a
未生效,经查找发现,/usr/share/vim/vim81/defaults.vim
中默认的鼠标行为影响了 vimrc
的配置。将该文件中如下代码:
notranslate
78 if has('mouse')
79 set mouse=a
80 endif
的 set mouse=a
改为 set mouse-=a
即可。
最后编辑时间:2021.04.01 10:01:14
vim 鼠标右键无法复制
jeensung 发布时间 2010 - 12 - 14 20:20:32
修改 ~/.vimrc
文件后,发现鼠标右键无法复制文本。在配置文件(~/.vimrc
)中发现如下内容:
11 " In many terminal emulators the mouse works just fine, thus enable it.
12 if has('mouse')
13 set mouse=a
14 endif
在 vim 帮助文件中,关于鼠标模式有如下解释:
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command - line mode
h all previous modes when editing a help file
a all previous modes
r for |hit - enter| and |more - prompt| prompt
Normally you would enable the mouse in all four modes with:
:set mouse=a
When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.
可见,配置文件中的 set mouse=a
启用了所有模式,导致 vim 接管了鼠标控制。
鼠标事件有程序处理和 X 处理两种方式。若由 X 负责处理,则是左键选择,中间粘贴。要让 vim 中由 X 负责处理,有以下两种方法:
- 按住
shift
键进行选择,此时由 X 处理该选择,copy
选项将启用。若松开shift
键,则由 vim 处理该选择。 - 在
.vimrc
中设置set mouse=
(即清空),此时 vim 不再干涉鼠标选择,始终将处理权交给 X。这种情况下,鼠标处于无模式编辑状态,也可使用鼠标切换 vim 中的 tab 窗口,且 vim 中的编辑光标不会跟随鼠标。
参考链接
-
Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴_vim 中当鼠标右键功能无法使用时,如何开启 - CSDN 博客
-
Vim 配置#Vim 中使用鼠标功能_zsh vim 鼠标插入模式 - CSDN 博客
https://blog.csdn.net/qq_27968607/article/details/54966912 -
解决配置 vim 之后不能鼠标右键复制问题_vim 里的鼠标右键 - CSDN 博客
https://blog.csdn.net/weixin_51622761/article/details/124895911 -
Vim 鼠标配置详解 - CSDN 博客
https://blog.csdn.net/victoryckl/article/details/8122012 -
Vim 全局配置 / 设置鼠标模式 - BrandonPei - 博客园
https://www.cnblogs.com/BrandonPei/p/17873231.html -
vim 设置 mouse 行为不生效 - 简书
https://www.jianshu.com/p/29744bae5f3d -
vim 鼠标右键无法复制_jeensung_新浪博客
http://blog.sina.com.cn/s/blog_622d95080100ny94.html