4、5、6行目にコードがあるとします。次に、このコードのブロックを開始点の9行目に移動し、4、5、6行目も削除します。
これを達成するための最速の方法、つまりキーストロークの最小量は何ですか?カスタム関数の方が適していますか?
4、5、6行目にコードがあるとします。次に、このコードのブロックを開始点の9行目に移動し、4、5、6行目も削除します。
これを達成するための最速の方法、つまりキーストロークの最小量は何ですか?カスタム関数の方が適していますか?
回答:
4行目の最初から(ESC 4 ESC g gまたはM-4 M-g M-gそこに行くために)、C-3 C-k C-2 C-n C-y(またはESC 3 C-k down down C-y修飾キーを押したままにしたくない場合)これを行います。
頭の中で計算をしたくないが、代わりに視覚的に行を選択したい場合は、
C-SPC マークを設定するC-w 切るC-y 貼り付ける柔軟性を失わない限り(たとえば、正確に3行のブロックを頻繁に移動したい場合など)、これを短くする方法はないと思います。移動するブロックの始点、移動するブロックの終点、および目的地の3つの場所を指定する必要があります。上記のシーケンスでは、各場所に単一のキーストロークがあり、それは可能な限り低くなっています。
距離が大きくない場合は、move-textを使用できます。

キーストロークに関して、私にとっては:
地域を選択:
C-SPCC-nC-nC-n
地域を移動:
H-S-nH-S-nH-S-n
(move-text-downにバインドされているH-S-n)
関数のようにセマンティックユニットである場合は、expand-regionを使用してブロックをマークできます(パッケージのWebサイトでこれについて詳しく説明しています)。次に、他の応答で説明されているように移動します。ブロックのどこにいるかによって、1回のキーストロークで全体をマークできます。
を使用evil-modeしている場合は、代わりにex次のコマンドを使用できます:4,6m9(m行4を行に移動6します9)。
evil-modeはっきりとは分かりませんが、melpaでのダウンロード数は約18,000です。別の回答が使用されましたexpand-region。これも外部パッケージです。Q&Aサイトの場合、異なるパッケージで同じことを達成するために複数の方法を含めることはおそらく良いことです(ただし、いくつかのガイドラインを考え出すのは良いことかもしれません)。
nを指定することもできます。これにより、ステップ(2)がに短縮されます。move-text-downmove-text-upM-3H-S-n