ホームページ  >  記事  >  php教程  >  Linux での vi コマンドの完全なリスト

Linux での vi コマンドの完全なリスト

高洛峰
高洛峰オリジナル
2016-12-12 16:24:361166ブラウズ

viを入力するコマンド
vi filename: ファイルを開くか新しいファイルを作成し、最初の行の先頭にカーソルを置きます
vi +n filename: ファイルを開き、n行目の先頭にカーソルを置きます
vi + ファイル名: ファイルを開き、最後の行の先頭にカーソルを置きます
vi +/パターン ファイル名: ファイルを開き、パターンに一致する最初の文字列にカーソルを置きます
vi -r ファイル名: で編集中にシステムがクラッシュしましたvi 前回、ファイル名を回復します
vi filename....filename: 複数のファイルを開いて順番に編集します

カーソル移動コマンド
h: カーソルを 1 文字左に移動します
l: カーソルを 1 文字右に移動します
space: カーソルを 1 文字右に移動します
Backspace : カーソルを 1 文字左に移動します
k または Ctrl+p: カーソルを 1 行上に移動します
j または Ctrl+n: カーソルを 1 行下に移動します
Enter : カーソルが 1 行下に移動します
w または W: カーソルが 1 文字右の先頭に移動します
b または B: カーソルが 1 単語左の先頭に移動します
e または E: カーソルが 1 単語左に移動します右から最後まで
): カーソルを文末に移動
(: カーソルを文頭に移動
}: カーソルを段落の先頭に移動
{ : カーソルを文末に移動段落の
nG: カーソルが n 行目の先頭に移動します
n+: カーソルが n 行下に移動します
n-: カーソルが上に n 行移動します
n$: カーソルが n 行目の末尾に移動します
H:カーソルが画面の先頭行に移動します
M: カーソルが画面の中央行に移動します
L: カーソルが画面の最後の行に移動します
0: (数字のゼロに注意してください) カーソルが先頭に移動します現在行の
$: カーソルが現在の行の末尾に移動します

画面スクロール クラス コマンド
Ctrl+u: ファイルの先頭に向かって半画面スクロールします
Ctrl+d: 最後に向かって半画面スクロールしますファイルの
Ctrl+f: ファイルの最後に向かって 1 画面スクロールします
Ctrl+b; ファイルの先頭に向かって 1 画面スクロールします
nz: n 行目を移動します 画面の一番上にスクロールします

テキストを挿入します。コマンド
i: カーソルの前
I: 現在の行の先頭
a: カーソルの後
A: 現在の行の末尾
o : 現在の行の下に新しい行を開く
O: 新しい行を開く現在の行の上の行
r: 現在の文字を置換します
R: 現在の文字と ESC キーが押されるまでその後の文字を置換します
s: 現在のカーソル位置から開始します 指定された数の文字を入力されたテキストに置換します
S: 指定した行数を削除し、入力したテキストに置き換えます
ncw または nCW: 指定した文字数を変更します
nCC: 指定した行数を変更します

削除コマンド
ndw または ndW: n-1 を削除しますカーソル位置とそれに続く文字
do: 行頭まで削除
d$: 行末まで削除
ndd: 現在行とその後の n-1 行を削除
x または X: 削除文字、x はカーソル以降を削除し、パターン: カーソルの先頭からファイルの先頭までパターンを検索します
n: 最後の検索コマンドを同じ方向に繰り返します
N: 最後の検索コマンドを同じ方向に繰り返します逆方向
: s/p1/p2/g: 現在行の p1 をすべて置換 p2 に置換
: n1,n2s/p1/p2/g: n1 ~ n2 行の p1 をすべて p2 に置換
: g/ p1/s//p2/g: ファイル内のすべての p1 を p2 に置き換えます

オプション設定
all: すべてのオプション設定をリストします
term: 端末の種類を設定します
ignorance: 検索で大文字と小文字を無視します
list: タブストップを表示します (Ctrl +I) と行末フラグ ($)
number: 行番号を表示します。
report: 行指向のコマンドによって変更された番号を表示します。
terse: 短い警告メッセージを表示します。
warn: 現在のファイルの場合、NO write メッセージを表示します。別のファイルに切り替えると保存されません
nomagic: 検索モードを許可し、先頭に「」を付けない特殊文字を使用します
nowrapscan: vi がファイルの両端から検索し、もう一方の端から開始することを禁止します
mesg: vi を許可しますwrite を使用して他のユーザーが自分の端末に書き込んだ情報を表示します

最後に行モードコマンド
: n1, n2 co n3: n1 行目から n2 行目への内容を n3 行目にコピーします
: n1, n2 m n3: 行間で内容を移動しますn1 から n2 へ n3 行目 次の行
: n1, n2 d: n1 行目と n2 行目の内容を削除
: w: 現在のファイルを保存
: e filename: ファイル filename を編集用に開きます
: x: 現在のファイルを保存そして終了します
: q: vi を終了します
: q!: ファイルを保存せずに vi を終了します
: !command: シェルコマンドコマンドを実行します
: n1,n2 w!command: ファイルの n1 行目から n2 行目の内容を次のように使用しますn1 と n2 が指定されていない場合、ファイルの内容全体がコマンドの入力として使用されることを意味します
: r!command: コマンド command の出力結果を現在の行に置きます。

登録操作
"?nyy: 現在の行とその下にn行を置きます 内容を保存して登録しますか? 、ここで、? は文字、n は数字
"?nyw: 現在の行と次の n ワードをレジスタに保存します?、ここで、? は文字、n は数字
"?nyl: 現在の行と次の n 文字をレジスターに保存します?、ここで、? は文字、n は数字です
"?p: レジスターを取り出しますか?そしてカーソルの位置に置きます。ここ?文字でも数字でも構いません
ndd: 現在行とその下 n 行のテキストを削除し、削除した内容を削除レジスタ 1 番に入れます。

VIの使用法
------------------------------------------ ---------- ------------------------------------

1. テキストを挿入します
┌ ──┬─── ─────┐
│コマンド│説明│
├─┼──────┤
│i │現在の文字の前にテキストを挿入│
§──┼───────┤
│I │行頭にテキストを挿入 │
§──┼───────┤
│ a │現在の文字の後に追加 テキスト│
§──┼───────┤
│A │行末にテキストを追加│
§──┼───── ──────┤
│o │現在行の後に空行を挿入│
til──┼──────┤
│O │前に空行を挿入現在の行│
§──┼────────────┤
│R │書き換えモードでテキストを入力 │
└──┴──────┘
2. カーソルの移動
┌─────┬── ─────┐
│コマンド│説明│
§────┼───── ┤
│j または下矢印│1 行下に移動│
nel ───┼─────┤
│k または上矢印│1 行上に移動│
§─── ──┼─────┤
│h または左矢印│左に 1 文字移動│
§─────┼─────┤
│ l または右矢印│右に一文字移動│
§───── ┼─────┤
│w │右に一文字移動│
§─────┼─ ──────┤
│W │右に 1 単語移動 スペース区切りの単語 │
§────┼─────┤
│b │右に 1 単語移動左│
§─────┼─────┤
│B │スペースで区切られた単語を 1 つ左に移動│
§─────┼───── ────┤
│0 │行頭に移動│
│Ctrl- F │ページ送り│
├────┼─────┤
│Ctrl- B │ページ逆送り│
§──────┼──── ──────┤
│nG │n行目へ│
§──────┼──────── ──┤
│G │最終行へ│
└─── ──┴─────┘
3. ──┐
│コマンド│説明│
§─────┼──────┤
│$ │行末へ│
├─────┼─────┤
│( │文頭へ│
├─────┼─── ──┤
│) │文末へ│
§─────┼─── ──┤
│{ │段落の先頭へ│
§─────┼───── ┤
│} │段落の最後へ│
└─────┴── ──┘

4. テキストの削除
┌───┬───────┐
│コマンド│説明│
├───┼───── ─┤
│r │文字を置換する│
§───┼───────┤
│c │Escキーが押されるまでテキストを修正する│
§───┼─ ─────┤
│cw │次の単語を修正する│
§───┼───── ────┤
│cnw │次のn単語を修正する│
└─ ──┴─────┘
5. テキスト編集
┌──┬─────────┐
│ミンジ│説明│
§──┼─────── ───┤
│yy │テキスト行をデフォルトのバッファに移動する│
§──┼─────── ─┤ n │YN │ 次のワードをデフォルトのバッファ領域にシフト │
─┼──────────┤






│ynw │次の n 単語をデフォルトのバッファに移動します│
§──┼─────────────┤
│p │If Ifデフォルトのバッファにテキスト行が含まれている場合は、現在の行の後に空の行を挿入し、デフォルトのバッファ内の音声コンテンツをこの行に貼り付けます。デフォルトのバッファに │
│ │複数の単語が含まれている場合は、これらの単語をテキストの右側に貼り付けます。カーソル。 │
§──┼─────────────┤
│P │デフォルトのバッファにテキスト行が含まれている場合は、現在のバッファ │
│ │ 行の前に空の行を挿入し、デフォルトのバッファーの内容をこの行に貼り付けます。デフォルトのバッファーに複数の単語が含まれている場合は、これらの単語をカーソルの左側に貼り付けます


└─┴──── ───────┘
6. 保存して終了
┌───────┬─ ────── ──┐
│コマンド│説明│
§─────┼───────── ┤
│zz │保存して終了│
──────┼───────┤
│:w ファイル名 │書き込みファイル│
§────── ────┼─────────┤
│:W │ファイルの書き込み│
§─────┼────── ─────┤
│:x │保存して(現在のファイルが変更されている場合)終了│
§───────┼─ ──── ─────┤
│:q! ​​│ファイルを保存せずに直接終了│
----------------------------┼───── ──┤
│:q │Exit vi │

VI Common Tips

VI コマンドは、Unix/Linux の世界でファイルを編集するために最も一般的に使用されるコマンドと言えますが、コマンド セットが多数あるため、実際、基本的なコマンドをマスターするだけで、その利点がわかり、徐々にこの方法を使いたくなるでしょう。この記事は、VI の最も一般的に使用されるコマンドと高度なアプリケーション テクニックのいくつかを紹介することを目的としています。

1. 基本コマンドの紹介

---- 1.カーソルコマンド

k、j、h、l - 上下左右のカーソル移動コマンド。 Linux ではキーボードの右側にある 4 つのカーソル キーを使用できますが、これら 4 つのコマンドを覚えておくと非常に役立ちます。これら 4 つのキーは、キーボード上の右手の基本的な位置です。
nG——ジャンプコマンド。 n は行数です。このコマンドは、カーソルを指定された行に即座にジャンプします。
Ctrl+G - カーソル位置の行数と列数をレポートします。
w、b - カーソルを前後に 1 単語スキップします。
----2.コマンドの編集
i、a、r - カーソルの前後および位置に文字コマンドを挿入します (i=挿入、a=追加、r=置換)。
cw、dw - カーソル位置の単語を変更 (置換)/削除するコマンド (c=変更、d=削除)。
x、d$、dd - 1 文字を削除するコマンド、カーソルから行末までのすべての文字を削除するコマンド、および行全体を削除するコマンド。
----3.検索コマンド
----/string, ?string---カーソル位置から後方または前方に対応する文字列を検索するコマンド。
----4.コピー コマンド
---- yy, p - 行をクリップボードにコピーするか、クリップボードの内容を削除するコマンド。

2. よくある質問と申請のヒント

---- 1.新しいファイルの /etc/passwd の内容を読み取り、ユーザー名の部分を抽出します。
---- vi ファイル
---- :r /etc/passwd 開いているファイル file のカーソル位置にある /etc/passwd を読み取ります 🎜---- :%s/:.*//g /etc/passwd のユーザー名の後ろのコロンから行末までをすべて削除します。
---- 指定した行番号以降のファイルの内容を読み取ることもできます。たとえば、コマンド「:3r /etc/passwd」を使用して、新しいファイルの 3 行目から始まる /etc/passwd のすべての内容を読み取ります。ファイル。
---- 次の方法を使用して、ファイル内の # で始まるすべての空白行とコメント行を削除することもできます。
---- #cat squid.conf.default | grep -v ^$ | grep -v ^#

---- 2.編集するためにファイルを開いた後、ログインしたユーザーにファイルへの書き込み権限がないため、変更を一時ファイルに保存する必要があることがわかりました。
---- vi ファイル
---- :w /tmp/1 加えた変更をすべて保存します。変更の一部を一時ファイルに保存することもできます (たとえば、20 行目から 59 行目の内容だけ)。ファイル /tmp/1 では、次のコマンドを入力できます。
---- vi ファイル
---- :20,59w /tmp/1

---- 3. VI を使用してファイルを編集しますが、コンテンツの大部分を削除する必要があります。
---- まず、編集コマンド「vi ファイル」を使用してファイルを開き、削除する必要がある行にカーソルを移動し、Ctrl+G を押して行番号を表示し、最後に Ctrl+G を押します。ファイルの末尾の行番号を表示します。
---- :23,1045d 2 回取得した行番号が 23 と 1045 であると仮定し、この期間内のすべての内容を削除します。また、ma および mb コマンドを使用して、削除する開始行と終了行をマークすることもできます。その後、「:a,bd」コマンドを使用して削除します。

---- 4.ファイル全体または一部の行の各行の先頭または末尾に文字列を追加します。
---- vi ファイル
---- :3,$s/^/some string / ファイルの最初の行の先頭から最終行までに「何らかの文字列」を挿入します。
---- :%s/$/some string/g ファイル全体の各行の最後に「some string」を追加します。
---- :%s/string1/string2/g ファイル全体の「string1」を「string2」に置き換えます。
---- :3,7s/string1/string2/ ファイルの3~7行目の「string1」のみを「string2」に置き換えます。
---- 注: s は置換を表し、% はすべての行を表し、g はグローバルを表します。

----5. 2 つのファイルを同時に編集し、一方のファイルからテキストをコピーして、もう一方のファイルに貼り付けます。
---- vi file1 file2
---- yy ファイル 1 のカーソルの行をコピー
---- :n ファイル 2 に切り替えます (n=next)
---- p ファイル 2 のカーソルコピーした行を
---- :n の場所に貼り付けます。 ファイル 1 に戻ります

---- 6.ファイル内のパスを置き換えます。
---- コマンド「:%s#/usr/bin#/bin#g」を使用して、ファイル内のすべてのパス /usr/bin を /bin に置き換えます。コマンド「:%s//usr/bin//bin/g」を使用することもできます。ここで、「」はエスケープ文字であり、次の「/」文字が区切り文字ではなく実際の意味を持つ文字であることを示します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。