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
Vim环绕+;重复,用^M换行我的文本_Vim_Repeat_Surround - Fatal编程技术网

Vim环绕+;重复,用^M换行我的文本

Vim环绕+;重复,用^M换行我的文本,vim,repeat,surround,Vim,Repeat,Surround,我使用Vim的环绕和重复插件用html标记包装文本行 我将使用“yse”和“ys$”,它们都工作得很好 我尝试用“.”重复该命令,它在终端中显示,但每当我按enter键执行该命令时,环绕将用^M替换应该是和的内容 我的行看起来像^Mtext此处^M 我将字符识别为行尾,但我不明白为什么surround不会用它在终端中显示的代码(这是正确的)来包装我的行,而是用DOS行尾来包装我的行 我在windows XP上使用gVIM,如果这有什么区别的话。这实际上是因为当你用重复命令时,实际上不存在 尝试以

我使用Vim的环绕和重复插件用html标记包装文本行

我将使用“yse”和“ys$”,它们都工作得很好

我尝试用“.”重复该命令,它在终端中显示,但每当我按enter键执行该命令时,环绕将用^M替换应该是和的内容

我的行看起来像^Mtext此处^M

我将字符识别为行尾,但我不明白为什么surround不会用它在终端中显示的代码(这是正确的)来包装我的行,而是用DOS行尾来包装我的行


我在windows XP上使用gVIM,如果这有什么区别的话。

这实际上是因为当你用
重复命令时,
实际上不存在

尝试以下操作:在使用
重复命令之前,先点击
o
清空命令行区域中的任何文本,然后点击

您将看到它实际上是空的,这就是光标位于第一个字符上的原因

要正确地重复包装,您必须每次键入
,或者录制一个快速宏

宏:
ys$

将其粘贴到vim中,高亮显示,然后键入“py”


现在,您可以使用
@p
环绕来运行宏。vim
的文档说明:

The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136. 

因此,如果您使用的是
yss
,它应该可以工作,但显然其他版本的“
ys
“不支持。听起来这是一个不错的功能,需要提交给
repeat.vim
所有者。

我接受你的答案,但我很遗憾你不能那样使用repeat。录制和执行一个宏意味着至少要比“.”多4个笔划。这太糟糕了,是的。我认为jrdioko的特性请求建议是一个好主意。