vimについて
ファイル→テキストファイルとバイナリファイルに分類される
テキストファイルを編集するためのアプリ→エディタ
Linuxでのエディタ→vim
vimが使えると
テキスト編集の効率が上がり、 Linux内での作業効率の上昇
vimのモード
モードの種類
vimには複数のモードが存在し、それらを使い分けることで編集を行う
よく使われるモード
ノーマルモード:vimのコマンドの実行を行う
インサートモード:文字の入力を行う
ビジュアルモード:範囲を選択して、その範囲に対してなにか操作を行う
モードの変更方法
i,a,Kなど ノーマル→インサートに移る
ctrl+v ビジュアルモードに移る
インサートモードの場合--insert--という表示が出る
ノーマルモード移る方法→esc
vimのコマンド
終了と保存
:q 終了
:w 上書き保存
:w<ファイル名> 名前をつけて保存
:q! 強制終了
カーソルの移動
h 左
j 下
k 上
l 右
この4つは横並びになっている
→少ない動作で移動できるようにしたいから
文字の追加・削除
x カーソル位置の文字の削除
i カーソル位置に文字を追加
a カーソル右に文字を追加
i,aにより文字を追加する際→インサートモードになる(文字を編集するモード)
escにより通常モードに戻る
単語単位での移動
w 前から後ろへ単語一つ分移動
b 後ろから前へ単語一つ分移動
W スペース区切りでwの移動を行う
B スペース区切りでbの移動を行う
行の頭、末端への移動
0 行の頭へ移動
$ 行の末へ移動
指定の行への移動
gg 最初の行に移動(1行目)
G 最後の行に移動
数字(n)+G n行目に移動
デリート、ヤンク、プット(削除、コピー、ペースト)
他の用語ではコピー、ペーストの作業はそのままそう呼ばれるが、
Linuxではコピーはヤンク(yank)、ペーストはプット(put)と呼ばれる
d 削除
y コピー
p ペースト(putの頭文字をとったもの)
デリートの種類
dと他のコマンドを組み合わせることで様々な削除を行うことができる。
d$ 行末
d0 行頭
x,dl 一文字削除
dw 単語一つ削除
dgg カーソル位置から最初の行まで削除
dG カーソル位置から最後の行まで削除
また、dの部分をyに置き換えることで同じような操作を行うことができる。
プット
デリート(削除)したもの、ヤンク(コピー)したものはプットすることでペーストすることができる
p プット(コピーしたものを貼り付ける)
元に戻す
u 入力した後の編集を取り消して元に戻す
u→アンドゥ(undo)という機能の略
Ctrl+r アンドゥ(undo)の取り消し
行間を埋める
J 行間を埋める
hogehogehoge
fugafugafuga
ここにJを記入すると
hogehogehogefugafugafuga
となる
検索
ファイル内の文字列を検索したいときに使用される
/+文字列 文字列の検索(カーソル位置から下に向かって)
?+文字列 文字列の検索(カーソル位置から下に向かって)
置換
ある文字列を別の文字列に置き換えたいときは
%s/<置換したい部分の文字列>/<新しく置換したい文字列>/g
とする
hoge hoge hoge
これに対してこのようなコマンドを打つと
$%s/hoge/fuga/g
このようなコマンドを打つと
fuga fuga guga
このような結果となる
行の数字を確認する
:set number→行の数字を確認できる
hogehoge
fugafuga
ここに:set numberを入力すると
1 hogehoge
2 fugafuga
と現在の行数を確認することができる
矩形処理
縦列のものを編集する場合は矩形(くけい)処理を行う
<矩形処理による編集の仕方>
①ノーマルモード(ESCキー)にて、文字を挿入したい位置へカーソルを移動する。
②矩形選択をするため、ctrl+vキーを押下する。(このとき--VISUAL BLOCK--と表示される)、
③↑または↓で範囲を指定する。
④Shift+iキーでインサートモードになる(このとき--INSERT--と表示される)
⑤挿入したい文字を入力した後、ESCキーで通常モードに戻る
<編集前>
12345
12345
12345
①〜⑤のような矩形処理を使用して1行目にABCを挿入すると
<編集後>
ABC12345
ABC12345
ABC12345
となる
パスのオファー(パスのレコメンデーション)の操作について
パスの後のディレクトリやファイルの入力を省略したい際に
パス後の候補を出すやり方です。
例えば
insert(i)モードして、~/を打った後にcontrol+x+fを押します。
実際にやってみるとこのようにパスの後の候補が出てきました。
