長いコマンドをより速くナビゲートする方法は?


136

長いコマンドを入力する必要があるときにLinux CLIナビゲーションを高速化する方法はありますか?私は今すぐ矢印を使用するだけです。長いコマンドがある場合は、コマンドの開始から途中までに時間がかかります。

たとえば、矢印を使用せずにコマンドの途中にジャンプする方法はありますか?

回答:


174

Readlineライブラリが提供するいくつかの便利な行編集キーバインディング:

  • Ctrl-A:行の先頭に移動します
  • Ctrl-E:行末に移動します
  • Alt-B:1単語後方にスキップ
  • Alt-F:1単語先にスキップ
  • Ctrl-U:行頭まで削除
  • Ctrl-K:行末まで削除
  • Alt-D:単語の最後まで削除

7
+1は、何らかの理由でctrl-arrowsが機能しない場合でも機能するためです。注意することは価値がある、のためにscreenユーザは、Ctrl-Aは、Ctrlキーを押しながらAのA.なり
enzotib

3
削除を取り消す(または削除してテキストを移動する)には、Ctrl + Yを使用します
。– Lekensteyn

7
Ctrl +右向き矢印、Ctrl +左向き矢印。
mac 14年

3
UbuntuでGnomeおよびGnomeTerminalを使用Alt-Aすると、カーソルを移動する代わりにメニューが開きます。Alt-AGnome ではどのように使用しますか?つまり、Gnomeがデフォルトなので、これを読んでいる人はだれでもGnomeでターミナルを実行しているでしょう。
ジェイソン14

1
あなたがUbuntuのに接続している場合から SSHを介してOS Xそんなに上の代わりにCtrlキー例えば、ESC-Aの「Escキー」、ESC-Eとを使用する必要があります。これは、iTermとターミナルに当てはまります。
フレッドクラウセン

77

ここからさらにいくつかのショートカット

Ctrl + a  go to the start of the command line
Ctrl + e  go to the end of the command line
Ctrl + k  delete from cursor to the end of the command line
Ctrl + u  delete from cursor to the start of the command line
Ctrl + w  delete from cursor to start of word (i.e. delete backwards one word)
Ctrl + y  paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor
Ctrl + xx  move between start of command line and current cursor position (and back again)
Alt + b  move backward one word (or go to start of word the cursor is currently on)
Alt + f  move forward one word (or go to end of word the cursor is currently on)
Alt + d  delete to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + c  capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + u  make uppercase from cursor to end of word
Alt + l  make lowercase from cursor to end of word
Alt + t  swap current word with previous
Ctrl + f  move forward one character
Ctrl + b  move backward one character
Ctrl + d  delete character under the cursor
Ctrl + h  delete character before the cursor
Ctrl + t  swap character under cursor with the previous one

この率直な、チャットなしのリストをありがとう。
-neverMind9

14

あなたはviの[M]と、bashのユーザーであれば、あなたは追加することによって、viのスタイルの編集を使用することが有用(bashので使用される)のreadlineを作るために見つけることがset editing-mode vi、あなたに~/.inputrcまたは/etc/inputrcファイル。または、bashコマンドを実行して、bashにviスタイルの編集を使用させることもできますset -o vi。コマンドを~/.bashrcファイルに追加して、動作を永続化します。

zshユーザーの場合は、viスタイルの編集用にファイルに追加bindkey -vします.zshrc


8

カーソルキーを使用せずに特に中央にジャンプする方法がわかりません。ただし、CTRL +カーソルキーを使用して空白から空白に移動する(つまり、ある単語から別の単語にジャンプする)ことをお勧めします。


1

.bashrcで以下のコードスニペットを入手します。Ctrl-aは先頭にジャンプし、Ctrl-aをもう一度押すと中央にジャンプします。

jump_mid() {
    if [ "$READLINE_POINT" -eq "0" ]; then
        LEN=${#READLINE_LINE}
        POS=$(($LEN / 2))
        READLINE_POINT=$POS
    else
        READLINE_POINT=0
    fi
}
bind -x '"\C-a" : jump_mid'

または、Ctrl-Somethingを使用して直接中央にジャンプする場合は、コードを次のように変更します。

jump_mid() {
    LEN=${#READLINE_LINE}
    POS=$(($LEN / 2))
    READLINE_POINT=$POS
}

そして、Ctrl-aとは異なるものにバインドします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.