Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在Neovim/WSL/ConEmu中以正常模式执行粘贴内容_Vim_Terminal_Windows Subsystem For Linux_Conemu_Neovim - Fatal编程技术网

避免在Neovim/WSL/ConEmu中以正常模式执行粘贴内容

避免在Neovim/WSL/ConEmu中以正常模式执行粘贴内容,vim,terminal,windows-subsystem-for-linux,conemu,neovim,Vim,Terminal,Windows Subsystem For Linux,Conemu,Neovim,我已经开始通过ConEmu在Windows/WSL上使用Neovim。除了一个非常重要的缺陷外,所有这些都运行得非常惊人: 当我将内容粘贴到Neovim并忘记之前进入插入模式时,Neovim会将输入注册为键盘笔划,并作为命令执行。不用说,这会变得非常丑陋,非常快 为了清晰起见,有一个人为的例子:我需要从浏览器中复制一些文本。所讨论的文本是“sp”(是的,这完全是愚蠢的,但请容忍我)。当我将其粘贴到ConEmu(CTRL-V)中时,终端将输入传输到Neovim,Neovim将其解析为命令,因为它处

我已经开始通过ConEmu在Windows/WSL上使用Neovim。除了一个非常重要的缺陷外,所有这些都运行得非常惊人:

当我将内容粘贴到Neovim并忘记之前进入插入模式时,Neovim会将输入注册为键盘笔划,并作为命令执行。不用说,这会变得非常丑陋,非常快

为了清晰起见,有一个人为的例子:我需要从浏览器中复制一些文本。所讨论的文本是“sp”(是的,这完全是愚蠢的,但请容忍我)。当我将其粘贴到ConEmu(CTRL-V)中时,终端将输入传输到Neovim,Neovim将其解析为命令,因为它处于正常模式。在本例中,Neovim将用p替换当时光标上的任何字符

Vim for Windows已经解决了这个问题,并将在不改变模式的情况下粘贴内容(纯Linux环境如何处理这个问题?)。该解决方案的问题在于它依赖于Windows文件系统,与apt get/Ubuntu/WSL以及其他麻烦相比,Windows文件系统更难调整/维护

因此,最初我想让Neovim检测输入是否直接来自键盘,而不是任何其他来源,如果是,切换到插入模式并从那里处理。但坦率地说,我不确定这是否可能(尤其是WSL)。我还尝试添加一个快捷方式,使Neovim在CTRL-V上进入插入模式,希望它首先触发,然后正确粘贴内容

也许我需要另一个终端而不是ConEmu


无论如何,我没有主意了,希望你们能帮忙。

ConEmu不会检测到您在终端上运行的应用程序的任何“内部”模式。实际上,当您“粘贴”某个内容时,如果您手动按相同的键,终端会执行几乎相同的操作

好吧,除了一个主要区别:ConEmu使用“括号粘贴模式”,所以控制台应用程序可以确定用户是粘贴内容还是手动按键。
因此,Neovim的问题是如何在其内部处理/配置带括号的粘贴模式。

在ConEmu设置中,
Keys&Marco->paste
有一个选择:

多行粘贴:通过 按键


这正是您需要的。

谢谢您的帮助。提供的信息使我能够找到与问题相关的官方问题: