使用Screen粘贴时,为什么在换行后会有额外的空格?

时间:2013-02-07 20:58:37

标签: vim whitespace gnu-screen

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

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

以下是可能相关的信息:

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

2 个答案:

答案 0 :(得分:20)

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

如果您的所有vim会话都是本地的并且Vim支持它(:echo has('clipboard')<CR>应该回显1),您应该使用系统剪贴板:"+y来抽取"+p来粘贴没有那个讨厌的缩进。

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

答案 1 :(得分:0)

问题来自listcharseol Vim在行尾添加一个字符,一些用户添加例如↲

要删除此额外字符,您需要不在列表框中设置eop,例如:

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

选项卡将替换为空格,尾随空格将显示为 - 等等...

由于eol不存在,它将无法显示,这将解决您的问题