「nanapi勉強会 vol2 - Shellの活用でこれだけ毎日が便利になる」に参加して、自分が非効率にLinuxを使っていることを自覚しました。
なので、改めてbash
とvim
について足りていなかった部分を備忘録的に書き連ねていきたいと思います。
あくまで自分用なので、既に使っているコマンド等は割愛。
zsh
とzaw
もそのうち追記していきたいと思います。
bash
インクリメンタルサーチ(Ctrl + r)
過去のコマンド履歴を検索して実行。他の候補を見たい場合はさらにCtrl + r
。
コマンドの一部を変更して実行したい場合は、カーソルの左右を押して編集。
単語毎に移動(Esc → f、Esc → b)
単語の削除(Ctrl + w
)は使っていたけど、単語毎に移動は知らなかった。
ただ、押しにくいですね。
vim
勉強会では熱いemacs
推しでしたが、私はvim
を使っています。
ただ、改めて見直すと全然使えていないですね。
少しずつ改善していきたいと思います。
設定
-
検索時に大文字と小文字を区別しない(:set ignorecase)
-
検索時に大文字を入力した場合のみ大文字/小文字を区別する(:set smartcase)
-
インクリメンタルサーチ(:set incsearch)
-
タブの入力を空白文字に置き換える(:set expandtab)
-
括弧の入力時にカーソルを対応する括弧の上に一定時間表示(:set showmatch)
-
コマンドライン補完する時に補完候補を表示(:set wildmenu)
-
インデントの文字数を設定(:set shiftwidth=値)
カーソル移動
-
空白を除く行頭に移動(^)
0
を押した後に移動してました。 -
次の特定の文字に移動(f + 特定の文字、Fで前方向)
;
で繰り返し、,
で逆方向に繰り返し。 -
次の特定の文字の直前に移動(t + 特定の文字、Tで前方向)
;
で繰り返し、,
で逆方向に繰り返し。
スクロール
-
現在のカーソル位置が1番上に来るようにスクロール(zt)
-
現在のカーソル位置が中心に来るようにスクロール(zz)
-
現在のカーソル位置が1番下に来るようにスクロール(zb)
マーク機能
マーク機能はテキストの任意の場所に印をつけ、後でその場所に移動することのできる機能。
別のファイルを開くことも可能。
Chef
のレシピを編集したりする時には複数のテキストを編集するので、マーク機能を使えばもう少し書きやすくなりそう。
-
マークの登録(m + アルファベット)
-
マークの行頭に移動(' + 登録済みのマークのアルファベット)
-
直前のマークに移動('')
-
マークの一覧を表示(:marks)
インデント、複数行のコメントアウト・カンマ
-
行のインデントを増やす(>>)
-
行のインデントを減らす(<<)
-
選択範囲を自動インデント(選択して=)
-
複数行のコメントアウト(Ctrl + v → 行選択 → I → # → ESC)
-
複数行のコメントアウト解除(Ctrl + v → 行選択 → x)
-
複数行の行末にカンマ(Ctrl + v → 行選択 → A → , → ESC)
-
インデントの文字数を設定(:set shiftwidth=値)
入力補完
- 単語の補完(Ctrl + p、Ctrl + n)
Ctrl + p
でファイルの上の方を、Ctrl + n
で下の方を検索してマッチするワードで補完する。
マルチウィンドウ
-
ウィンドウを分割(:split)
-
ウィンドウの切り替え(Ctrl + w → k、Ctrl + w → j)
-
ファイルを別ウィンドウで開く(:split ファイル名)
カレントディレクトリの変更(:lcd ディレクトリ)
その他
-
大文字小文字を切り替え(~)
-
数値の加減(Ctrl + a、Ctrl + x)