Macのターミナルで個人的に便利だと思う
入力補完や操作(コマンド行編集インタフェース)のメモです。
実際にはデフォルトのbashのCommand-Line-Editingです。
デフォルトでは emacs と同じキーバインドだそうですが
私がemacsを使えず自信ないです。
そこで使えそうなものを列挙してみました。
本題
| コマンド | 説明 |
|---|---|
| [任意の文字]入力後にtab | 入力補完。複数候補がある場合は2回連続押下で候補表示 |
| 上下矢印キー | 履歴をたどる |
tabとかこの記事を見に来て頂ける方なら言わずもがなかな、ビクビク。
たどりつつ以下のように履歴を流用することがよくあります。
# ファイル作成
touch src/hoge.txt
# ここで、上矢印キーで `touch src/hoge.txt` を再表示
# Control + aで文頭へ
# ESC押して離してd後ろの単語(touch)を削除
# openと入力してEnterで開く
などです。(え?最初から vi src/hoge.txt ?す、すみません。。。)
他には
git branch
# ここで、上矢印キーで `git branch` を再表示
# すでにカーソルが文末なのでControl + wで(branch)を削除
# statusと入力してEnterで`git status`を実行
などです。
基本、文頭か文末の1単語を変更して実行することが多いです。
カーソル移動系
| コマンド | 説明 |
|---|---|
| Control + a | カーソルを文頭へ移動 |
| Control + e | カーソルを文末へ移動 |
| ESC 押して離して f | カーソルを1単語前(右)へ |
| ESC 押して離して b | カーソルを1単語後(左)へ |
キーバインドにありがちな以下の略語ですね。
f:forward
b:backward
削除系
| コマンド | 説明 |
|---|---|
| Control + k | カーソル位置から前(右)の文字を削除 |
| Control + u | カーソル位置より後(左)の文字を削除 |
| Control + w | カーソルより後(左)の1単語(whitespaceまで)を削除 |
| ESC 押して離して delete | カーソルより後(左)の1単語(whitespaceまで)を削除 |
| ESC 押して離して d | カーソル位置から前(右)の1単語を削除 |
他
| コマンド | 説明 |
|---|---|
| command + k | ターミナルの表示削除(clear的な) |
| command + s | ターミナルの表示をテキストファイルに保存 |
| (emacsでもなんでもないですが) |
※ちなみに
ESCはmetaキーでも代替できるとのこと
(むしろそちらが正式。僕のキーボードにいないよ。。。)
altキーをmetaキー扱いさせる設定もありますが
基本デフォルト設定に慣らしておきたいので利用していません。
変更する場合は以下のようです。
ターミナル > 環境設定 > 設定 > キーボード
「メタキーとしてoptionキーを使用」にチェックを入れる。
ここまできてなんですが、
私はviも好きなので以下のようにしたい欲も。
でもデフォルトから極力変更したくないのでそのままです。
| コマンド | 説明 |
|---|---|
| set -o vi | terminal上での操作(コマンド行編集インタフェース)がviになります |
| set -o emacs | emacsになります |
