繁体   English   中英

使用正则表达式在vim中映射变量

[英]mapping variables in vim with regex

这可能在vim {some_variable_name} = {some_variable_name}=映射到{some_variable_name} =吗? 其中{some_variable_name}[A-Za-z0-9]

从其他一些暗示,我正在尝试:

:inoremap ?P<name>([A-Za-z0-9-_])=  ${name} = 

进行编辑,这样,如果我键入“ a =“,它将被转换为“ a =”,而如果键入“ blah =”,则将被转换为“ blah =”

这是行不通的。

请帮助。

编辑 :可能是解决问题的一种更简便的方法:动态地将“ =“替换为” =“,后跟[A-z0-9]。

我正在尝试,但尚未成功。 请帮助

这种插入模式的映射做什么,我你想,但你的问题是一个真正的混乱所以...:

:inoremap <expr> = getline(".")[col(".") - 2] !~# "[a-zA-Z]" ? "= " : " = "

但打字<Space>=是一个更好的解决方案IMO。

编辑:

由于Vim在插入模式下处理光标位置的方式有些“怪异”,因此getline(".")[col(".") - 2] !~# "[a-zA-Z]"不直观地比较了字符正则表达式[a-zA-Z]在光标之前。 getline(".")[col(".") - 1]用于光标之后的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM