3

プラグインvim-surroundを使用しています。これは ds( を「周囲のブラケットを削除する」ようにマップします。たとえば、(Hello) を Hello に変換します。たとえば、foo(bar) を bar に変換するなど、関数アプリケーションを削除するコマンドをマップしたいと考えています。

私は試した

nmap <Leader>df bdt(ds(

単語の先頭に移動するには、最初の ( まで削除し、次に周囲の括弧を削除します。ただし、それを使用すると、括弧までしか削除されず、その後の括弧自体の削除は行われません. 最初の部分の後に他の編集コマンドを入れてみましたが、うまくいきました。

nmap <Leader>df bdt(x

期待どおりに動作します。

同様に、私はただやってみました

nmap <Leader>s ds(

それも機能します!

動作しないその他のこと:

nmap <Leader>df bdt(<bar>ds(

誰も私がこれを機能させる方法を知っていますか?

4

2 に答える 2

2

次のようなより単純なマッピングをお勧めします。

nmap <silent> dsf ds)db

これにより、「周囲の」関数アプリケーションが削除されるため、カーソルは括弧の上または内側にある必要があります。

于 2012-11-20T03:59:38.770 に答える
0

カーソルが括弧内のどこかにあると仮定すると、別のもの:

nnoremap <leader>df yi(B"_df)p
  • yiかっこの中にあるものをアンクする
  • Bの最初にジャンプfunction
  • dブラック ホール レジスタ内の関数呼び出し全体を削除する
  • p以前にヤンクされたテキストを ut
于 2012-11-20T07:38:03.770 に答える