我在php中有这个项目正在研究中,我发现输入 - > 来调用方法非常烦人。我想让vim为我做这份工作。我希望它用[^\s].
替换->
(非空格+点)。
另外,我的美元var前缀让我烦恼,我希望我可以用\s[a-z_]
+我输入的下一个字母替换$
(空格后跟低A到Z和下划线)。
即
a #=> $a
foo + bar # => $foo + $bar
this #=> $this
this.myMethod() #=> $this->myMethod()
当然,这应该只在php文件中发生。
有没有办法实现这一目标?可能比缩写更有趣的东西。
答案 0 :(得分:0)
对于第一个问题:
inoremap . ->
你的.vimrc中的就足够了。如果你想要它特定于php文件:
filetype on
autocmd FileType php inoremap . ->
至于第二种情况,我真的没有看到可以自动编写的方法。
答案 1 :(得分:0)
我不确定以这种方式处理您的源代码是否是个好主意,因为它可能会破坏您的代码,但是根据您的要求,此行执行您想要的两个替换:
%s/\v(\s|^)\ze[a-z_]/&$/g|%s/\./->/g
至少它适用于你给出的例子。
答案 2 :(得分:0)
虽然您可以使用:imap <expr>
构建此类“条件重映射”,但我强烈建议不要这样做。
你陈述的规则仍然过于简单化;第一个不允许您输入任何评论,例如Just a hack.
(将转为Just a hack->
)。您将花费更多时间(费力地)调整规则,或撤消/禁止自动转换,只是为了在这里和那里保存一次击键。
想象一下你自己在另一个编辑器,调试器,同事的笔记本电脑。现在你依赖于你的自动转换方案,你看起来像个傻瓜!
对我来说,看起来你是来自不同的知识,仍然感受到初学者在未知地形中行走的痛苦。持之以恒;你很快就会克服它!