我想要一个快速宏来允许我将qty_on_hand等文本转换为Qty_On_Hand。没有下划线的单词应该大写,因此描述将变为描述。源文本中的大小写不一致,因此可能是QTY_on_Hand - > Qty_On_Hand。
有什么想法吗?
答案 0 :(得分:0)
尝试以下方法:
:let @t="caw\<C-r>=join(map(split(@\", '_', 1), 'toupper(v:val[:0]).tolower(v:val[1:])'), '_')\n\e"
然后,当您在正常模式下键入@t
时,您将根据要求更换当前单词。如果你想盲目地替换所有东西,那么使用
:%s/\<\w\+\>/\=join(map(split(submatch(0), "_", 1), "toupper(v:val[:0]).tolower(v:val[1:])"), "_")/g
如果您希望vim向您询问每次替换,请在c
标记后添加g
。
第二种解决方案假设您的源代码中没有非ASCII标识符。