iTerm-前後に1単語進む


164

キーボードショートカットを使用して、コマンドラインの現在のテキストを1語前後に移動するようにiTerm 2を構成することは可能でしょうか?


14
これは実際には質問に答えませんが、関連性があります。コマンドラインの任意の場所でoptionキーを押しながらクリックして、カーソルをそこに移動できます。
デビッドウィニエッキ

正解を受け入れなかったための
ダウン投票

@ Pi-受け入れられた答えが正しいものではないと思うのはなぜですか?1.投票数が最も多いもののほぼ3年前に登場しました。2.デフォルトでは機能しないソリューションを提供します。
シンタグマ

回答:


47

Ctrl-[ b単語をジャンプバックします。Esc代わりにまたはを使用してCtrl-[、先fに進むこともできます。

それはCtrl+ [releaseであり、次にbor fです。またはEscおよびbまたはf

詳細については、AskDifferent に関するこの他のディスカッションをご覧ください。


3
これは、各単語に一連のキーを入力するのではなく、ボタンを押しながら多くの単語にすばやく戻る方法がある場合に適しています。
user1717828

「Ctrl- [」とは何ですか?
徐志ha

「Ctrl- [」では、「Ctrl」キーと「[」キーを同時に押すことを意味します。
Volsk

323

大砲でハエを殺す:

  • [ 設定...] > [ プロファイル] > [ キー]に移動します。
  • プリセットの読み込み...を押します
  • ナチュラルテキスト編集を選択

次に、あなたが使用して後方の単語を移動することができますOption ⌥+ と使用して単語を転送Option ⌥+を使用して、行の先頭に移動fn+をととの行の末尾にfn+ 。また、あなたが使用して後方の単語を削除することができますOption ⌥+を使用して行全体を削除し、Command ⌘+を

プリセットが表示されない場合は、iTerm2を再インストールします。Homebrew + Caskを使用してインストールした場合:

brew cask reinstall iterm2

48
これは受け入れられた答えであるはずです!
guyarad

3
これは私にはうまくいきません。パラメーター:iTerm2 3.1.2、macOS 10.12.6、ドイツ語キーボード。そして、私は一人ではありません
...-t0r0X

2
これは素晴らしいことであり、ほとんどのニーズを追加します。ただし、「CMDで行の先頭/末尾に移動+左矢印/右矢印」は追加されません。そのアクションは、以下を参照してくださいstackoverflow.com/questions/6205157/...
MikeyN0

36
この答えを見た後、私の人生は変わりました。私は妻と離婚し、今ではスーパーモデルと一緒にランボにいます。
ドラゴスリゼスク

12
これは環境設定>であることに注意してくださいプロファイル >キー>ロードプリセットない設定>キー>ロード環境設定
ケビン

148

私は次のセットアップが好きです。

  1. [設定]> [キー](または[設定]> [プロファイル]> [キー])
  2. プラスをクリックします。

一語前に進む

option+right
send escape sequence
f

1単語戻る

option+left
send escape sequence
b

単語の先頭まで削除クレジット

option+delete
send hex code
0x1B 0x08

単語の終わりまで削除

fn+option+delete
send escape sequence
d

(確かに覚えていませんが、この回答を以下のjherranの回答からコピーして追加したと思います。その回答のコメントや提案された編集に追加情報を追加する必要がありました。改善する方法がわかりません状況ですが、今ではわかっています。)


2
MacOSの10.12で、私は単語の先頭に削除取得するために進コード0x17のを使用する必要がある
美都波

macOS 10.12とzshでチャームのように動作する
セバスチャン

1
最高の答えは、あなたが私からビール
無限

1
ジェランの答えを支持することを検討してください。私は彼らの答えを少し改善しただけで、おそらく自分の答えを作成する代わりに編集を提案すべきだったと思います。盗んだような気がします。
デビッドウィニエッキ

これを参照:Esc-bを行うには、送信する必要0x1b 0x42があり、Esc-fには、0x1b 0x46D を送信する必要がありました
メレディス

36

前方(Alt-f)、後方(Alt-b)、削除(Alt-d)の単語を取得するには

  1. iTermを開きます。
  2. iTerm>環境設定...>プロファイル>キーに移動します
  3. [プロファイルのショートカットキー]で、[+]記号をクリックします。
  4. キーショートカット(option-b、option-f、option-d、option-leftなど)を入力します。
  5. [アクション]で、[エスケープシーケンスの送信]を選択します。
  6. 入力フィールドにb、d、またはfを書き込みます。

これは少なくともbashで機能します。zshには、ナビゲートする他の方法があります。


2
環境設定>キー>グローバルショートカットキーと環境設定>プロファイル>キー>プロファイルショートカットキーの両方でキーを設定できることに気付いていなかったため、オプション+右ショートカットを追加しようとしましたが、競合に関する警告メッセージが表示されました。デフォルトのプロファイルで設定するとうまくいきました。
デビッドウィニエッキ

1
zshでも機能します!
アンドリーアブラモフ

2
(同じソリューションに対する)あなたの答えは最も簡単に理解できたと思います+1
nzaleski

1
非常に有用な説明。
コンティ

パーフェクト。「Alt」キーが同じ位置にあり、PCとMacを切り替えるときに調整が必要ないように、Command + Fなどを使用することもできます。
friederbluemle

12

他の回答と同様ですが、Zshの場合、これを見つけるのに時間がかかりました。

Oh My ZshなどのiTermでZshを使用している場合は、[設定]> [ プロファイル ]> [キー]サブメニューに移動します。

+記号をクリック

ショートカットコンボを追加し、「エスケープシーケンスを送信」を選択します

左下と右下の入力。

左:

[1;5D

右:

[1;5C

1
あなたは私の仲間を救った
チボーノア

これは私のために働いた唯一の解決策です
-Bryji

最後に、動作するシンプルなソリューション:D私たちと共有してくれてありがとう!
ペリバック

これが答えです。賛成。
愛hime

2

ここに画像の説明を入力してください

設定を開く

Esc +を送信するための左(および/または)右オプションキーの構成

プリセットを台無しにした場合、デフォルトのプリセットをロードする必要があるかもしれません(これはカスタムキーバインドを消去する可能性があることに注意してください!)

ここに画像の説明を入力してください

これを行った後に奇妙な文字が表示される場合は、〜/ .inputrcまたは/ etc / inputrcを構成する必要があるかもしれません

これを〜/ .inputrcに追加します。

"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

inputrcの完全な例:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

パーフェクト... TKS。
パイバリック

2

set -o vi通常のviモーションコマンドを使用できるように、ターミナルをviモードに設定できます(.bash_profile設定を永続的に保存するための行を追加します)。

したがって、viの場合と同様に、を押してからEscb1単語分後方に(w前方に)移動し0たり、で行の先頭に移動したり、F+ 文字で後方に文字を検索したりできます。

ヒットiして通常モードに戻り、挿入します。

viに精通している人はもっと多くのことができます。チートシートはここにあります


2
vimはすべてを解決します!:D
Brenoサルガド

打撃Escその後、Iちょうど行の先頭に一度行くことにすると、よりわずかに少ない便利ですCtrl-a-あなただけのコマンド名を変更したい場合は、このユースケースがしばしば起こります。そのため、iTerm2でキーバインディングを変更してviモードを使用Ctrl-Aし、エスケープシーケンスにマップしますEsc+0。そうすれば、これらのケースは編集モードで終了するため、さらに高速になります。
rfabbri

-1

iTerm2 3.1.4では、個別のキーマッピングを追加せずに以下をセットアップできました。

  1. [設定]> [プロファイル]> [キー]に移動します
  2. 左/右⌥キー:Esc +を選択

新しいターミナルセッションを使用すると、以下を使用できるようになりました。

Option ⌥+ f前進する

Option ⌥+ b前進する

Option ⌥+ Delete ⌫Wordを削除するには


2
これは、他の高評価の回答とどのように違いますか?apple.stackexchange.com/a/293988/237
user151019
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.