vim:visualモード
1.visualモードに入るvisualモードは3種類あり、1つはデフォルトのvisualモードで、normalモードで「v」を押すと入ることができます.1つはvisual lineモードで、「V」を押して入ることができます.もう1つは今日お話しするvisual blockモードで、Ctrl-Vを押して入ります.Windowsの下にあるvimならCtrl-Qで入ります.Windowsの下のvimには多くのショートカットキーが置き換えられており、インストールディレクトリの下のmswin.msiには詳細があります.
2.選択テキストがvisualモードになったら、shiftキーを押して上下左右に選択テキストを移動したり、数字+h/j/k/lを使って選択テキストブロックを移動したりすることができます.「$」と「^」を使用すると、選択を行末または行頭に拡張できます.
3.選択したテキストブロックを挿入した後、「I」を入力してテキスト挿入モードに入ります.入力したいテキストを入力し、「Esc」を押すと、選択したテキストブロックの各行の左側(テキストの左側を選択)に入力したテキストがすべて挿入されます.たとえば、次のようになります.
view source
print ?
「file 1」の「f」にカーソルを合わせると、Ctrl-Qを押してvisualモードに入り、「2 j」を押して2行を選択し、「I」を入力して挿入モードに入り、「include/」を入力して「Esc」を押すと、テキストは次のようになります.
view source
print ?
注意:(i)選択したブロックの後ろにテキストを入れる場合は、「I」を「A」(Append)に置き換えるとよい.たとえば、上記の例では「file」の前の「/」にカーソルが止まっている場合は、「Ainclude/」と入力しても同様の効果が得られる.(ii)選択したテキストブロックを各行の行末に拡張したい場合は、visualモードになったら、「$」を押す.同様に、行の先頭に拡張して使用します"^"
4.置換選択したテキストを置換する場合は、置換するテキストを選択し、「c」を入力して入力状態にし、テキストを入力して「Esc」キーを押します.前述の例では、「app」を選択し、「cinclude」と入力すると、テキストの内容は次のようになります.
view source
print ?
選択するテキストブロックから行末までのすべての内容を置換したい場合は、cの代わりにCを使用するか、"$"を使用して先に選択を行末まで拡張し、cで操作する.置換にはいくつかのコマンドがありますが、本ブロックを選択した後、直接このコマンドを入力すればいいです:~大文字と小文字を交換U小文字を大文字uに変更大文字を小文字に変更
5.「移動使用」>」は、選択したテキストを右に移動し、空白の部分をスペースで埋めます.使用":set shiftwidth=n"(nは数値)コマンドを使用して、移動するスペースの数を定義します.これは、プログラムを書くときに非常に役立ちます.例えば、次のコードがあります.
view source
print ?
最初のif文の前にforループを追加したい場合は、forループのネストを2回作成しますが、内部のプログラムセグメントは変わらず、追加後、明らかにプログラムのインデントが破壊され、最初のif後のすべての文が右にインデントされます.今回は、ブロック移動操作が役に立ちます.インデントする空白数を設定してから、最初のifブロックの文を選択し、「」>」と入力してインデントします.可哀想な以前は私はすべて1行また1行の移动に行って移动します...注意:"<"は左に移動できますが、左に十分なshiftスペースがない場合は、このコマンドは何もしません.
6.「J」コマンドを接続するには、選択した行をすべて1行に接続し、行と行の間にすべての改行と空白の代わりに1つのスペースを置き、接続行の最後に2つのスペースを配置します.行の先頭空白と接尾辞空白を保持するには、「J」コマンドの代わりに「gJ」を使用します.このコマンドは、3つのvisualモードで実行できます.
2.選択テキストがvisualモードになったら、shiftキーを押して上下左右に選択テキストを移動したり、数字+h/j/k/lを使って選択テキストブロックを移動したりすることができます.「$」と「^」を使用すると、選択を行末または行頭に拡張できます.
3.選択したテキストブロックを挿入した後、「I」を入力してテキスト挿入モードに入ります.入力したいテキストを入力し、「Esc」を押すと、選択したテキストブロックの各行の左側(テキストの左側を選択)に入力したテキストがすべて挿入されます.たとえば、次のようになります.
view source
print ?
1
include
"/home/app/file1.h"
2
include
"/home/app/file2.h"
3
include
"/home/app/file3.h"
「file 1」の「f」にカーソルを合わせると、Ctrl-Qを押してvisualモードに入り、「2 j」を押して2行を選択し、「I」を入力して挿入モードに入り、「include/」を入力して「Esc」を押すと、テキストは次のようになります.
view source
print ?
1
include
"/home/app/include/file1.h"
2
include
"/home/app/include/file2.h"
3
include
"/home/app/include/file3.h"
</TD>
注意:(i)選択したブロックの後ろにテキストを入れる場合は、「I」を「A」(Append)に置き換えるとよい.たとえば、上記の例では「file」の前の「/」にカーソルが止まっている場合は、「Ainclude/」と入力しても同様の効果が得られる.(ii)選択したテキストブロックを各行の行末に拡張したい場合は、visualモードになったら、「$」を押す.同様に、行の先頭に拡張して使用します"^"
4.置換選択したテキストを置換する場合は、置換するテキストを選択し、「c」を入力して入力状態にし、テキストを入力して「Esc」キーを押します.前述の例では、「app」を選択し、「cinclude」と入力すると、テキストの内容は次のようになります.
view source
print ?
1
include
"/home/include/file1.h"
2
include
"/home/include/file2.h"
3
include
"/home/include/file3.h"
</TD>
選択するテキストブロックから行末までのすべての内容を置換したい場合は、cの代わりにCを使用するか、"$"を使用して先に選択を行末まで拡張し、cで操作する.置換にはいくつかのコマンドがありますが、本ブロックを選択した後、直接このコマンドを入力すればいいです:~大文字と小文字を交換U小文字を大文字uに変更大文字を小文字に変更
5.「移動使用」>」は、選択したテキストを右に移動し、空白の部分をスペースで埋めます.使用":set shiftwidth=n"(nは数値)コマンドを使用して、移動するスペースの数を定義します.これは、プログラムを書くときに非常に役立ちます.例えば、次のコードがあります.
view source
print ?
1
for
( i=0; i<10; i++ ) {
2
if
( ... ) {
3
......
4
}
5
if
( ... ) {
6
a = i * 2;
7
b = a--;
8
}
9
}
最初のif文の前にforループを追加したい場合は、forループのネストを2回作成しますが、内部のプログラムセグメントは変わらず、追加後、明らかにプログラムのインデントが破壊され、最初のif後のすべての文が右にインデントされます.今回は、ブロック移動操作が役に立ちます.インデントする空白数を設定してから、最初のifブロックの文を選択し、「」>」と入力してインデントします.可哀想な以前は私はすべて1行また1行の移动に行って移动します...注意:"<"は左に移動できますが、左に十分なshiftスペースがない場合は、このコマンドは何もしません.
6.「J」コマンドを接続するには、選択した行をすべて1行に接続し、行と行の間にすべての改行と空白の代わりに1つのスペースを置き、接続行の最後に2つのスペースを配置します.行の先頭空白と接尾辞空白を保持するには、「J」コマンドの代わりに「gJ」を使用します.このコマンドは、3つのvisualモードで実行できます.