如何在vim中添加非鼠标可选的行号?

时间:2009-04-30 18:07:33

标签: vim

所以我已经想出如何为vim添加行号(:set no或:set number)但是我怎么能这样做呢,当我在终端模拟器中使用鼠标来选择一个行块时,还没有选择数字?

例如,假设我在vim中有三行看起来像这样:

1    First line
2    Second
3    Third

如果我想用鼠标选择三行我想要的只是选择实际文本。但最终发生的是选择行号以及行号左右两侧的所有空格。

有没有办法改变这种行为?顺便说一句,我在gnome中使用gnome终端编辑器,如果这有所不同。

8 个答案:

答案 0 :(得分:37)

使用以下内容:

:set mouse=a

在所有模式下启用xterm样式鼠标。这样你就可以做你想做的事。请记住,如果vim是通过ssh进行远程访问的,则需要打开X11转发功能,以便将其选择到本地剪贴板。

答案 1 :(得分:16)

AFAIK,这是不可能的。

目前我唯一可以添加的是

你会更好
:set invnumber

它将反转当前条件,因此您可以将其映射到键,然后切换它。这样你就不必记住两个命令了。

答案 2 :(得分:8)

我同意第一个答案。如果您使用gvim,则可以尝试使用set mouse=nset mouse=a,这应该会更改行号选择行为。

答案 3 :(得分:7)

当我想在终端中选择文本时,我会删除行号。

:set nonu

当我完成

:set nu

答案 4 :(得分:5)

你可能不在Macintosh上,我不知道你是不是想要使用系统拷贝而不是vim的猛拉。

但如果你是这两样东西,你可以使用选项拖动来选择文字。这会在文本上创建一个2d框,选择它下面的内容。它应该在功能上与'从行y1到y2'的列x1到x2相同。

答案 5 :(得分:3)

我很确定在terminal-vim中这是不可能的。据我所知,没有可接受的标准(例如TTY转义)来指示鼠标不能突出显示的字符块。

如果您希望能够不惜一切代价执行此操作,我会使用 gvim 。它的行为就像你描述的那样。

答案 6 :(得分:1)

我的建议是习惯屏幕右上角的小方框,其中包含当前行的编号和字符位置信息。在我使用vim之前我无法想象没有行号的生活,但从那以后我已经超越了这一点。屏幕上没有杂乱的行号可以让人分散注意力,你真的需要知道当前有效线路上方的线路编号是否比当前线路的编号小1,而且下面的线路还有一个?

答案 7 :(得分:-1)

没有鼠标的副本:

进入可视模式:定位光标,按 v (对于完整行 V )向上移动或直到所需的位置

control + c 复制到剪贴板(如果:ve 命令输出中存在 + clipboard ),按 ESC 并使用 control + v 将其粘贴到任意位置。

或按 y 按此按钮进入注册状态并按 p 将文本放在光标后面