5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macのターミナル(bash)で便利な入力補完と操作メモ。emacsが苦手なんだよ。

5
Last updated at Posted at 2017-12-06

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キーを使用」にチェックを入れる。

terminal_setting.png

ここまできてなんですが、
私はviも好きなので以下のようにしたい欲も。
でもデフォルトから極力変更したくないのでそのままです。

コマンド 説明
set -o vi terminal上での操作(コマンド行編集インタフェース)がviになります
set -o emacs emacsになります
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?