我将一些代码从一个文件的一部分复制到vim中的另一部分,我发现每行都有行号,格式不见了,如何将正确的格式设置为原点?复制时如何清除Vim中的行号?
这样的:
40 root /opt/release/current/public;
67 41 passenger_enabled on;
68 42
我将一些代码从一个文件的一部分复制到vim中的另一部分,我发现每行都有行号,格式不见了,如何将正确的格式设置为原点?复制时如何清除Vim中的行号?
这样的:
40 root /opt/release/current/public;
67 41 passenger_enabled on;
68 42
如果你有行号,我敢肯定你不使用Vim的抽出/放操作(这将从未复制linenumbers,折叠列,图标等),因为就编辑缓冲区而言,它们不存在。我猜你是在一个终端模拟器中工作,并使用鼠标将东西复制到剪贴板,这可能会选择屏幕上的“无关”空间(包括末尾的虚拟空间,行号,折叠标记等) )
您可能有运气才能像你希望它变得鼠标的动作设定
:se mouse+=a
。否则,执行选择与V<movement>...
Ý(y
为yank
,其对应于 '复制')
然后在目的地使用p(放在光标),或P(放前光标)
让我知道这是否帮助,或者您需要更多的信息
yank +粘贴操作在vim中运行良好,但粘贴到另一个编辑器或远程终端又如何? – Rohit 2015-04-02 03:40:24
看一看,有时设定为F11的pastetoggle选项。
作为替代你总是可以写上你要复制到一个临时文件 (ma
,转到结束线,然后使用:'a,.w tempfile
)的部分,然后读入第二个文件。
有关进一步调查,你可能想看看autoindent选项。
以前输入的所有解决方案都非常好。但是,有时候你在远程服务器上使用vim(所以你不能使用"+y
复制到剪贴板)。终端通常支持复制粘贴操作。
我使用vim输出可视选择到一个新的外壳,我可以使用终端功能复制文本:
:'<,'>w ! bash -c cat
然后我可以很容易地复制该输出。在VIM粘贴
相同的模式:
:r ! bash -c cat
然后我粘贴,并使用按Ctrl +d发送EOF猫。此方法还可以避免重新粘贴您粘贴的文本(注意:您可以使用:set pi!
禁用自动缩进)。
我将下面的命令映射到一个键。
它删除复制行号周围的空白。
它忽略行文本和任何后面的空行。
:1,$s/^\s*[0-9]\+\s//\|1,$s/^\s*[0-9]\+\n/\r/<cr>
在Windows VIM GUI::set nu
,然后按住Ctrl键 - 移而 突出用鼠标所需的文本。这将行号码 放入缓冲区。
如果有人想要更快的方法(在Linux上),我注意到在vim中你可以按住ctrl并拖动你想要复制的区域,你将避免行号并选择你想要的部分。
步骤:
什么是vim?当我按住ctrl时,我最终点击右键。任何其他的钥匙,我仍然得到行号。 – 2016-04-03 20:56:54
嗯,你放开CTRL之前,你右键点击?另外,我正在使用Linux。 – 2016-04-05 13:39:47
我喜欢这个答案。在Mac上,您可以选择(alt)而不是ctrl。突出显示的区域与小写v模式下的视觉选择类似。 – Steve 2016-06-02 15:40:26
这样做的一个永久的解决方案是增加下面的代码位于您主目录中的.vimrc
文件末尾。
se mouse+=a
通过增加这一点,你就可以只选择文本,而不是行号如下图所示的图像:
如果你没有得到你的.vimrc
文件你的主目录(我遇到这个问题),在vi编辑器中输入命令:scriptnames
,它会显示你的.vimrc
文件的位置。 Reference
你是什么意思的格式? Vim根本无法使用格式化文本。 – 2011-04-20 09:39:10
对不起,格式表示空格和行号 – why 2011-04-20 09:54:57