Linux での vi コマンドの使用を紹介します。

高洛峰
リリース: 2016-12-12 16:43:15
オリジナル
1167 人が閲覧しました

最も強力なエディタの 1 つ - vi
vi は、すべての UNIX システムで提供されるスクリーン エディタで、ファイルを編集できるウィンドウ デバイスを提供します。もちろん、UNIX システムを少し知っている人にとっては、vi は非常に使いにくいと感じるでしょうが、vi は最も基本的なエディタなので、読者の皆さんにはしっかりと学習してスムーズに使いこなせるようになることを願っています。他のいくつかのテキスト プロセッサは UNIX に標準装備されていないため、将来の UNIX の世界でも簡単に利用できます。他の人の Linux マシンには joe または pico がインストールされていない可能性があります。vi を知らない場合は、実行できない可能性があります。
vi の基本概念
基本的に、vi はコマンド モード、挿入モード、最終行モードの 3 つの動作状態に分類できます。各モードの機能は次のとおりです。コマンド モード: 画面カーソルの移動、文字またはカーソルの削除、セクションの移動とコピーを制御し、挿入モードに入るか、最終行モードに移行します。
2.挿入モード: テキスト データの入力は挿入モードでのみ実行できます。Esc キーを押すとコマンド モードに戻ります。
3.最終行モード: ファイルを保存するか、エディタを終了します。文字列の検索、行番号のリストなどの編集環境を設定することもできます。
ただし、vi は 2 つのモードに簡略化できます。つまり、Last line モードもコマンド モードに含まれており、vi はコマンド モードと挿入モードに分かれています。
vi の基本操作
? vi と入力します
システム プロンプトで vi とファイル名を入力すると、vi の全画面編集画面に入ることができます:
$ vi testfile
入力後の注意点が 1 つあります。 vi、「コマンド」モードです」の場合、テキストを入力するには挿入モードに切り替える必要があります。初めて vi を使用するユーザーは、最初に上下左右のキーを使用してカーソルを移動したいと思うでしょう。その結果、コンピューターがビープ音を鳴らし続けて死ぬほど怒るので、vi を入力した後はドンしてください。まず移動せずに、[挿入] に切り替えてください。
?ファイルを編集するには挿入モードに切り替えます
コマンド モードで「i」、「a」、または「o」を押して挿入モードに入ります。この時点で、テキストの入力を開始できます。
i: 挿入、入力したテキストを現在のカーソル位置から挿入します。
a: 現在カーソルがある次の文字からテキストの入力を開始するように追加しました。
o: 新しい行を挿入し、行の先頭からテキストを入力します。
? 挿入 → コマンド モードに切り替えて、Esc キーを押します
現在は挿入モードなので、入力を続けることしかできません。タイプミスをしたことに気づき、カーソル キーを使用して単語を元に戻して削除したい場合は、ESC キーを押してコマンド モードに戻り、テキストを削除する必要があります。
?vi を終了してファイルを保存します
コマンド モードでは、コロン「:」を押して最終行モードで入力できます。例:
:w filename (「w filename」と入力すると、記事を指定したファイル名に保存します) filename)
: wq (「wq」と入力します。入力時にファイル名 testfile が指定されているため、testfile を書き込んで vi を終了します)
:q! (「q!」と入力し、編集したファイルを強制終了します)

