1
如何定义一个在输入时正在更新的运算符?
我已经定义了一个运算符映射,该映射使用文本区域,然后要求输入字符串,然后使用输入字符串作为参数将区域与Tabular对齐。效果很好。 我已经这样实现了,使用vim-operator-user来帮助定义一个新的运算符: map \aa <Plug>(operator-align) call operator#user#define('align', 'Align') function! Align(motion_wiseness) let expr = input("align: ") if len(expr) != 0 execute "'[,']Tabularize /".expr endif endfunction function! Getchar() let c = getchar() if c =~ '^\d\+$' let c = nr2char(c) endif return c endfunction 然后我想知道是否可以在输入要与之对齐的正则表达式时动态更新它。当前方法的问题是,如果使用的表达式不正确,则必须先撤消然后重做。 对于交互式尝试,我这样做: map \== <Plug>(operator-align-interactive) call operator#user#define('align-interactive', 'AlignInteractive') …