9

我正在使用屏幕将我正在使用 Vim 查看的代码从一个窗口复制到另一个当前正在使用 Vim 编辑文件的窗口。不幸的是,当粘贴到第二个窗口时,在每个换行符之后,我的输入左侧会出现越来越多的空白。这个空白是如何进入我的缓冲区的?

我试图关闭自动缩进以防 Vim 添加额外的空格,但问题仍然存在。

以下是可能相关的信息:

  • 操作系统 10.6.8
  • 这两个文件都是 Unix 风格的。
  • 屏幕版本:4.00.03
  • Vim 版本:7.3
  • 底层终端类型为:xterm-color
4

2 回答 2

22

你是用鼠标还是其他非vim方式复制?如果是,您必须:set paste在粘贴之前和:set nopaste之后进行。请参阅:h pastetoggle快速映射。

如果你所有的 vim 会话都是本地的并且 Vim 支持它(:echo has('clipboard')<CR>应该 echo 1),你应该使用你的系统剪贴板:在没有那种讨厌的缩进的情况下"+y进行拉拽和粘贴。"+p

或者,更好的是,在同一个 Vim 会话中打开您的文件。

于 2013-02-07T21:18:33.250 回答
0

问题来自 Vim 在行尾添加一个字符,一些用户添加例如 ↲</p listchars>eol

要删除这个额外的字符,您不需要在 listchars 中设置 eop,例如:

set listchars=tab:\ \ ,trail:-,extends:>,nbsp:\ ,precedes:<

制表符将被空格替换,尾随空格将出现 - 等...

由于 eol 不存在,因此不会显示,这将解决您的问题

于 2015-10-23T13:14:51.880 回答