我知道VIM支持有向图,如果可以使用:s命令,那将是完美的,但我找不到使用它的方法!
我想是这样的:
:%s/\([aeiouAEIOU]\)'/\=digraph(submatch(1)."!")/g
Run Code Online (Sandbox Code Playgroud)
会很完美,但我找不到digraph功能.提前致谢.
编辑
好了,在内置的VIM功能中进行了一些挖掘之后,我找到tr了问题的第一个解决方案:
:%s/\([aeiouAEIOU]\)'/\=tr(submatch(1), 'aeiouAEIOU', 'àèìòùÀÈÌÒÙ')/g
Run Code Online (Sandbox Code Playgroud)
但是,我仍然想知道是否有一种方法可以digraph在表达式中使用:)
function! Digraph(letter, type)
silent exec "normal! :let l:s = '\<c-k>".a:letter.a:type."'\<cr>"
return l:s
endfunction
Run Code Online (Sandbox Code Playgroud)
此功能允许您生成所需的任何有向图.
它<c-k><char><char>通过使用普通命令运行并将其分配给局部变量s来模拟键入.然后它返回s.
定义此功能后,您可以像这样使用它.
:%s/\([aeiouAEIOU]\)'/\=Digraph(submatch(1), "!")/g
Run Code Online (Sandbox Code Playgroud)
注意:这是基于EasyDigraph的源代码