我从一个应用程序中复制了一些数据,其中有很多^D
s 和^M
s。我^D
使用时毫无问题地删除了它:%s/^D//g
,我知道我可以^M
使用类似的命令删除它:%s/^V^M//g
,但问题是我在 Windows 上运行并且^V
使用 Ctrl-V,它会将数据从剪贴板粘贴到 gvim 中。如何退出^V
Windows 中 vim 的 /ctrl-V 粘贴功能?
答案1
从:help CTRL-V-alternative
:
*CTRL-V-alternative* *CTRL-Q*
Since CTRL-V is used to paste, you can't use it to start a blockwise Visual
selection. You can use CTRL-Q instead. You can also use CTRL-Q in Insert
mode and Command-line mode to get the old meaning of CTRL-V. But CTRL-Q
doesn't work for terminals when it's used for control flow.
答案2
另一种特定于 ^M 的方法是使用,:%s/\r//g
因为 ^M 是回车符。
答案3
要使用您熟悉的 MS Windows 热键进行复制、粘贴等操作,请使用 mswin.vim 文件作为您的配置。将其从您的安装路径复制到 $HOME 目录所在的位置,重命名为 _vimrc。输入 :echo $HOME 以找出它的位置。通常是 C:\Users\'username'。重新启动 gVim,您的常规 Windows Ctrl-V、Ctrl-C 类型的热键应该可以正常工作。
看在 Windows 7 上 .vimrc 文件应该位于哪里?以获得更多指导。
答案4
我在 conemu 和其他程序中的 vi 中遇到了同样的问题,它们会中断击键并用其他操作替换它们。
我通过使用 ^K (Ctrl-K) 输入二合字母进行搜索和替换来解决这个问题。
例如我想删除 NUL(0x00)字符和 CR(^M 或 0xd)字符
通常我会使用 ^V000 和 ^V^M,但是使用定义的默认二合字母,您可以使用以下命令(注意 ^K 是按下 Ctrl 和 K)
:%s/[^KNU^KCR]//g
如果这些二合字母不起作用,你可以使用
:dig
要了解如何定义自己的
:help :dig