コマンド モードの関数キー リスト
コマンド モードのコマンドを導入した後、より一般的に使用される vi コマンドを示すために、コマンドの後に「一般的に使用される」という語が付いたファンクション キーが追加されます。これらを学習して覚えておく必要があります。
(1) I、a、o を挿入モードに切り替えます。 【超よく使う】
(2) カーソルの移動
viはキーボードのカーソルキーを直接使って上下左右に移動できますが、通常のviでは英小文字
h、j、k、lが使用されます。カーソルを左、下、左に 1 スペースずつ移動します。
Ctrl+B を押す: 画面を 1 ページ前に戻します。 【よく使う】
Ctrl+Fを押す:画面を1ページ進めます。 【よく使う方法】
Ctrl+U を押す: 画面を半ページ戻します。
Ctrl+D を押す: 画面を半ページ前に移動します。
0 (数字のゼロ) を押す: 記事の先頭に移動します。 【よく使う】
Gを押す:記事の最後へ移動します。 【よく使う】
wを押す:カーソルが次の単語の先頭にジャンプします。 【よく使う】
eを押す:カーソルが次の単語の末尾にジャンプします。
bを押す: カーソルは前の単語の先頭に戻ります。
$を押す: カーソルが置かれている行の末尾に移動します。 [よく使われる]
^ を押す: 行内の空白以外の最初の文字に移動します。
0を押す: 行の先頭に移動します。 [よく使われる]
# を押す: 行の # 番目の位置に移動します (例: 51、121)。 【よく使う】
(3)文字削除
x:押すごとにカーソル位置以降の文字を1文字削除します。 [非常に一般的に使用されます]
#x: たとえば、6x は、カーソル位置の次の 6 文字を削除することを意味します。 【よく使う】
X:大きな文字のX、押すたびにカーソル位置の前の文字を削除します。
#X: たとえば、20X は、カーソル位置の最初の 20 文字を削除することを意味します。
dd: カーソルがある行を削除します。 [非常に一般的に使用されます]
#dd: たとえば、6dd は、カーソルが置かれている行から 6 行下のテキストを削除することを意味します。 【よく使う】
(4) コピー
yw: カーソルから単語の末尾までの文字をバッファにコピーします。
(#x と #X の関数の逆を行いたい)
p: バッファー内の文字をカーソルの位置に貼り付けます (コマンド 'yw' と 'p を一緒に使用する必要があります)。
yy: カーソルがある行をコピーします。 [非常に一般的]
p: 貼り付けたい場所に 1 行コピーします。 (コマンド 'yy' と 'p' は一緒に使用する必要があります)
#yy: 例: 6yy は、カーソルが置かれている行から 6 行下のテキストをコピーすることを意味します。 【よく使う】
p: 貼り付けたい場所に複数行コピーします。 (命令 '#yy' と 'p' は一緒に使用する必要があります)
「ayy: コピーした行をバッファ a に入れます。vi は、よく使用されるデータをバッファに保存できるバッファ関数を提供します
"ap: バッファ a に置かれたデータを貼り付けます。
"b3yy: 3 行のデータをバッファ b に格納します。
"b3p: バッファbにデータを貼り付けます
(5) 置換
r: カーソル位置の文字を置換します: 【よく使う】
R: Esc が押されるまで文字を置換します。
(6) 前の内容を元に戻す(undo)コマンド
u: コマンドを誤って操作した場合、すぐに u を押すと前の操作に戻ることができます。 【よくあること】
.: .
(7) 変更
cw: の場所を変更します。
c#w: たとえば、c3w は 3 つの単語を変更することを意味します。
Ctrl+G: カーソルがある行の行番号をリストします。
#G: たとえば、 15G は、記事の 15 行目の先頭にカーソルを移動することを意味します。 [よく使われる]
最終行モードのコマンドの紹介
読者の皆様、最終行モードを使用する前に、忘れずに Esc キーを押してコマンド モードになっていることを確認し、コロン「:」または「/」または「?」を押してください。 「3 つのキーのいずれかが最終行モードに入ります。
1. 行番号をリストします。
set nu: 「set nu」を入力すると、記事の各行の前に行番号がリストされます。
2. 特定の行にジャンプします。記事の一部 1 行
#: シャープ記号は数字を表します。最後の行モードのプロンプト記号「:」の前に数字を入力し、もう一度 Enter キーを押してその行にジャンプします。 例: 15 [Enter] を押すと、その行にジャンプします。記事の 15 行目 [よく使う] 3. 文字列
/キーワードを検索する: 最初に / を押して、検索したいキーワードを入力します。初めて検索するキーワードが見つからない場合は、 n を押し続けると、さらに検索できます。
キーワード: 最初に検索したいキーワードが見つからない場合は、検索したいキーワードを入力します。 n を押して必要なキーを見つけます
4. 文字列を置換
1, $s/string/replae/g: 最後の行モードで「1, $s/string/replace/g」と入力すると、全文が置換されます。 string with replace string. 、1,$s は検索範囲が記事の先頭から末尾までであることを意味し、g はすべての置換を確認する必要がないことを意味します
%s/string/replace/c:また、全文文字列 string を replace string に置き換えます。上記のコマンドとの違いは、%s と 1,$s が同じ機能を持ち、 c は置き換える前に再度置き換えるかどうかを確認する必要があることを意味します。 1,20s/string/replace/g: 1 ~ 20 行目を置き換えます。スペース内の文字列をリレーション文字列に置き換えます
w: 最後の行モード プロンプト記号「:」の前に w を押して保存します。 [非常に一般的]
#, # w filename: 記事の特定の段落を抽出して別のファイルに保存したい場合は、このコマンドを使用します。 # 30,50 w nice,編集中の記事の 30 ~ 50 行目を素敵なファイルに保存します。
6. q: q を押して vi から離れることができない場合は、「!」を使用できます。 : 「q!」など、vi を強制的に終了します
qw: 終了時にファイルを保存できるように、通常は終了時に w を使用することをお勧めします。 【よく使う】

VIコマンド集:

viを入力するコマンド

vi filename: ファイルを開くか新しいファイルを作成し、最初の行の先頭にカーソルを置きます

vi +n filename: ファイルを開き、最初の行の先頭にカーソルを置きます n 行の先頭に置きます

vi + filename: ファイルを開き、最後の行の先頭にカーソルを置きます

vi +/pattern filename: ファイルを開き、パターンに一致する最初の文字列にカーソルを置きます

vi -r filename: 前回 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 単語右に移動します j 単語の終わり

): カーソルが次の単語に移動します文末

(: カーソルが文頭に移動します

}: カーソルが段落の先頭に移動します

{: カーソルが段落の末尾に移動します

nG: カーソルn 行目の先頭に移動します

n+: カーソルを n 行下に移動します

n-: カーソルを n 行上に移動します

n$: カーソルを n 行目の末尾に移動します

H: カーソルを n 行下に移動しますカーソルを画面の一番上の行に移動します

M: カーソルを画面の中央の行に移動します

L: カーソルを画面の最後の行に移動します

0: (数字のゼロに注意してください) カーソルが次の行に移動します現在の行の先頭

$: カーソルが現在の行の末尾に移動します



画面スクロールコマンド

Ctrl+u: ファイルの先頭まで画面の半分をスクロールします

Ctrl+d: スクロールファイルの最後まで半画面スクロール

Ctrl+f: ファイルの最後まで 1 画面スクロール

Ctrl+b; ファイルの先頭まで 1 画面スクロールします

nz: ファイルの先頭まで n 行目をスクロールします画面上で、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: 1 文字を削除、x はカーソルの後の文字を削除、

?pattern: カーソルの先頭からファイルの先頭までパターンを検索します

n: 最後の検索コマンドを同じ方向に繰り返します

N: 最後の検索コマンドを逆方向に繰り返します

: s/p1/p2/g: 現在の行のすべての p1 を p2 に置き換えます

: n1,n2s/p1/p2/g: すべての p1 を置き換えますn1からn2の行をp2で

: g/p1/s//p2/g: Replace ファイル内のすべてのp1をp2に置き換えます



オプション設定

all: すべてのオプション設定をリストします

term:端末の種類を設定します

ignorance: 検索で大文字と小文字を無視します

list: タブストップ (Ctrl+I) と行末マーク ($) を表示します

number: 行番号を表示します

report: 番号を表示します行指向のコマンドによって変更されます

terse: 短い警告メッセージを表示します

warn: 他の作業に進む前に 現在のファイルが保存されていない場合は、書き込み禁止メッセージが表示されます

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: 現在のファイルを保存し、 exit

:q:vi

を終了:q!:ファイルを保存せずにvi

を終了します:!command:シェルコマンドを実行します command

:n1, n2 w!command:行n1の内容を使用して、 n2 をコマンドの入力としてファイルに追加して実行します。 n1 と n2 が指定されていない場合、ファイルの内容全体がコマンドとして使用されます。

: コマンド command の出力を入力します。現在の行に追加します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート