Linux vi/vim


すべての Unix 系システムには vi ドキュメント エディタが組み込まれていますが、他のドキュメント エディタが存在しない場合があります。

しかし、現在では vim エディターをよく使用しています。

vim にはプログラムを編集する機能があり、フォントの色によって文法の正しさをアクティブに識別できるため、プログラムの設計が容易になります。

関連記事: 史上最も完全な Vim ショートカット キーのビットマップ - 入門から上級まで


vim とは何ですか?

Vim は vi から開発されたテキストエディタです。特にコード補完、コンパイル、エラージャンプなどプログラミングを容易にする機能が豊富で、プログラマーの間で広く使われています。

簡単に言うと、vi は昔ながらのワープロですが、その機能はすでに非常に完成されていますが、まだ改善の余地があります。 vimはプログラム開発者にとって非常に便利なツールと言えます。 vim の公式 Web サイト (http://www.vim.org) 自体でも、vim はワードプロセッサ ソフトウェアではなくプログラム開発ツールであると述べています。

vim キーボード図:

vi-vim-cheat-sheet-sch.gif


vi/vim の使い方

基本的に、vi/vim は 3 つのモード、つまり一般モード、編集モード、コマンドラインコマンドモードに分かれています。 これら 3 つのモードの機能は次のとおりです:

  • 一般モード:
    vi でファイルを開くと、直接通常モードになります (これがデフォルトのモードです)。このモードでは、 「上下左右」キーでカーソルを移動したり、「文字削除」や「行全体削除」でファイル内容を加工したりできます。 「コピー&ペースト」を使用してファイルデータを処理することもできます。

  • 編集モード:
    通常モードでは、削除、コピー、ペーストなどはできますが、ファイルの内容を編集することはできません。 『i,』を押すまでお待ちください。 I、o、O、a、A、r、R などは、任意の文字の後に編集モードに入ります。注意!通常は Linuxの場合、これらのキーを押すと画面左下に「INSERT」と表示されます。 または REPLACE」を選択した場合のみ編集できます。通常モードに戻したい場合は、 編集モードを終了するには、「Esc」ボタンを押す必要があります。

  • コマンドラインコマンドモード:
    通常モードの場合は「」と入力します。 : / ? ‖ 3 つのボタンのいずれかでカーソルを最後の行に移動できます。このモデルでは、 読み取り、保存、多数の文字の置換、終了などの「データの検索」アクションを提供します。 行番号の表示などの vi の動作はこのモードで実現されます。

簡単に言うと、これら 3 つのモードは以下のアイコンのように考えることができます:

1040.png

vi/vim の使用例

vi/vim を使用して通常モードに入る

vi を使用してファイルを作成したい場合test.txt という名前を付けると、次のことができます:

[root@www ~]# vi test.txt

vi ファイル名 を直接入力して、vi の通常モードに入ります。ファイルが存在するかどうかに関係なく、vi の後にファイル名を追加する必要があることに注意してください。

1041.png

i を押して編集モードに入り、テキストの編集を開始します

通常モードでは、i、o、a などの文字を押すだけで編集モードに入ります。

編集モードでは、左下隅のステータス バーに「挿入」という単語が表示され、任意の文字を入力できるように求められます。

この時点では、[Esc]キーを除くキーボード上の他のすべてのキーは一般的な入力ボタンと見なすことができるため、任意の編集を行うことができます。

1048.jpg

[ESC]ボタンを押して通常モードに戻ります

さて、上記のスタイルで編集が完了したとして、どのように終了すればよいでしょうか?はい!それは正しい! [Esc] ボタンを押してください。画面の左下隅にある – INSERT – が表示されていないことがすぐにわかります。

通常モードでは、:wq を押して vi を保存して終了します

OK、保存します。保存して終了するコマンドは非常に簡単です。「:wq」と入力して保存して終了します。

1049.png

OK! このようにして、test.txt ファイルが正常に作成されました。シンプルではないでしょうか。


vi/vim ボタンの説明

上記の簡単な例の i、[Esc]、:wq に加えて、vim には実際に使用できるボタンがたくさんあります。

パート1: 通常モードで使用できるボタンの説明、カーソルの移動、コピーと貼り付け、検索と置換など

nxddnddd1GdGd$d0yynyyy1GyGy0y$p , PJc u[Ctrl]+rこのuと[Ctrl]+rはとてもよく使うコマンドです!一つは修復、もう一つはやり直し〜 編集にはこれら 2 つのファンクション キーを使用します。とても嬉しいです! .
カーソルの移動方法
hまたは左矢印キー(←) カーソル 左に1文字移動
jまたは下矢印キー(↓)カーソルを1文字下に移動
kまたは上矢印キー(↑)カーソルを1文字上に移動
l または右矢印キー(→)カーソルを右に1文字移動
右手をキーボードの上に置くと、hjkl がまとめて配置されており、4 つのボタンを使用してカーソルを移動できることがわかります。 複数回移動する場合 (たとえば、30 行下に移動する場合)、「30j」または「30↓」キーの組み合わせを使用できます。 つまり、実行したい回数(数値)を足してからアクションを押しましょう!
[Ctrl] + [f] 画面を 1 ページ「下」に移動します。[Page Down] ボタンと同等です (よく使う)
【Ctrl】+【b】画面を1ページ上に移動、【Page Up】ボタンに相当 (よく使う)
【Ctrl】+【d】画面を半ページ「下」に移動
【Ctrl】+【u】画面を半ページ「上」に移動
+ カーソルはスペース以外の文字の次の列に移動します
-カーソルはスペース以外の文字の前の列に移動します
n<スペース>それはn 20 などの「数字」を意味します。数字を押してからスペースバーを押すと、カーソルがこの行の n 番目に右に移動します。 文字。たとえば、20 はカーソルを 20 文字戻します。
0 またはファンクションキー[ホーム]これは数字の「0」です: この行の先頭文字に移動します (常用)
$ またはファンクションキー [End] この行の最後の文字に移動 (常用)
H この画面の先頭行の先頭の文字にカーソルを移動
Mこの画面中央の行の先頭文字にカーソルが移動します
Lこの画面の下の行の先頭文字にカーソルが移動します
G このファイルの最後の行に移動(よく使われます)
nGnは数字です。このファイルの n 行目に移動します。たとえば、20G はこのファイルの 20 番目の場所に移動されます。 OK (:set nu と併用可能)
gg で、このファイルの最初の行 (1G に相当) に移動します。 (よく使われます)
n<Enter>nは数字です。カーソルを n 行下に移動します (一般的に使用されます)
検索と置換
/word カーソルの下にある word という名前の文字列を検索します。たとえば、ファイル内で vbird を検索するには この文字列には、「/vbird」と入力するだけです。 (よく使われます)
?wordカーソルの上にある word という名前の文字列を探します。
nnは英語のボタンです。前回の検索を繰り返すアクションを表します。例えば、 /vbird を実行して文字列 vbird を下方向に検索した場合、n を押した後、次の名前 vbird を下方向に検索し続けます。 弦。 ?vbird が実行されている場合、n を押すと、vbird! という名前の文字列が上方向に検索され続けます。
NこのNは英語のボタンです。 n の逆で、前の検索アクションを「逆」に実行します。 たとえば、/vbird の後に N を押すと、vbird を検索する「上」を意味します。
/word を n および N とともに使用すると、非常に便利です。検索したキーワードの一部を繰り返し見つけることができます。
:n1,n2s/word1/word2/gn1とn2は数字です。 n1 行と n2 行の間にある文字列 word1 を見つけて、その文字列を次のように置き換えます。 言葉2!たとえば、100 行目と 200 行目の間で vbird を検索し、それを VBIRD に置き換えると、次のようになります:
『:100,200s/vbird/VBIRD/g』。 (よく使われます)
:1,$s/word1/word2/g 最初の行から最後の行までの word1 の文字列を検索し、その文字列を次のように置き換えます。 言葉2! (よく使われる)
:1,$s/word1/word2/gc 最初の行から最後の行までの word1 の文字列を検索し、その文字列を次のように置き換えます。 言葉2!置き換える前にユーザーに確認するプロンプト文字を表示します。 交換する必要がありますか? (よく使われます)
削除、コピーアンドペースト
x、 X は 1 文字前に削除します (バックスペース キーの [バックスペース] に相当します)。 (よく使われます)
nは数字で、後ろにn文字連続して削除します。例えば10文字連続で削除したいのですが、 「10倍」。
カーソルがある行全体を削除(よく使われます)
nは数字です。カーソルがある位置から下方向に n 列を削除します。たとえば、20dd は 20 列を削除します。 (よく使う)
カーソルから先頭行までのデータを全て削除
カーソルから最終行までのデータを全て削除
カーソルのある行まで削除is, to 行の最後の文字
は数値の 0 です。 カーソルがある場所を削除し、行の最初の文字に移動します
カーソルがある行をコピーします (一般的に使用されます)
n は数字です。カーソルが置かれている場所の下に n 列をコピーします。たとえば、20yy は 20 をコピーします。 カラム(よく使う)
カーソルのある列のデータを最初の列までコピー
カーソルのある列のデータを最後の列までコピー
カーソルをコピー その文字から行頭までの全データをコピー
カーソルのある文字から行末までの全データをコピー
pはカーソル下のデータをコピーするという意味です 次の行が貼り付けられ、Pはカーソルの1行上に貼り付けられます! たとえば、カーソルは現在 20 行目にあり、10 行のデータがコピーされています。次にpを押した後、 これら 10 行のデータは、元の 20 行の後に、つまり行 21 から貼り付けられます。しかし、P を押したらどうなるでしょうか? その後、元の行 20 が行 30 にプッシュされます。 (よく使われる)
カーソルのある列と次の列のデータを同じ列に結合
下方向に10行削除するなど、複数のデータを繰り返し削除する [ 10cj ]
前のアクションを復元します。 (よく使う)
前の操作をやり直します。 (よく使うコマンド)
疑わないでください!これが小数点です!前の動作を繰り返すという意味です。繰り返し削除、繰り返し貼り付けなどをしたい場合は小数点「.」を押すだけ! (よく使われます)

パート 2: 通常モードから編集モードに切り替えるために使用できるボタンの説明

挿入または置換の編集モードに入る
i, I 挿入を入力するモード(インサートモード):
i は「現在のカーソル位置から挿入」を意味し、I は「現在の行の最初の非スペース文字から挿入」を意味します。 (よく使われます)
a、A挿入モードに入る:
a は「現在カーソルがある次の文字から挿入を開始する」ことを意味します。 「カーソルのある行の最後の文字から挿入」です。 (よく使われます)
o, O挿入モードに入ります:
これは、英語の文字 o の大文字と小文字のバージョンです。 o は「現在カーソルが置かれている次の行に新しい行を挿入する」ことを意味します。 O 現在のカーソル位置の上に新しい行を挿入します。 (よく使われます)
r、R置換モードに入る:
r はカーソルが置かれている文字を 1 回だけ置き換えます。R はカーソルが置かれている文字を常に置き換えます。 ESCまで; (よく使う)
上記のキーのうち、「--INSERT--」または「--REPLACE--」という文字がvi画面の左下隅に表示されます。 このアクションは名前からすでにわかります。 !特別な注意は、上で述べたように、ファイルに文字を入力する場合、 入力するには、左下隅に INSERT または REPLACE が表示されている必要があります。
[Esc]編集モードを終了し、通常モードに戻ります(よく使用されます)

パート 3: 通常モードからコマンド ライン モードに切り替えるために使用できるボタンの説明

コマンド バーの保存、終了、その他のコマンド
:w編集したデータをハードディスク ファイルに書き込みます ( よく使われます)
:w! ファイル属性が「読み取り専用」の場合、ファイルは強制的に書き込まれます。ただし、書けるかどうかは、 それは依然としてファイルに対するファイル権限と関係があります。
:qExit vi (よく使われます)
:q! ファイルを変更していて保存したくない場合は、! を使用してファイルを保存せずに強制的に終了します。
注意してください、vi の感嘆符 (!) は「強制」を意味することがよくあります~
:wq保存して終了 :wq! の場合、強制的に保存して終了します。 (よく使われます)
ZZこれは大文字のZです!ファイルが変更されていない場合は、保存せずに終了します。ファイルが変更されている場合は、保存して終了します。
:w [ファイル名]編集したデータを別ファイルに保存(新規ファイルを保存するのと同様)
:r [ファイル名] 編集したデータの中に、別のファイルのデータを読み込みます。つまり「ファイル名」 このファイルの内容がカーソルのある行の末尾に追加されます
:n1,n2 w [filename]n1からn2までの内容をファイルfilenameに保存します。
:! コマンド vi を一時的に終了し、コマンド ライン モードでコマンドを実行して結果を表示します。たとえば
『:! ls /home』 ls で出力されたファイル情報を /home 配下に表示できます!
vim環境変更
:set nuは設定後、各行の接頭語にその行の行番号が表示されます
:set nonu逆に行番号をキャンセルしてください!

vi/vim では数値が非常に意味があることに特に注意してください。通常、この数字は繰り返す回数を表します。 また、どの番号に行くかなどを意味する場合もあります。

例えば50行削除したい場合は「50dd」としますよね? 数値はアクションの前に追加されますが、20 行下に移動したい場合はどうすればよいですか?それは「20j」または「20↓」です。