代码之家  ›  专栏  ›  技术社区  ›  builder-7000

Vim映射以删除括号内的文本

vim
  •  1
  • builder-7000  · 技术社区  · 6 年前

    我创建了一个映射来删除括号内的文本,即使光标位于括号外。这是地图:

    nnoremap di( f(,di(
    

    我用这个代码测试它:

    int main(int argc, char **argv) {
    

    ( . 如果我把光标放在 ( 没有删除任何内容。为什么地图不工作?

    f(,di( 它不需要定义任何映射就可以工作(不管光标的初始位置如何,它都会删除括号内的文本)。只有当我映射到 di(

    1 回复  |  直到 6 年前
        1
  •  1
  •   builder-7000    6 年前

    我在 vi.stackexchange.com . 由于在 :help map-error . 解决办法是 :silent! 以防止映射在出错时中止。地图的工作版本是:

    nnoremap <silent> di( :silent! normal! f(,di(<cr>