18

関数全体をコピーするコマンドはありますか? (マウスによる選択ではありません)

例: 10yy--> は10カーソル位置から行をコピーします。
関数の行数がわかりませんが、関数全体をコピーしたいと考えています。

関数全体をコピーするコマンドはありますか?

4

8 に答える 8

47

これは、私が JavaScript と PHP で行っていることです。

va{Vy
  1. メソッドのどこかにカーソルを置き、
  2. va{コードブロックを視覚的に選択するには、
  3. V選択範囲を文字単位から行単位に変更するには、
  4. y引っ張る

深すぎva{て関数の一部しか選択していない場合は、a{必要なものを選択するまで、さらに多くのことができます。

于 2012-05-17T11:40:09.333 に答える
6

VIM を使用していて、プログラミング言語の関数本体がたまたま中かっこで囲まれている場合は、中かっこの 1 つにカーソルを置いてy%.

于 2012-05-17T09:09:49.567 に答える
3

関数が改行で囲まれている場合、使用できますyip

-
yヤンク
i- 内部
p- 段落

于 2018-08-19T16:22:51.777 に答える
2

中括弧言語 (Java など) は、]mコマンドを使用して関数に移動できます。一部のファイルタイプも]]これを定義しています。これにより、[mV]My(関数の先頭に移動、行ごとのビジュアルモードを開始、関数の最後に移動、ヤンク)を使用できます。

多くのファイルタイプでは、関数の折りたたみも定義されています。これで、使用できますzCyyzO(すべての折り畳みを閉じ、カーソルの下の折り畳み全体をヤンクし、折り畳みを開きます)。

于 2012-05-17T09:51:12.770 に答える
1

私も私のものを共有しています。これは、C# および Js コードで機能します。

" copy method
nnoremap <silent> yaf ?public\|protected\|private\|function<CR>Vj%y
" copy method and paste below
nnoremap <silent> yafp ?public\|protected\|private\|function<CR>Vj%yj%o<ESC>p
" cut method
nnoremap <silent> daf ?public\|protected\|private\|function<CR>Vj%d
于 2021-06-18T14:51:26.430 に答える