Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5657

Linux基礎6 -Vim-

$
0
0

Linuxシステム内には、アプリケーションやLinux自体の設定ファイルなど、たくさんの設定ファイルが含まれています。これらのテキストファイルを扱うために、テキストエディタには十分に慣れておく必要があります。
今回は、Vimというテキストエディタの使い方についてまとめます。

テキストファイルとバイナリファイル

ファイルはその内容によって、テキストファイルとバイナリファイルの2種類に分けることができます。

ファイル概要
テキストファイル文字列が書かれたファイルのこと。
例:プログラムのソースコード、HTMLファイル
バイナリファイル文字列で書かれておらず、人が読むことを考慮していないもの。
例:画像ファイルや音声ファイル、Linuxコマンドの実態ファイル

バイナリファイルの例
スクリーンショット 2020-05-23 10.22.13.png

Linuxでは設定ファイルやアプリケーションのデータファイルなどの多くにはテキストファイルが使用されています。これはテキストファイルにはバイナリファイルにはない以下のような利点があるためです。

  • 専用のアプリケーションを使用せずとも、内容が容易に理解できる
  • 互換性が高く、1つのファイル形式を別のアプリケーションから利用しやすい
  • Linuxにはテキストファイルを扱うためのコマンドが多く用意されており、それらの恩恵を受けられる

Vim

Linux向けのエディタには数多くの種類がありますが、ここではほとんどのLinuxディストリビューションに標準でインストールされているVimについてまとめます。

Vimのインストール

Vimのインストール
$vim --version#vimがインストールされているかの確認、バージョン情報が表示されればインストール済みインストールされていない場合は下記の手順
CentOS
$su                            #rootユーザへ変更$yum install vim               #CentOSでのインストールコマンド
Ubuntu
$sudo apt-get install vim      #Ubuntuでのインストールコマンド

Vimの起動と終了

vimの起動と終了
Vimの起動コマンド
$vim         #$ viでも良い
Vimの終了コマンド
:q <Enter>

Vimの起動画面
スクリーンショット 2020-05-23 10.43.05.png

Vimでファイルを開く・保存する

ファイルを開く・保存する
ファイルを開く
$vim newfile1.txt      #ファイル名を指定してvimを起動。存在しないファイルを指定すると新規作成。ファイルの保存
:w <Enter>#既存のファイルの場合は上書き保存、新規の場合は新規作成される。:w <ファイル名><Enter>    #:wの後にスペースを開けてファイル名を指定すると指定したファイル名で保存

ファイルを開いて編集した後に:qコマンドで終了しようとすると、ファイルが保存されていませんとエラーメッセージがでます。
スクリーンショット 2020-05-23 11.02.08.png
この場合は:wでファイルを保存してから終了するか、現在の編集内容を破棄したい場合は:q!で終了できます。

vimの起動・終了に関するコマンドまとめ

コマンド内容
:qVimを終了する
:wファイルを上書き保存する
:w <ファイル名>ファイルを名前をつけて保存する
:q!ファイルを保存せずにVimを終了する

Vimの編集操作

Vimを使ったテキストファイルの編集方法について解説していきます。

Vimのモード

Vimにはインサートモードとノーマルモードの2種類があります。

モード概要
インサートモードテキスト入力ができる状態のこと
ノーマルモードコマンド入力ができる状態のこと

vimを起動した直後はノーマルモードです。iを押すとインサートモードに入ります。escを押すとノーマルモードに戻ります。

カーソルの移動

通常のカーソル移動

ノーマルモードでVimでカーソルを移動するにはh, k, j, lを使用します。もちろんカーソルキーでも移動できますが、カーソルキーを使うよりも手の移動が少ないため、コマンドを使用したカーソルの移動の方が疲れなくていいかもしれませんね。
インサートモードの場合は大人しくカーソルキーを使用しましょう。Ctrl+bなどの入力も^Bという文字列で解釈されます。

単語単位のカーソル移動

