勉強中の関連記事まとめ
自分用の勉強記事をまとめた目次 ~擬似知識体系~
ターミナルだけで完結したいときに便利だから覚えとこう。
基本的にノーマルモード状態からのコマンド入力となる。
起動
vim vimを起動
vim ファイル名 ファイルを作成してvimを起動(パス/ファイル名)
モード選択
esc 各種モードを離脱してノーマルモードに戻る
i 入力モード
: コマンドモード
v ビジュアルモード(選択モード)
ヘルプ
:h operator ヘルプ
``
保存・終了・ファイル開く
:w 上書き保存
:w ファイル名 名前をつけて新規保存
:q 終了
:q! 強制終了
:wq or :x or ZZ 保存して終了
:xa変更があるタブを保存して全てのタブを閉じる
:e ファイル名 ファイルを開く
アンドゥ・リドゥ
u アンドゥ
ctrl + r リドゥ
. 直前の操作を繰り返す
カーソル移動
h ←
j ↓
k ↑
l →
覚え方は、デフォルトポジションのチョキが上下、そのサイドキーが左右。
gg ファイルの最初へ
G ファイルの最後へ
H 表示画面の最上行へ
M 表示画面の中央行へ
L 表示画面の最下行へ
ctrl + b 前ページへ
ctrl + f 次ページへ
w 次の単語へ(熟語単位)
b 前の単語へ(熟語単位)
e 次の単語へ(単語単位)
ge 前の単語へ(単語単位)
^ 行頭へ
$ 行末へ
:3 3行目へ(行数指定)
% カーソル位置のカッコと対になるカッコへ
f? 現在の行で?と一致する最初の文字へ
f? + ; 現在の行で?と一致する次の文字へ
m + アルファベット カーソル位置の行をマーク
` + アルファベット マークした行へ
範囲選択
v 一文字選択(ビジュアルモード)
V 行選択
ctrl + v 矩形選択
ggVG 全選択
編集
i インサート入力(カーソルの左側から)
a アフター入力(カーソルの右側から)
c 選択範囲を削除して入力モードに移行
I 行の最初の非空白文字から入力
A 行末から入力
o 下に行を追加してから入力
O 上に行を追加してから入力
J カーソル位置の行と下の行を連結
短径選択 + I + 挿入文字列 + esc 一括で同じ編集を加える(ちょっと複雑)
>> 右にインデント
<< 左にインデント
= カーソル位置の行のインデントを自動整列
~ カーソル位置の文字の小文字・大文字を切替え
U 選択範囲の文字の小文字・大文字を切替え
テキストオブジェクト編集
c,d,y 操作選択(置換・削除・コピー)
i,a 範囲選択(内容・全体)
w,s,t,",),] オブジェクト選択(単語・文・htmlタグ・クォーテーション・カッコ)
例)cit タグの内容のみを置換
例)cat タグ全体を置換
例)ci" " "の内容のみを置換
例)diw 一単語の内容のみ削除
例)dw カーソル位置より右側の単語範囲を削除
例)daw カーソル位置の単語を削除
例)viw 一単語選択
削除
x 一文字削除
dd 一行削除
3dd 3行削除(行数指定)
短径選択 + x 一括削除
D or d$ カーソル位置から行末まで削除
S カーソル位置の一行を削除して入力モードに移行
コピペ
yy コピー
3yy 3行コピー行数指定)
p ペースト(削除やコピーした際のクリップボードから)
検索
/??? キーワード検索
/??? + n 次の該当ワードへ
/??? + N 前の該当ワードへ
* カーソル位置の単語と同じ単語へ(順)
# カーソル位置の単語と同じ単語へ(逆)
ctrl + n 入力中の文字列をファイル内を参照して予測変換
置換
:s/文字列1/文字列2/ カーソルに近い最初の文字列1を文字列2に置換
:s/文字列1/文字列2/g 行内の該当する全文字列を置換
:%/文字列1/文字列2/g ファイル全体の全文字列を置換
:%s/文字列1/文字列2/gc 実行前に確認を求められる
画面分割
:sp 水平分割
:vs 垂直分割
ctrl + w 画面選択
:close 画面を閉じる
コマンドによる一時的な拡張機能
:set tabstop=3 Tabスペースの文字数を指定
:syntax on テキストに色をつける
:syntax off つけない
:set ignorecase // キーワード検索で小文字・大文字を含める
:set noignorecase // 含めない
vim設定ファイルによる拡張機能
$ vim ~/.vimrc
syntax on // テキストに色を付ける
syntax off // テキストに色を付けない
set number // 行番号を表示
set title // ファイル名を表示
set ignorecase // キーワード検索で小文字・大文字を含める
set noignorecase // 含めない