CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさんこんにちは。株式会社パイプラインの濱田です。前回はLinuxのテキストエディタ viの起動と終了、モードの概念とテキストファイル作成について取り上げました。今回は、前回作成したテキストファイルの編集について、最低限覚えておきたいテクニックを取り上げます。
viのコピー・ペーストはGUIのコピー・ペーストと違い、PCのクリップボードではなくviのコマンドで行単位のコピー・ペーストを行います。GUI環境にインストールされたvimでクリップボードを利用できたり、他のPCからSSH越しにviを起動している場合、接続元PCのクリップボードを利用してコピー・ペーストを行ったりすることもできますが、vi環境でのコピー・ペーストができるよう、覚えておきたいものです。それでは、前回作成したファイルを開いてみましょう。
vi ${HOME}/test-ctct.txt
前回説明したように、viの起動直後はコマンドモードです。
この状態(コマンドモードである状態)で、1行目をコピーするために、「yy」(小文字でyキーを2回押下する)とタイプし、次に小文字で「p」とタイプします。いずれもEnterキー押下は不要です。すると、以下のように1行目と同じ内容の行が2行目にペーストされました。
viにおけるコピーはヤンク(Yank)、ペーストはそのままペースト(Paste)またはプット(Put)と呼びますので、覚えておいてください。
このまま作業を続けてもよいのですが、現在カーソルがある行が何行目か視認できないと不便ですので、行数を表示することにします。この状態で「:set nu」と入力してEnterキーを押下すると、行頭に行数が表示されるようになります。これはviの表示上で行数が表示されるだけですので、実際のテキストファイルに行数が書き込まれるわけではありません。反対に行数表示をやめるには「:set nonu」と入力してEnterキーを押下します。今回は行数を表示したまま作業をすすめます。
現在、カーソルが2行目にありますので、大文字で「O」と入力してEnterキーを押下して現在の1行目と2行目の間に文字列「ABC」を入力します。
Enterキー押下後、viは入力モード(画面左下に「-- INSERT --」と表示される)になりますので、「ABC」を入力後にESCキーを押下し、コマンドモードに戻ります。
入力モードからコマンドモードへ戻ると、カーソルは2行目(「ABC」の行)の末尾にありますので、今度はこの2行目を最終行にペーストします。コピー(ヤンク)を行うので、小文字で「yy」とタイプします。
次に、カーソルを最終行にもっていきます。カーソル移動のコマンドは以下の表を参照してください。
左移動 | 下移動 | 上移動 | 右移動 |
Hキー | Jキー | Kキー | Lキー |
複数行、複数文字の移動が大変な場合、以下のキーを使ってカーソル移動で楽をすることができます。
先頭行へ移動 | 最終行へ移動 | 行頭へ移動 | 行末へ移動 | 3行目へ移動 |
「gg(小文字でgを2回)」 | 「G(大文字でgを1回)」 | 「^」 | 「$」 | 「:3」押下後Enter |
カーソルを現在の最終行(3行目)までもっていった後、後ろの行(4行目)に「ABC」を追記するので、ここで小文字の「p」とタイプします。すると、小文字abcの行と大文字ABCの行が都合2回繰り返し表示されているはずです。
現在、4行目がABCと表示されていますが、5行目にも同様にABCと表示させたい場合、まだviのクリップボードにABCが残っていますので、再度小文字「p」をタイプすることで、同じ内容をペーストすることができます。
続いて6行目から10行目までABCの行を連続してペーストしてみましょう。小文字「p」キーを繰り返しタイプしてもよいのですが、もしこれを100行、1000行とペーストすることがあると大変です。追加で5行ペーストするので、ここで「5p」とタイプすることで、5行目から10行目までがABCと連続する行になりました。
ここでファイルを保存して終了するので「ZZ」(大文字でzを2回)をタイプします。するとviが終了し、シェルに戻ります。
次回は複数行コピーとペースト、行単位の削除、直前のコマンド実行取り消し(アンドゥ)を取り上げたいと思います。
CTC教育サービスではLinuxをはじめ多数の研修コースが用意されています。ご自身の興味や業務の必要性にあったコースを受講してみてはいかがでしょうか。
https://www.school.ctc-g.co.jp/category/
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes