我用我的脚本测试代理看起来像这样:
$proxy =   "http://name:pass@133.245.122.91:80";
$proxy2 =  "http://name:pass@133.245.229.241:80";
$proxy3 =  "http://name:pass@133.245.113.197:80";
...
$proxy100 =  "http://name:pass@133.245.212.197:80";
我通过电子邮件获得新代理,因此我可以复制新代理并通过以下方式插入新代理而不是旧代理Vim:
"http://name:pass@133.245.122.91:80";
"http://name:pass@133.245.229.241:80";
"http://name:pass@133.245.113.197:80";
...
"http://name:pass@133.245.212.197:80";
正确知道我正在按照本页所述进行操作如何在Vim中的另一列文本后粘贴一列文本?
使用视觉块(ctrl-v)剪切字母列.然后移动到数字列的第一行.移到最后并创建一个空格.然后粘贴字母列.
我很好奇,如果没有额外的步骤就可以完成,只需从剪贴板粘贴数据?
简短版:你不能.有很多方法,但它们不一定更简单.更长的版本如下.
Vim有三种标记文本区域的方法:linewise(按下时启动此模式V),按字符(按下时触发v)和blockwise(按下时Ctrl-v).标记的区域被复制到一个寄存器,该寄存器有一个属性"类型",它反映了标记,行,字符或块的标记方式.从寄存器粘贴时会发生什么情况取决于此类型.
现在,当您从系统的剪贴板复制时,结果存储在*寄存器中,并且类型始终设置为linewise.因此,您无法在没有额外步骤的情况下粘贴列模式.但是,您可以*在粘贴之前将寄存器的类型设置为blockwise:
call setreg('*', @*, 'b')
因此,替换代理列表将是这样的:
:call setreg('*', @*, 'b')以将*寄存器的类型设置为blockwise";您可以通过使*和+寄存器始终引用相同的值来简化最后一步.为此,请将其添加到您的vimrc:
set clipboard=unnamedplus,autoselect,exclude:cons\\\\|linux
使用此设置,咒语变为:
:call setreg('+', @+, 'b')如果您在可以使用Vim打开的文件中有新列表,则不需要此舞蹈:
这仍然涉及在引擎盖下使用系统剪贴板,但Vim的第二个副本负责将相关寄存器的类型设置为blockwise.