ホームページ  >  記事  >  運用・保守  >  Linuxコマンドにおけるviのまとめと共有(集)

Linuxコマンドにおけるviのまとめと共有(集)

黄舟
黄舟オリジナル
2017-07-24 15:02:512041ブラウズ

この記事は主に Linux のファイル編集コマンドの詳細な整理(概要)を紹介するもので、編集者が非常に優れていると思ったので、参考として共有します。エディターをフォローして見てみましょう

私は数日前に Alibaba Cloud サーバーの無料トライアルを申し込みました。jdk 環境変数を設定するときに、ファイル。ファイルを編集するための

vi コマンドについて、Baidu で検索しましたが、回答の多くがあまり包括的ではなかったため、ファイルの編集に時間がかかりました。

ここのブロガーがそれをまとめてみんなに共有しました。

1. vi エディターには 3 つの基本的な作業モードがあります

まず第一に、vi エディターには 3 つの基本的な作業モード、つまりコマンド モード、テキスト入力モード、最後の行モードがあることを知っておく必要があります。

最初: コマンドラインモード: このモードは、vi エディタに入った後のデフォルトのモードです。ユーザーがどのモードにいるかに関係なく、いつでも ESC キーを押すとコマンド モードに入ることができます。このモードでは、ユーザーは vi コマンドを入力でき、ユーザーは自分のドキュメントを管理できます。このときキーボードから入力された文字は編集コマンドとして解釈されます。入力された文字が有効な vi コマンドである場合、vi はユーザー コマンドを受け入れた後、対応するアクションを完了します。ただし、入力したコマンドは画面上にエコー表示されないことに注意してください。入力された文字が vi コマンドではない場合、vi はアラームを鳴らします。

2 番目: テキスト入力モード: コマンド モードで、コマンド i を入力し、コマンド a を追加し、コマンド o を開き、コマンド c を変更し、コマンド r を置換するか、コマンド s を置換して、テキスト入力モードに入ります。このモードでは、ユーザーが入力した文字はすべて vi によってファイル コンテンツとして保護され、画面に表示されます。テキスト入力中にコマンドモードに戻りたい場合は、ESC キーを押すだけです。

3 番目: 最終行モード: 最終行モードは ex エスケープ モードとも呼ばれます。コマンドモードでは、ユーザーは「:」キーを押して最終行モードに入ります。このとき、vi は表示ウィンドウの最終行 (通常は画面の最終行) に指定子として「:」を表示します。ユーザーがコマンドを入力するまで待ちます。ほとんどのファイル管理コマンドはこのモードで実行されます (編集バッファーの内容をファイルに書き込むなど)。最後のコマンドが実行されると、vi は自動的にコマンド モードに戻ります。コマンド モードから編集モードに切り替える場合は、「a」または「i」を入力します。テキスト モードから戻る必要がある場合は、ESC キーを押してください。コマンドモードで「:」を入力して最終行モードに切り替えてからコマンドを入力します。

要約すると、一般的にコマンドを使用してファイルを開くときは、コマンドモードに入ります。コマンドモードでは文字入力モードと最終行モードに切り替えることができますが、文字入力モードと最終行モードを直接切り替えることはできないため、文字入力モードから最終行モードに切り替えるにはコマンドに戻る必要があります。最初にモードを再度切り替え、その逆も同様です。

さらに、キーボードで入力してテキスト入力モードでテキストを編集したり、コマンド モードで vi コマンドを使用して編集効果を実現したりできます。

デモの例

まず、コマンド vi filename を使用してファイルを開きます。このとき、コマンドモードに入ります

次に、i を押して、キーボードで内容を入力して書き込みます。

次に、ESC を押してコマンドモードに戻ります。

コマンド モードで、次を押して最終行モードに入ります。

「wq!」と入力し、Enter キーを押して強制的に保存して終了します。

次回、対応するファイルを開くと (less filename コマンドで開くことができます)、内容が変更されていることがわかります。

追加:

(1) 最終行モードの場合: q! [保存せずに強制終了] q [保存せずに終了] wq [終了して保存した後に追加することもできます! ]

(2) 保存して直接終了したくない場合は、コマンドモードで「ctrl+z」ショートカットキーを使用するか、「shift」キーを押しながらzを2つ入力して終了できます。

その他のコマンド

viを入力するコマンド

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

画面スクロールコマンド

Ctrl +u: ファイルの先頭まで半画面スクロールします
Ctrl+d: ファイルの末尾まで半画面スクロールします
Ctrl+f: ファイルの末尾まで 1 画面スクロールします
Ctrl+b;ファイルの先頭まで
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 または u: 削除入力モードで入力されたテキスト

検索と置換コマンド

/pattern: カーソルの先頭からファイルの末尾までのパターンを検索

?pattern: カーソルの先頭からファイルの末尾までのパターンを検索ファイルの先頭
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: 特殊なコマンドの使用を許可します検索モードで先頭に「」が付いていない単語

最終行モードコマンド

: 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: シェルコマンド command を実行します
:n1,n2 w!command: ファイルの n1 行目から n2 行目の内容を次のように使用しますn1、n2 が指定されていない場合、ファイルの内容全体がコマンドの入力として使用されることを示します
: r!command: コマンド command の出力結果を現在の行に入れます


登録操作

"?nyy: 現在の行とその下 n 行の内容を保存して登録しますか? ? は文字、n は数字です "?nyw: 現在の行と次の n 単語をレジスタに保存します?、ここで ? は文字、n は数字です
"?nyl: 現在の行を保存し、次の n ワードをレジスタに保存し、次の n 文字をレジスタに保存しますか? , ここで、? は文字、n は数字です

"?p: レジスタ? の内容を取り出し、カーソルの位置に置きます。 ここで? は文字または数字です

ndd: 現在の行を移動します a を削除します以下の合計 n 行のテキストを削除し、削除した内容を削除レジスタ No. 1 に入れます。

以上がLinuxコマンドにおけるviのまとめと共有(集)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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