一般的な Linux ツール vi/vim の完全版

一般的な Linux ツール vi/vim の完全版

なぜvimを学ぶのか

Linuxには多数の設定ファイルがあるため、Linuxには多くのテキスト処理ツールがあります。よく使われるものは次のとおりです。
less vi head tail cat grep sed awk .... 。いくつかの設定ファイルを編集したり、ログを表示したりするときによく使用されるツールは vim と less であり、それらのショートカット キーは非常に似ているため、vim の使い方を学ぶ必要があります。

対象読者

運用、開発、および Linux の知識を深めたい人。 bash を学びたいなら、vim を学ぶ方が便利です。毎回 Windows に行って編集するわけにはいきません。

学習を始める

3つのモードのviとスイッチング

  • 一般モード
  • 編集モード
  • コマンドラインモード
グラフLR
A[通常モード] -- I/O/A/R --> B[編集モード]
A -- コロン/疑問符/スラッシュ --> C [コマンドラインモード]
C -- ESC --> A
B -- ESC --> A

通常モードから編集モードに切り替えるコマンドの違い

  • i 現在のカーソル位置に挿入
  • o 新しい行に挿入
  • a 文字を後に挿入
  • r 入力を置き換えます。これは、1 つの文字のみを置き換えて通常モードに戻るため、1 つの文字を変更する場合に便利です。

共通ボタンと機能

以下の手順では大文字と小文字が区別されます

カーソルの移動方法(通常モード)

  • ↑→↓←上、右、下、左、5行移動↓5行下に移動
  • Ctrl + F でページをめくる、Ctrl + d で半ページめくる
  • Ctrl + B でページを上にめくる、Ctrl + U で半ページめくる
  • 0は行の先頭に移動し、$は行の末尾に移動します。
  • gg は先頭、G は末尾、3G は 3 行目
  • <enter> カーソルが1行下に移動します。3<enter> カーソルが3行下に移動します。

削除、コピー、貼り付け(通常モード)

  • x は後方に 1 文字削除し、X は前方に 1 文字削除し、3x は後方に 3 文字削除します。
  • ddは1行削除し、3ddは3行削除します。
  • d$は現在のカーソル位置から末尾まで削除し、dGは現在の位置から最後の行まで削除します。
  • yyは現在行をコピーし、3yyは3行をコピーします。
  • pはコピーした内容を次の行に貼り付け、Pは前の行に貼り付けます。
  • u 操作を元に戻す
  • 最後の操作を繰り返す

検索と置換(通常モード)

  • /word は下方向に文字を検索し、?word は上方向に文字を検索します。
  • n 前回の検索アクションを繰り返します。n を押すと、次の一致する文字の検索が続行されます。
  • 1,5s/sanri/9420/g 1行目から5行目まで文字列sanriを検索し、9420に置き換えます。
  • 1,$s/sanri/9420/g 最初の行から最後の行まで文字列sanriを検索し、9420に置き換えます。

テキストを選択(通常モード)

  • v 次に矢印キーを使用します。これは、Windowsでマウスを押したままドラッグするのと同じです。
  • V カーソルが通過する行が選択されます
  • Ctrl + V 列モードを選択
  • y 選択したテキストをコピー
  • d 選択したテキストを削除する

総括する

上記のコマンドから、viではいくつかの文字が特別な意味を持っていることがわかります。

$は行末、0は行頭、Gは最終行、yはコピー、dは行削除、xは文字削除を表します。

数字は通常、何かが何回繰り返されるかを示し、大文字と小文字は通常、反対の意味を持ちます。

ページをめくるショートカットキーは英語の略語です

Ctrl + F フロントページ
Ctrl + B 前のページ
Ctrl + D 下ページ
Ctrl + u ページアップ

ファイルを別名で保存する(コマンドモード)

  • :w はファイルを保存します。:w! はファイルの書き込みを強制します (権限が必要です)
  • 終了するには:q、保存せずに終了するには:q!
  • :wq 保存して終了、:wq! 強制保存して終了(許可が必要)
  • :1,5 w [ファイル名] 1行目から5行目までのデータを新しいファイルに書き込む
  • :! コマンドはコマンドを実行します。ファイルを編集しているときに、ファイルを終了せずにいくつかの情報を表示できます。
  • :set nu は行番号を表示し、:set nonu は行番号を表示しません。

練習する

wget 'http://linux.vbird.org/linux_basic/0310vi/man.config'
  1. vi を使用して、ディレクトリ内の man.config ファイルを開きます。
  2. vi で行番号を設定します。
  3. 58 行目の 40 文字右に移動します。二重引用符で囲まれたディレクトリは何ですか?
  4. 最初の行に移動して、下方向に文字列「 bzip2 」を検索します。どの行にありますか?
  5. 次に、50 行から 100 行までの「小文字の man 文字列」を「大文字の MAN 文字列」に変更し、1 つずつ選択して、変更する必要があるかどうかを確認します。コマンドはどのように実行すればよいですか?選択プロセス中に「y」を押し続けると、最後の行のマン文字がいくつ変更されますか?
  6. 変更を加えた後、突然後悔してしまい、すべてを元に戻したいのですが、どのような方法がありますか?

