IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

はじめてのLinux

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第10回 Linuxのテキストエディタに慣れよう vi編 (2) テキストファイルの編集をしてみよう (濱田康貴) 2022年10月

みなさんこんにちは。株式会社パイプラインの濱田です。前回はLinuxのテキストエディタ viの起動と終了、モードの概念とテキストファイル作成について取り上げました。今回は、前回作成したテキストファイルの編集について、最低限覚えておきたいテクニックを取り上げます。

行単位のコピー・ペーストを行う

viのコピー・ペーストはGUIのコピー・ペーストと違い、PCのクリップボードではなくviのコマンドで行単位のコピー・ペーストを行います。GUI環境にインストールされたvimでクリップボードを利用できたり、他のPCからSSH越しにviを起動している場合、接続元PCのクリップボードを利用してコピー・ペーストを行ったりすることもできますが、vi環境でのコピー・ペーストができるよう、覚えておきたいものです。それでは、前回作成したファイルを開いてみましょう。

vi ${HOME}/test-ctct.txt

前回説明したように、viの起動直後はコマンドモードです。

fig01

この状態(コマンドモードである状態)で、1行目をコピーするために、「yy」(小文字でyキーを2回押下する)とタイプし、次に小文字で「p」とタイプします。いずれもEnterキー押下は不要です。すると、以下のように1行目と同じ内容の行が2行目にペーストされました。

fig02

viにおけるコピーはヤンク(Yank)、ペーストはそのままペースト(Paste)またはプット(Put)と呼びますので、覚えておいてください。
このまま作業を続けてもよいのですが、現在カーソルがある行が何行目か視認できないと不便ですので、行数を表示することにします。この状態で「:set nu」と入力してEnterキーを押下すると、行頭に行数が表示されるようになります。これはviの表示上で行数が表示されるだけですので、実際のテキストファイルに行数が書き込まれるわけではありません。反対に行数表示をやめるには「:set nonu」と入力してEnterキーを押下します。今回は行数を表示したまま作業をすすめます。

fig03

現在、カーソルが2行目にありますので、大文字で「O」と入力してEnterキーを押下して現在の1行目と2行目の間に文字列「ABC」を入力します。

Enterキー押下後、viは入力モード(画面左下に「-- INSERT --」と表示される)になりますので、「ABC」を入力後にESCキーを押下し、コマンドモードに戻ります。

fig04

入力モードからコマンドモードへ戻ると、カーソルは2行目(「ABC」の行)の末尾にありますので、今度はこの2行目を最終行にペーストします。コピー(ヤンク)を行うので、小文字で「yy」とタイプします。
次に、カーソルを最終行にもっていきます。カーソル移動のコマンドは以下の表を参照してください。

左移動 下移動 上移動 右移動
Hキー Jキー Kキー Lキー

複数行、複数文字の移動が大変な場合、以下のキーを使ってカーソル移動で楽をすることができます。

先頭行へ移動 最終行へ移動 行頭へ移動 行末へ移動 3行目へ移動
「gg(小文字でgを2回)」 「G(大文字でgを1回)」 「^」 「$」 「:3」押下後Enter

カーソルを現在の最終行(3行目)までもっていった後、後ろの行(4行目)に「ABC」を追記するので、ここで小文字の「p」とタイプします。すると、小文字abcの行と大文字ABCの行が都合2回繰り返し表示されているはずです。

fig05

現在、4行目がABCと表示されていますが、5行目にも同様にABCと表示させたい場合、まだviのクリップボードにABCが残っていますので、再度小文字「p」をタイプすることで、同じ内容をペーストすることができます。

fig06

続いて6行目から10行目までABCの行を連続してペーストしてみましょう。小文字「p」キーを繰り返しタイプしてもよいのですが、もしこれを100行、1000行とペーストすることがあると大変です。追加で5行ペーストするので、ここで「5p」とタイプすることで、5行目から10行目までがABCと連続する行になりました。

fig07

ここでファイルを保存して終了するので「ZZ」(大文字でzを2回)をタイプします。するとviが終了し、シェルに戻ります。

fig08

次回は複数行コピーとペースト、行単位の削除、直前のコマンド実行取り消し(アンドゥ)を取り上げたいと思います。
CTC教育サービスではLinuxをはじめ多数の研修コースが用意されています。ご自身の興味や業務の必要性にあったコースを受講してみてはいかがでしょうか。
https://www.school.ctc-g.co.jp/category/

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes