Linuxのマニュアルを読んでいて、編集中にCtrl + LeftとControl + Rightを使って端末内の単語を前後に移動できると言っていました。
「Ctrlキーを押しながら左または右矢印キーを押すと、一度に単語を前後に移動できます。Escを押してからBまたはFを押すのも同様です。
OS Xではcontrol+left
とcontrol+right
は通常スペースを制御します。私はそれらを無効にしました。また、私は環境設定パネルを使ってキーボードショートカットを設定しようとしました。
しかしこれははたらかないし、このエラーを引き起こします:
また、私がiTermにいるときにalt+escape
、次にBまたはFを使用すると、文字は前後に移動します。これは私の設定変更の前に起こっていました。しかし、私は本当にCtrl +矢印キーを使用できるようにしたいです。
以下を~/.inputrc
に追加するだけです。
"\e[1;5D": backward-Word
"\e[1;5C": forward-Word
もっと詳しい説明は このアーカイブWiki記事 を見てください。あなたが使用したい場合 alt WordからWordへの移動ではなく(デフォルトのOS Xの動作のように)、keyを使います。
"\e[1;9D": backward-Word
"\e[1;9C": forward-Word
デフォルトではzshはreadline
ライブラリを使用しないため、~/.inputrc
を読みません。同じ機能を取得するには、~/.zshrc
に以下を追加します。これもまた alt キー:
bindkey -e
bindkey '^[[1;9C' forward-Word
bindkey '^[[1;9D' backward-Word
組み込みのzsh行エディタ(zle)についての詳細は このドキュメント を参照してください。
どうしてこれなの? Xtermのデフォルトを使用するようにプロファイルを設定しました。
これが、このシーケンスを「キャッチ」してreadline
に何をすべきかを伝える必要がある理由です。
上記の方法でもうまくいかず、OS X 10.9(Mavericks)などを使用している場合は、Mission Control自体が無効になっていても、Control +矢印キーがiTermに届かないようにするMission Controlのグローバルショートカットを無効にする必要があります。あなたはシステム環境設定→キーボード→ショートカット→ミッションコントロールからそうすることができます:
Zsh用のワーキングソリューション。シンプルでわかりやすい、すぐに使える.
後藤:⌘, Preferences → Profiles → Keys → Keyboard Behavior
プリセットの読み込み:Natural Text Editing
実際のところ、最も簡単な解決策は自分のプロファイル設定(Profiles/Keysにあります)に行き、問題のあるプロファイルショートカット(iTermではprofileがglobalをオーバーライドするので)を削除することです。ショートカットは私にとって完璧に機能しました!
また、OS Xを使用している場合は、システム全体のショートカットをそのまま使用することをお勧めします。つまり、この目的で代わりにalt + leftとalt + rightを使用すると、最終的に異なる動作をします。
Better Touch Toolを使用するというchmacの解決策以外に、control + arrowの動作をitermのみで変更するためのエレガントな方法がありました。
私はこのように修正しました:
トップメニューにに行く
Profiles
-> Open profiles...
-> Edit profiles... (button)
-> Keys (tab)
-> Load Preset... (dropdown)
-> Choose "Natural text editing". Done! :-)
私は別の方法を使いました。使い方 BetterTouchTool iTerm2用のカスタムキーボードショートカットをプログラムしました。私がiTerm2でalt-leftを押すと、それはアクション「キーボードショートカットを特定のアプリケーションに送る」と共にキーボードショートカットctrl-leftを送ります。アプリケーションはiTerm2です。 alt-rightをctrl-rightにマッピングするために同じことをしました。
その効果は、iTermでalt-leftまたはalt-rightを押すと、通常のシステム全体のショートカットを迂回してデスクトップを左または右に移動することで、ctrl-leftまたはctrl-rightを直接iTerm2に送信することです。このように、私はiTerm2の典型的なMacの振る舞いをローカル端末セッションでもリモートSSHセッションでも得られます。そして私は標準的なctrl-left/ctrl-rightを使って別のデスクトップに移動することができます。私はここにそれを書きました:
http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/
この投稿では、これと他のショートカットをas←という単語で教えています。
http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/
Profiles
タブに移動して次のマッピングを削除する必要があります。 alt+left そして alt+right デフォルトではいくつかの16進値を出力します。