[bash] bash入門2 - viの使い方・代表的なコマンド一覧

こんにちは、今回はbash入門2としてviエディタの使い方を説明します。

bashの事始めはこちらの記事へ

このエディタは、Windowsのメモ帳や秀丸エディタ、サクラエディタなどを使ってきた方には到底受け入れられないくらいの特殊なエディタです。 しかし、マウス無しの操作を最適化するためにそうなっているため、一旦慣れると逆にWindowsのエディタが使いづらく感じる程に扱いやすくなります。

[viエディタの起動]
まずは、viエディタの起動方法です。 以下のコマンドでviエディタが起動します。

$ vi [ファイル名]

[チュートリアル]
まず、「HelloWorld!!」と入力してファイルを保存してみます。
意味がわからなくても問題ありません。

以下の手順どおりにキーボード入力します。

①「a」キーを1回押す。
⇒コマンドモードから入力モードに切り替えます。

②「HelloWorld!!」と入力する。
⇒文字列を入力します。

③「Esc」キーを1回押す。
⇒入力モードを解除してコマンドモードに戻ります。

④「:」キーを1回押す。
⇒画面下に「:」と共にカーソルが移動します。

⑤「wq!」と入力してEnterを押します。
⇒ファイルが保存され、viエディタが閉じます。

[説明]
●モード
viエディタにはモードが2種類あります。
1つめが「コマンドモード」。
2つめが「入力モード」です。

コマンドモードは文字列の入力以外の全てのことを行います。
例えば以下のような操作です。
①カーソルの移動
②コピー&ペーストなどの操作
③などなど

●コマンド
チュートリアルで「a」と入力して入力モードに入ったように
viにはたくさんのコマンドがあります。

代表的なものを以下に示します。
数が膨大なので、余り使わないものは意図的に省きます。

[コマンド]
●入力モード切り替え系
[a]
⇒カーソルがある位置の一つ後ろから文字を入力します。(Append)

[i]
⇒カーソルがある位置から文字を入力します。(insert)

●コマンドモードへの切り替え
[Esc]
⇒入力モードからコマンドモードへ切り替えます。
コマンドモード時にEscを押してもコマンドモードのままです。
また、2文字以上からなるコマンドの途中でEscを押すと、コマンドをキャンセルします。

●カーソル移動系
[j]
⇒カーソルを下に移動します。
viのバージョンによっては、↓キーも使えます。

[k]
⇒カーソルを上に移動します。
viのバージョンによっては、↑キーも使えます。

[h]
⇒カーソルを左に移動します。
viのバージョンによっては、←キーも使えます。

[l]
⇒カーソルを右に移動します。
viのバージョンによっては、→キーも使えます。

[Ctrl + f]
⇒半画面分カーソルを下に移動します。

[Ctrl + b]
⇒半画面分カーソルを上に移動します。

[Ctrl + $]
⇒カーソルを行末に移動します。
viのバージョンによっては、Endキーも使えます。
[0]
⇒カーソルを行頭に移動します。
viのバージョンによっては、Homeキーも使えます。

[Shift + g]
⇒カーソルをファイルの末尾に移動します。

[gg]
⇒カーソルをファイルの先頭に移動します。

[:数字]
⇒カーソルを数字行に移動します。

●ファイル操作系
[:w]
⇒ファイルを上書き保存します。

[:wq]
⇒ファイルを上書き保存してviエディタを終了します。

●コピー&ペースト系
[yy]
⇒1行コピーします。

[dd]
⇒1行切り取りします。

[p]
⇒現在行の1つ下の行にコピーor切り取りした行を挿入します。

[数字yy]
⇒現在行から数字行分コピーします。

[数字dd」
⇒現在行から数字行分切り取りします。

●検索・置換系
[/文字列]
⇒文字列を検索します。

[n]
⇒文字列検索後に使用。次の検索文字にカーソルを移動します。

[:%s/検索文字列/置換文字列/]
⇒最初に見つかった「検索文字列」を「置換文字列」に置換します。

[:%s/検索文字列/置換文字列/g]
⇒ファイル中の「検索文字列」を「置換文字列」に全て置換します。

このくらいあれば、大抵の操作はできると思います。
大文字のI等の複合コマンドもありますが、組み合わせでできてしまうので、
自分は覚えてないです。

スポンサードリンク

関連記事

no image

awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかをつかってファイルを集計したいと

記事を読む

no image

bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合はシングルプロセスの動作をするプ

記事を読む

no image

[bash] 文字列長を調べる

bashで変数に入っている文字列長を調べるときは以下のようにする。 ${#変数名} ●実

記事を読む

no image

[bash] bash入門1

こんにちは、今回はbash入門ということで、全く知らない状態からbashを触ってみます。 一応

記事を読む

no image

[bash] if文の書き方

if文の書き方をメモります。 ●構文 ※カッコ([])と条件式の間のスペースが無いとエラーに

記事を読む

no image

[bash] ファイルの中身を1行ずつ処理するループ処理(while文)

ファイルの中身を1行ずつ処理したい場合の処理です。 ファイル名を引数にとります。 #

記事を読む

no image

[bash] expr - bashで数値計算を行う方法

bashで数値計算を行う方法です。 exprコマンド自体をで囲んで、変数に代入してあげます。

記事を読む

no image

[bash] 文字列の分割(split処理)

bashで文字列をsplitする方法を紹介します。 例えば、以下の文字列をカンマ区切りでspl

記事を読む

no image

[bash] cronでログインシェル(.bash_profile)の環境変数などを読み込ませる

こんにちは、今回もメモ。 cronでシェルを実行する際、普通にコマンドを書くと、ログインシェル

記事を読む

no image

[cron] dateコマンドをcronに書くときの注意点

dateコマンドの引数をcronにそのまま書くと怒られることへのメモ。 そのまま、

記事を読む

スポンサードリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2024年4月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • 2024年4月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
PAGE TOP ↑