MS-DOSやWindowsのテキストエディタでは、 領域を指定してから削除やコピーを行なうことができますが、 もちろんviでもできます。これもコマンドで行ないます。 viのマークはマークをつけても文字が反転表示されたりしないので、 ちょっと色気がないかも知れませんが、やりたいことはできます。
mx
(x
はアルファベットなら何でもOK)`(バッククォート)x
と入力すると、
マークをつけた位置にカーソルが戻る(マーク位置の確認)。
mx
(x
はアルファベットなら何でもOK)d`(バッククォート)x
と入力すると、
マークをつけた位置から現在カーソル位置の手前まで文字(行)が削除される。
削除された文字(行)はバッファに入っているので、
所望のところで貼り付け(pあるいはP
)することはもちろん可能。
mx
(x
はアルファベットなら何でもOK)y`(バッククォート)x
と入力すると、
マークをつけた位置から現在カーソル位置の手前までの文字(行)がバッファに入る。p
あるいはP
。
(参考:jvim/vimの領域指定の方法)
vimおよび日本語対応viのjvimでは、 領域指定をMS-DOS/Windowsのエディタのように行なうこともできます。
v
(小文字)を押し、カーソルを移動させるとカーソルが移動した領域の文字が反転表示されて、 マークをつけたのと同じになります。 また、V
(大文字)を押すと、カーソルのある行全体が反転表示され、 この状態でカーソルを上下に移動させると、行単位での領域指定が可能です。 いずれの方法も所望の領域を反転表示させてから、d
で削除、y
でバッファにコピーが可能です。 この方法の領域指定を解除する場合は、v
あるいはV
を押すか、[ESC]キー
を押してカーソルキーのいずれかを押すと、 指定が解除されます。後者の場合はビープ音がなるでしょう。