#author("2020-11-14T21:09:14+09:00","default:k1rou","k1rou") *Vim [#n2c4b70d] #author("2021-11-15T04:13:03+00:00","default:k1rou","k1rou") *Vim とは [#y92b1238] -Vi Improved **Vim とは [#y92b1238] -Linuxで利用できる[[テキストエディタ]] -viエディタを機能拡張したもの -コマンドモードと入力モードを切り替えながら使う *viの操作 [#fe4a55dc] **viの起動 [#w5351f73] -vi <file-name> ※ファイル名を指定して起動 --vi -R <file-name> ※読み取りモードで起動(編集不可) -vi ※空の新規ファイルを開いて起動 **ファイルの操作(Exコマンド) [#q804cb81] -保存 :w :w <file-name> -終了 :q ※変更がある場合は保存するか確認する --保存しないで終了 :q! --保存して終了 :wq :x -ファイルを開く :e <file-name> -最後に保存した状態に復帰する :e! -指定したファイルの内容をカレント行の下に読み込む :r <file-name> -シェルコマンドを実行 --viを終了しないでシェルコマンドを実行 :!<command> --シェルコマンドを実行して実行結果をカレント行の下に挿入する :r!<command> **ファイルの操作 [#qfb01985] -保存して終了 ZZ ※:wqと同じ **カーソルの操作 [#g38435a1] -上下左右 ※カーソルキー(↑↓←→)も同じ j ※上に移動 k ※下に移動 h ※左に移動 l ※右に移動 --数字に続けて入力すると指定した回数分繰り返す 2h ※2文字左に移動 -単語 b ※前の単語の先頭 e ※単語の末尾 w ※次の単語の先頭 -カーソル行 0 ※先頭 ^ ※先頭(先頭が空白の場合は、先頭の文字) $ ※末尾 -カーソル行の前行/次行 - ※前の行の先頭 [Enter] ※次の行の先頭 -画面の最上行/下行 H ※最上行 M ※中央行 L ※最下行 -ファイルの先頭/末尾 --先頭 gg :0 --末尾 G :$ -指定した行 数字 ※カーソル行から指定した数 :数字 ※行番号 数字G ※ファイルの先頭行番号 -括弧の開始/終了 % ※カーソル位置の括弧に対応する括弧の開始/終了 **画面の操作 [#p20f30ef] -1画面 Ctrl+b ※上 Ctrl+f ※下 -半画面 Ctrl+u ※上 Ctrl+d ※下 **文字の編集 [#g0c58065] ***編集の操作 [#r2562a3d] -元に戻す u -やり直し Ctrl+r -直前の操作の繰り返し . ***文字の挿入(入力モード) [#xf6e6836] -カーソル位置で入力モード i ※カーソル位置の左 a ※カーソル位置の右 -行の先頭/末尾で入力モード I ※カーソル行の先頭 A ※カーソル行の末尾 -行を追加して入力モード o ※カーソル行の下に行を追加 O ※カーソル行の上に行を追加 ***文字の上書き [#o4171c32] -1文字のみ r[char] ※カーソル位置の1文字を、入力した1文字に -入力した文字列に ※Escで文字列の入力を終了 R[string] ※カーソル位置の文字から右に、入力した文字列と同じ文字数を入力した文字列に s[string] ※カーソル位置の1文字を、入力した文字列に S[string] ※カーソル行全体を入力した文字列 ***文字の削除 [#v7c30d6c] -1文字を削除 x ※カーソル位置の1文字 X ※カーソル位置の左の1文字 dl ※「x」と同じ --数字に続けて入力すると指定した回数分繰り返す 3x ※カーソル位置の文字を含む右の3文字 -単語を削除 dw ※カーソル位置の単語を削除 -行を削除 dd ※カーソル行全体を削除(改行含む) --数字に続けて入力すると指定した回数分繰り返す 3dd ※カーソル行を含む下の3行 -カーソル位置から同じカーソル行の指定した場所までを削除 --行頭/行末まで d^ ※行頭までを削除 d$ ※行末までを削除 --左右の最も近いキー入力した文字までを削除 df[char] ※順方向(右) dF[char] ※逆方向(左) **検索 [#s34f8e0f] ***文字列 [#t838bfbd] -キー入力で指定した文字列を検索 /[string] ※下方向 ?[string] ※上方向 -カーソル位置の文字列を検索 * ※下方向 # ※上方向 -次の文字列を検索する n ※順方向 N ※逆方向 ***文字 [#p53eb2bd] -カーソル行のみ f[char] ※順方向(右) F[char] ※逆方向(左) ***文字列の置換 [#e572c53a] -置換対象:カーソル行のみ :s/[検索文字]/[置換文字]/ ※最初に検出した文字列のみ :s/[検索文字]/[置換文字]/g ※全ての文字列 -置換対象:全ての行 :%s/[検索文字]/[置換文字]/ ※最初に検出した文字列のみ :%s/[検索文字]/[置換文字]/g ※全ての文字列 -置換対象は指定した範囲の行 :[開始行番号],[終了行番号]s/[検索文字]/[置換文字]/g -検索文字列が複数あった場合 --末尾に"g"なしは、最初に検出した文字列のみ --末尾に"g"ありは、全ての文字列 **コピー、削除、ペースト [#s91e4d58] -編集内容を指定する1文字を入力後に、カーソル操作で対象範囲を指定する。 -編集内容のどれを指定しても、対象範囲で指定した対象の値はバッファに保存され、ペーストすることができる。 ***編集内容を指定 [#bc90533b] y ※コピー d ※削除 c ※削除(削除後に入力モード) ***対象範囲を指定(行単位の操作) ※編集内容がコピー(y)の例 [#c9a1ed88] -編集内容と同じ文字を2回入力した場合は、カーソル行全体を指定 yy -カーソル操作で対象範囲を指定 yj ※カーソル行と下の1行 yk ※カーソル行と上の1行 y数値j ※カーソル行と、下の指定した数分の行 y数値k ※カーソル行と、下の指定した数分の行 ***対象範囲を指定(文字単位の操作) ※編集内容がコピー(y)の例 [#dc2d644d] -カーソル操作で対象範囲を指定 yh ※カーソル位置の左1文字 yl ※カーソル位置の右1文字 y数値h ※カーソル位置の左、指定した数分の文字 y数値l ※カーソル位置の右、指定した数分の文字 y0 ※カーソル位置の左、全ての文字(「y^」と同じ) y$ ※カーソル位置の右、全ての文字 ***ペースト [#le68182c] -行単位の操作の場合 p ※カーソル行の下にペースト P ※カーソル行の上にペースト -文字単位の操作の場合 p ※カーソル位置の右にペースト P ※カーソル位置の左にペースト -複数個のペースト --pまたはPの前に数値を指定すると、指定した数分をペーストする。 ***補足 [#d5959b96] cc[string] ※カーソル行全体を削除(改行は削除せず、入力モード) cw[string] ※ cf[char] [string] ※ D ※「d$」と同じ。カーソル位置の右、全ての文字を削除 C ※「c$」と同じ。カーソル位置の右、全ての文字を削除(削除後は入力モード) **範囲指定 [#t1e3b242] ***範囲指定(ビジュアルモード) [#ob979e0d] -v ※ビジュアルモードに切り替わり、カーソル操作で範囲を指定する --d ※指定した範囲の文字を削除 ***範囲指定(マーク) [#e1fcc515] -下記操作による範囲指定後に、各編集の操作を実施 ++範囲の開始行で:ms ++範囲の終了行で:me -複数行のコピー [#a4a4bf1b] ++「:'s,'ey」と入力し、Enter押下 ++貼り付け先で:Shift + p -複数行の削除 [#a69d6aff] ++「:'s,'ed」と入力し、Enter押下 -範囲指定の置換 [#d307a0c6] ++「:'s,'es/置換される文字列/置換する文字列/g」と入力し、Enter押下 **入力補完 [#tc466184] Ctrl+p **設定 [#rc38b1c0] ***viを起動中のみ(終了すると設定が消える) [#x909620a] -行番号 --表示 :set number :set nu --非表示 :set nonumber :set nonu -タブ幅 :set ts=<number> ***常時の設定 [#j70f79ce] -設定ファイル --~/.exrc ※viエディター --~/.vimrc ※Vim -設定ファイルへの記述 --コマンドの頭":"を除いた状態で記述する **チュートリアル [#s130a47a] *チュートリアル [#s130a47a] -vimtutor --viエディタの操作をチュートリアルで学習できる --パッケージ ---vim-enhanced パッケージ ※CentOS ---vim パッケージ ※Ubuntu **関連用語 [#k34c6f0c] *関連用語 [#k34c6f0c] -[[Linuxコマンド]] -[[Linuxのファイル編集]] -[[Elvis]]