我将一些代码从一个文件的一个部分复制到vim中的另一个部分,我发现,每行都有行号,格式不见了,如何设置正确的格式作为原点?
像这样:
40 root /opt/release/current/public;
67 41 passenger_enabled on;
68 42
Run Code Online (Sandbox Code Playgroud)
seh*_*ehe 84
如果你有行号,我很确定你没有使用Vim的yank/put操作(这些将永远不会复制亚麻,折叠,图标等)因为在编辑缓冲区方面它们不存在.
我的猜测是你在终端模拟器中工作并使用鼠标将东西复制到剪贴板,这可能会选择屏幕的"无关"空间(包括末尾的虚拟空间,行号,折叠标记等)
你可能有运气设置
:se mouse+=a
Run Code Online (Sandbox Code Playgroud)
为了获得鼠标的行为,就像你期望的那样.否则,使用V<movement>...y(yfor yank,对应于'copy')进行选择
然后在目的地使用p(放在光标处),或P(放在光标前)
如果有帮助或者您需要更多信息,请告诉我
San*_*ngh 34
在正常模式下,键入 :se nonu
这是删除行号的最简单方法,您可以复制没有行号的文本.
sij*_*j_a 24
如果有人想要更快的方式(无论如何在Linux上),我注意到在vim中你可以按住ctrl并拖动你要复制的区域,你将避免行号并选择你想要的部分.
步骤:
San*_*eep 13
对此的永久解决方案是在.vimrc位于主目录中的文件末尾添加以下代码.
se mouse+=a
Run Code Online (Sandbox Code Playgroud)
通过添加此项,您将只能选择文本而不是行号,如下图所示:
如果您没有将.vimrc文件放在主目录中(我遇到此问题),请:scriptnames在vi编辑器中键入命令,它将显示.vimrc文件的位置.参考
以前输入的所有解决方案都非常好.但是,有时您在远程服务器上使用vim(因此无法使用复制到剪贴板"+y).终端通常支持复制粘贴操作.
我使用vim将视觉选择输出到一个新的shell,我可以使用终端功能复制文本:
:'<,'>w ! bash -c cat
Run Code Online (Sandbox Code Playgroud)
然后我可以轻松复制输出.
在vim中粘贴的模式相同:
:r ! bash -c cat
Run Code Online (Sandbox Code Playgroud)
然后我使用Ctrl+ 粘贴并发送EOF到cat d.此方法还可以避免重新输入您粘贴的文本(注意:您可以使用禁用自动缩进:set pi!).
| 归档时间: |
|
| 查看次数: |
33418 次 |
| 最近记录: |