如何解决如何正确使用vim宏-488 Erro
我正在尝试编写第一个宏,这给我带来了麻烦
我基本上想把这个转过来:
cityName1
cityName2
等等...
对此:
'cityName1',
'cityName2',
等等...
我将宏记录为:i'<Esc>A'<Esc>j0
,如果我以@a
执行,则可以正常工作,但是当我尝试类似:10@a
的操作时,它给了我'E488尾随字符错误'
感谢您的任何帮助
解决方法
宏是一系列击键,Vim会在字面上重复这些操作。
在普通模式下执行@a
时,Vim为您执行i
,然后'
,然后<Esc>
等,所有这些都按预期工作,因为在正常模式下,您的宏将从正常模式命令开始。
在命令行模式下执行@a
时,Vim会执行与上述相同的操作({i
,然后是'
等),但是您处于命令行模式,并且在这种情况下,这些击键是没有意义的。您基本上是在输入垃圾,Vim尽最大努力弄清了垃圾,但是它失败了。
请注意,10
中的10@a
表示“重放@a
10次”,10
中的:10@a
表示“重放@a
第10行”。从您的问题中不能立即看出您是否想要一个。
在正常模式下,如果您的意思是“重播@a
10次”,请执行以下操作:
10@a
或者,如果您的意思是“在第10行重播@a
”:
1OG@a
如果您更喜欢命令行模式,则表示“重播@a
10次”:
:normal 10@a
或者,如果您的意思是“在第10行重播@a
”:
:1Onormal @a
请参见:help G
,:help :normal
,:help :range
,更常见的是:help repeat
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。