単語単位でカーソルを移動することもできます(w or bコマンド)。ただしVimでは「,」(カンマ)や「(」(カッコ)も文字列の区切りとして認識されます。これを無視したい場合はスペース区切りで単語を移動するコマンド(shift+w or b)を使います。

行単位のカーソル移動

大きなテキストファイルを扱う際には行番号を指定して移動すると便利です。「<行番号>shift+g」と入力するとファイルの<行番号>行目に移動します。
また、ファイルの最初と最後へ移動する機会は多いため、行番号を指定せずに移動できるコマンドが用意されています。ファイルの最初の行へはgg最後の行へはGです。

コマンド内容
h左に移動する
j下に移動する
k上に移動する
l右に移動する
w前方に単語1つ分移動する
b後方に単語1つ分移動する
shift+wスペース区切りで前方に単語1つ分移動する
shift+bスペース区切りで後方に単語1つ分移動する
<行番号>shift+g<行番号>行目に移動
gg最初の行へ移動
shift+g最後の行へ移動

文字列の削除

ノーマルモードでカーソル一の文字列を削除する場合はxを押すことで削除が可能です。

コマンド内容
xカーソル位置の文字を削除する

カット、コピー、ペースト

Vimでも、他のテキストエディタと同様にカット、コピー、ペーストが可能です。ただしこれらの呼び方がVimでは異なります。

一般的なエディタでの名称Vimでの名称
カットデリート(delete)
コピーヤンク(yank)
ペーストプット(put)

デリート

デリートを行うためには前出のxコマンドかdコマンドを使用します。ただしdコマンドはxコマンドとは使い方が異なります。dコマンドはdという文字の後ろにカーソル移動コマンドを合わせて指定する必要があります。

コマンド内容
d$行末までをデリート
d0行頭までをデリート
x, dl1文字をデリート
dw単語1文字をデリート
dgg最初の行までをデリート
dG最後の行までをデリート
dd現在カーソルのある1行だけデリート

ここで紹介したデリートコマンド以外にも、カーソル移動コマンドを組み合わせることで、dコマンドを使用することができます。

プット

dコマンドでデリートした文字列はプット(貼り付け)が可能です。貼り付けはpコマンドで実行できます。

コマンド内容
pデリート(dコマンド)した内容をプット(貼り付け)

ヤンク

デリートではなく単にコピー(ヤンク)したい場合は、dの代わりにyコマンドを使用します。yもdと同様にyの後ろにカーソル移動コマンドを指定して使用します。
なお、現在カーソルのある1行だけをヤンクしたい場合は、yyというコマンドが使えます。

コマンド内容
yy現在カーソルのある1行をヤンク

その他の操作

下の行と連結する

行末の改行を削除して2行を1行としてまとめる場合にjコマンドが使用できます。

コマンド内容
j現在の行とそのすぐ下の行を連結されて1つの行にする

アンドゥ(元に戻す)とリドゥ(やり直し)

Vimではデリートなどの直後に、編集操作をやり直すことができます。直前の編集操作を取り消して前の状態に戻るには、uコマンドを使用します。この機能をアンドゥ(undo)といいます。
間違ってアンドゥしてしまった場合は、Ctrl+rを押すとアンドゥを取り消すことができます。これをリドゥと呼びます。

コマンド内容
u編集操作をやり直す(アンドゥ)
Ctrl+rアンドゥを取り消す(リドゥ)

検索と置換

検索

Vimではファイル内の文字列検索ができます。
文字列の検索はLinuxでlessコマンドを実行したときと同様の操作で行うことができます。

コマンド内容
/<文字列>下方向に向かって<文字列>を検索する
?<文字列>上方向に向かって<文字列>を検索する
n次の検索結果に移動する
shift+n前の検索結果に移動する

置換

テキストファイルの中である文字列を別の文字列に置き換えたい場合には、次のコマンドを利用します。
これまでと同様に:を押すと再家業にコマンド入力欄が表示されますので、そこに入力します。

vimによる置換
:%s/<置換元文字列>/<置換後文字列>/g

ヘルプとドキュメント

これまで紹介してきた意外にもたくさんの機能がVimにはあります。ここでは必要に応じてvimの機能を調べられるようにドキュメントを紹介します。

vimのドキュメント
$vimtutor         #vimのチュートリアルを開始するコマンド:help          #Vimを実行中にヘルプを起動 :qで終了
:help d
:help :w           #:helpの後ろに特定のコマンド名や単語を指定すると関連するヘルプを表示することができる
Ctrl+]             #helpのリンクへ
Ctrl+t             #リンク先から元の場所へ戻る

Vimのチュートリアル画面
スクリーンショット 2020-05-23 13.24.04.png

ここまでのVimコマンドのまとめ

コマンド内容
:qVimを終了する
:wファイルを上書き保存する
:w <ファイル名>ファイルを名前をつけて保存する
:q!ファイルを保存せずにVimを終了する
h左に移動する
j下に移動する
k上に移動する
l右に移動する
w前方に単語1つ分移動する
b後方に単語1つ分移動する
shift+wスペース区切りで前方に単語1つ分移動する
shift+bスペース区切りで後方に単語1つ分移動する
<行番号>shift+g<行番号>行目に移動
gg最初の行へ移動
shift+g最後の行へ移動
d$行末までをデリート
d0行頭までをデリート
x, dl1文字をデリート
dw単語1文字をデリート
dgg最初の行までをデリート
dG最後の行までをデリート
dd現在カーソルのある1行だけデリート
pデリート(dコマンド)した内容をプット(貼り付け)
yy現在カーソルのある1行をヤンク
j現在の行とそのすぐ下の行を連結されて1つの行にする
u編集操作をやり直す(アンドゥ)
Ctrl+rアンドゥを取り消す(リドゥ)
/<文字列>下方向に向かって<文字列>を検索する
?<文字列>上方向に向かって<文字列>を検索する
n次の検索結果に移動する
shift+n前の検索結果に移動する
vimの起動
$vim         #$ viでも良い
ファイルを開く
$vim newfile1.txt      #ファイル名を指定してvimを起動。存在しないファイルを指定すると新規作成。
vimによる置換
:%s/<置換元文字列>/<置換後文字列>/g
vimのドキュメント
$vimtutor         #vimのチュートリアルを開始するコマンド:help          #Vimを実行中にヘルプを起動 :qで終了
:help d
:help :w           #:helpの後ろに特定のコマンド名や単語を指定すると関連するヘルプを表示することができる
Ctrl+]             #helpのリンクへ
Ctrl+t             #リンク先から元の場所へ戻る

参考資料

新しいLinuxの教科書


Viewing all articles
Browse latest Browse all 5657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>