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
通过putty在Vim中选择多页文本块时向上/向下滚动_Vim_Select_Mouse_Xterm - Fatal编程技术网

通过putty在Vim中选择多页文本块时向上/向下滚动

通过putty在Vim中选择多页文本块时向上/向下滚动,vim,select,mouse,xterm,Vim,Select,Mouse,Xterm,我在xterm through putty上使用vim 6.3.81。使用set mouse=a时,我可以滚动文件,但不能选择文本。当使用set mouse=禁用鼠标时,我可以用鼠标选择文本(自动复制到缓冲区),但如果文本块超过一页长,我就不能上下滚动(并且必须一次选择一个屏幕上的文本) 有没有什么方法可以做到两者兼而有之?当我用鼠标选择文本时,如果我到达页面的末尾,它会根据我是否到达页面的顶部/底部自动向上/向下滚动,并允许我从下一页选择文本 我知道vim足够强大/灵活,可以做我想做的事情-我

我在xterm through putty上使用vim 6.3.81。使用
set mouse=a
时,我可以滚动文件,但不能选择文本。当使用
set mouse=
禁用鼠标时,我可以用鼠标选择文本(自动复制到缓冲区),但如果文本块超过一页长,我就不能上下滚动(并且必须一次选择一个屏幕上的文本)

有没有什么方法可以做到两者兼而有之?当我用鼠标选择文本时,如果我到达页面的末尾,它会根据我是否到达页面的顶部/底部自动向上/向下滚动,并允许我从下一页选择文本


我知道vim足够强大/灵活,可以做我想做的事情-我只是不知道怎么做!!有人能帮忙吗?

你有没有想过先用鼠标,然后用键盘来选择?只是

  • 使用鼠标定位光标
  • 在命令模式下按“v”
  • 按向上/向下(或j/k)移动 上/下

如果您从终端末端向下滚动,它将自动向下滚动,保持选择处于活动状态。

简短回答:不,对不起

详细回答:终端中的Vim不会与windows剪贴板交互,因此使用鼠标=a选择不会有帮助,因为所选文本将无法访问。如果没有mouse=a,PuTTY控制鼠标,vim的数据不在PuTTY的滚动缓冲区中,因此PuTTY无法获取它


解决方案是(正如Benj所建议的那样)在X服务器中或使用gvim。

当您设置了
鼠标=a
时,您可以通过
+鼠标左键
进行选择,
+鼠标右键
像往常一样粘贴代码


希望这有帮助

这应该出现在superuser.com上吗?有两个问题:1)我想用鼠标向朋友展示,他可以在vim中使用鼠标,就像记事本和其他windows编辑器一样。对于新手来说,它更容易记住:)2)目前,如果我选择并在视觉模式下复制文本,复制的文本无法粘贴到在不同putty会话中打开的vim的单独实例中-不知何故,通过鼠标复制文本不会出现此问题!回答第2点。使用鼠标复制时不会出现问题的原因是,在这种情况下,putty(不是vim)将文本放入Windows剪贴板。如果你想一想,你对vim的要求几乎是不可能的,因为它不仅需要向下滚动,还需要保持puttys选择,这可能会从终端顶部滚动。在终端模式下运行时,vim只能影响终端可以看到的内容,putty只能复制终端显示的内容。如果你真的想向朋友展示vim的功能,最好在机器上安装一个X服务器(如Cygwin/X for windows)然后在putty中设置显示变量并运行gvim,将vim的图形版本直接运行到windows桌面,这将更像windows程序等。