使用 vim 打开目录时,为啥尝试用鼠标选择文本会出现错误“E21:无法进行更改,'modifiable' 已关闭”?

Posted

技术标签:

【中文标题】使用 vim 打开目录时,为啥尝试用鼠标选择文本会出现错误“E21:无法进行更改,\'modifiable\' 已关闭”?【英文标题】:When opening a directory with vim, why does attempting to select text with the mouse gives the error "E21: Cannot make changes, 'modifiable' is off"?使用 vim 打开目录时,为什么尝试用鼠标选择文本会出现错误“E21:无法进行更改,'modifiable' 已关闭”? 【发布时间】:2021-09-28 05:05:22 【问题描述】:

如果我运行evim foo,其中 foo 是一个目录,我会得到一个看起来像这样的缓冲区

" ============================================================================
" Netrw Directory Listing                                        (netrw v156)
"   /home/chris-henry/foo
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../
./
bar/
baz/
qux

我可以使用Shift + 箭头键选择文本(或者我认为是其他更模式的方式),但是尝试用鼠标选择文本会出现错误:

E21: "Cannot make changes, 'modifiable' is off"

但我并不想做出改变;我只是想选择文本(以便在其他地方单击鼠标中键粘贴)。 vim(或 netrw?)显然对我选择文本没有任何问题,因为我可以使用 Shift + 箭头键来完成。那么为什么点击和拖动会出现问题呢?

【问题讨论】:

【参考方案1】:

我是这样理解的……

:help netrw-cr 映射&lt;CR&gt; 进入当前行的目录/文件。 :help netrw-leftmouse 模拟 &lt;CR&gt;。 您使用的是“easy Vim”,因此默认情况下处于插入模式。 在插入模式下,&lt;CR&gt; 插入一个字符,从而改变缓冲区的内容。 您处于“只读”缓冲区中,禁止更改缓冲区内容。 因此你得到一个错误,因为 Vim 认为你试图改变缓冲区的内容。

这是相当不幸的。

我不记得曾经尝试禁用或更改 Netrw 映射。也许你可以在非常密集的:help netrw 中找到一些东西。

【讨论】:

以上是关于使用 vim 打开目录时,为啥尝试用鼠标选择文本会出现错误“E21:无法进行更改,'modifiable' 已关闭”?的主要内容,如果未能解决你的问题,请参考以下文章

在启用 set mouse=a 的情况下复制 Vim 外部的文本

当我添加一个按钮时,为啥动态文本会消失?

为啥当 Interstitial 关闭时先前输入的文本会从 TextView 中消失

为啥链接的文本会溢出 div 框?

Firefox 和 CSS3 动画 - 为啥我的文本会抖动?

转载vim复制时的缩进