Vim映射删除括号内的文本
我创建了一个映射来删除括号内的文本,即使光标在括号外。这是地图:Vim映射删除括号内的文本,vim,Vim,我创建了一个映射来删除括号内的文本,即使光标在括号外。这是地图: nnoremap di( f(,di( 我用以下代码测试它: int main(int argc,char**argv){ 仅当光标位于()之前时,地图才起作用。如果我将光标放在(之后,则不会删除任何内容。为什么地图不起作用 请注意,请尝试f(,di)(而不定义任何映射,它可以工作(无论光标的初始位置如何,它都会删除括号内的文本)。仅当我映射到di时(它不起作用。我在上发现了一个类似的问题。由于:help map error中
nnoremap di( f(,di(
我用以下代码测试它:
int main(int argc,char**argv){
仅当光标位于(
)之前时,地图才起作用。如果我将光标放在(
之后,则不会删除任何内容。为什么地图不起作用
请注意,请尝试
f(,di)(
而不定义任何映射,它可以工作(无论光标的初始位置如何,它都会删除括号内的文本)。仅当我映射到di时(
它不起作用。我在上发现了一个类似的问题。由于:help map error
中记录的行为,映射不起作用。解决方案是使用:silent!
防止映射因错误而中止。映射的工作版本是:
nnoremap <silent> di( :silent! normal! f(,di(<cr>
nnoremap di(:静默!正常!f(,di(
如果您键入f(,di)(
而没有映射,它会工作吗?如果我键入f(,di)(
而没有映射,它会工作(它会删除括号内的文本,不管光标的初始位置如何)。但是当我将它映射到di(