7. 65 行目から 73 行目 (MANPATH_MAP を含む) の内容をコピーし、最後の行の後に貼り付けます。

  • 21 行目から 42 行目の間にある # で始まるコメントは不要です。どうすれば削除できますか?
  • このファイルを man.test.config として保存します。
  • 27 行目に移動して 15 文字を削除します。最初に表示される単語は何ですか。
  • 最初の行に新しい行を追加し、その行に「私は学生です...」と入力します。
  • 保存して出発!

答えは次のとおりです。

 vi マニュアル.config
 :セットnu
 58G 40→ /dir/bin/foo
 gg /bzip2 118 行 50,100 秒 / man / MAN / gc 25 件の変更、23 行が変更されました u、または保存せずに終了: q!
 65G行目を見つけて、9yy行目をコピーし、最後のG行目を見つけてpを貼り付けます。 
 :21,42s/^#//g //正規表現が使用できます:w man.test.config
 27G 15倍あなた
 最初の行 gg, i <enter> を見つけて、コンテンツを入力します: wq

複数ファイルの編集

viの後に複数のファイルを続けることができます。

vi man.config テスト.txt

n 次のファイルを編集する

N 前のファイルを編集する

ファイル 現在編集中のすべてのファイルを表示します

マルチウィンドウ編集

:sp [ファイル名] コマンドを使用すると、同じウィンドウで複数のファイルを開くことができます。

:sp /etc/hosts

各ウィンドウには独自のモードとコマンドがあります

[ctrl]+w+↓ 次のウィンドウに切り替える

[ctrl]+w+↑ 前のウィンドウに切り替える

vimの設定ファイル ~/.vimrc を編集する(簡単な設定)

「1行に1つの設定」はコメントです

すべての設定項目を表示するには、set all コマンドを使用します。よく使用される設定項目は次のとおりです。

set nu

set ts=4次のタブを押したときに 4 つのスペースの位置が設定されます。

set tabstop=4すると、タブは4つのスペースの幅を占めます

set autoindentと自動的にインデントされるので、コードを書くときに便利です。

上記のコマンドは、バックスペースとタブがタブ単位で使用されることを示すために設定されています。タブを表すためにスペースを使用する必要がある場合は、次の設定を追加する必要があります。

set expandtabタブの代わりにスペースをインデントに使用します

set softtabstop=4と、バックスペース時に 4 つの連続したスペースに遭遇した場合、1 つずつ削除するのではなく、一度にすべて削除します。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux Vim の実用的なコマンドの説明
  • Linux の一般的なテキスト処理コマンドと vim テキストエディタ
  • Linuxでviとvimエディタを操作する方法
  • LinuxテキストエディタVimの詳しい説明
  • Linux での vi (vim) の新しい使い方のまとめ

<<:  Angularコンポーネント投影の詳細な説明

>>:  MySQLを定期的にバックアップしてQiniuにアップロードする方法

推薦する

JavaScriptオフセットは、ウィンドウ内でのマウス座標の取得とモジュールのドラッグを実装します。

オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次の...

in() の ID の順序に従った Mysql クエリ結果の順序の詳細な説明

in() の ID の順序に従った Mysql クエリ結果の順序の詳細な説明コード例: <se...

dockerを使用してdubboプロジェクトをデプロイする方法

1. まず、Springbootを使用して簡単なDubboテストプログラムを構築し、関連する依存関係...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...

Vueのprops設定の詳細な説明

<テンプレート> <div class="demo">...

HTML 画像 img にハイパーリンクを追加した後の醜い青い境界線の問題を解決する

HTML画像にハイパーリンクを追加すると醜い青い枠線が表示される次のように:解決: CSS スタイル...

MySQL でよく使用される SQL 文を表示する (詳細な説明)

#mysql -uroot -pパスワードを入力してくださいmysql> show full...

ノードイベントループとメッセージキューの分析

目次非同期とは何ですか?なぜ非同期性が必要なのでしょうか?非同期IOとは何ですか?イベントループとは...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

UI を通じて Docker を管理する方法

Docker はますます多くのシナリオで使用されています。コマンドラインツールに慣れていない人にとっ...

Linux で txt を mysql にインポートする方法

序文昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベ...

Linux (Ubuntu 18.04) に vim エディタをインストールする方法

デスクトップ システムをダウンロードするには、Ubuntu の公式 Web サイト (https:/...

DHTML オブジェクト (さまざまな HTML オブジェクトの共通プロパティ)

!DOCTYPE HTML ドキュメントが準拠するドキュメント型定義 (DTD) を指定します。 ...