是否可以将{some_variable_name}=
映射到{some_variable_name} =
中的vim
? {some_variable_name}
是[A-Za-z0-9]
的哪个位置?
从其他一些提示中,我在尝试:
:inoremap ?P<name>([A-Za-z0-9-_])= ${name} =
编辑 ,这样,如果我输入“a =”,它将被转换为“a =”,如果我输入“blah =”,它将会转换为“blah =”
无效。
请帮助。
编辑:可能是一种更简单的方法来定义问题:动态地将“=”替换为“=”,然后是[A-z0-9]。
我正在尝试,但还没有成功。请帮助
答案 0 :(得分:3)
这种插入模式映射可以实现我想要的你想要的,但你的问题真是一团糟......所以......好吧:
:inoremap <expr> = getline(".")[col(".") - 2] !~# "[a-zA-Z]" ? "= " : " = "
但输入<Space>=
是一个很多更好的解决方案IMO。
编辑:
由于某些&#34;古怪&#34;在Vim在插入模式下处理光标位置的方式中,getline(".")[col(".") - 2] !~# "[a-zA-Z]"
不正确地将光标前的字符与正则表达式[a-zA-Z]
进行比较。使用getline(".")[col(".") - 1]
作为光标后面的字符。