我有一个80个字符的标记,我使用
设置:set colorcolumn=80
但是当我这样做时,如果我突出显示并将文本复制到剪贴板,我会在该行的最后一个字符后面找到空格。如果我向需要使用剪贴板进行复制的人发送代码片段,这会非常烦人。
有没有办法让标记处于80个字符而没有添加空格?
另外,我尝试在col 80(及更少)之后突出显示字符,但我更喜欢看标记而不是猜测80个字符的位置。
答案 0 :(得分:3)
这是因为您的终端正在处理选择,并且不知道vim用于打印颜色列的空格不是“真实”字符。 (即:终端只知道显示器中的内容,而不知道vim缓冲区中的内容)。如果你使用gvim它没有这个问题。
在控制台中,您可以使用mouse
和clipboard
设置稍微模拟gvim行为。这样的事情应该有效:
set mouse=a clipboard=autoselect
这将导致vim甚至在终端中接管鼠标处理,并告诉它自动将所选文本放在"*
寄存器中,这对应于X11的主要选择。如果您希望剪贴板覆盖主要选择,则可以将clipboard
设置为autoselectplus
。
另一种选择是只使用vim命令而不是鼠标来进行这种复制和粘贴。您可以分别指定"*
或"+
作为寄存器,手动复制到X的主要选择或剪贴板。例如:"*y<text-object>
或在视觉模式下"*y
只会选择,然后您可以在中间点击(或在某些软件中移位插入)以“粘贴”。
这种做法的一个变体是让你在vim中进入默认寄存器的所有内容也最终出现在X选择或剪贴板中:
set clipboard=unnamed " copies to X's primary selection
或
set clipboard=unnamedplus " copies to X's clipboard
请注意,所有这些都需要构建一个编译了X支持的vim,并且必须相应地设置$DISPLAY
。
另见:
:help 'clipboard'
:help 'mouse'
:help X11