ZSHのフルスクリーンエディターでコマンドラインを編集する方法


52

私がヒットした場合はbashで、viのモードを使用して、Escv、私の現在のコマンドラインはで指定されたエディタで開いている$EDITORと私はシェルに戻り、実行するコマンドを「保存」する前に、フルスクリーンでの編集をすることができるしています。

zshで同様の動作を実現するにはどうすればよいですか?vコマンドモードで押すと、EDITOR環境変数が設定されているにもかかわらず、ベルは表示されません。

回答:


36

を参照edit-command-lineしてくださいzshcontrib

bindkey -M vicmd v edit-command-line

13
(明確にするために):edit-command-line「ウィジェット」を有効にするにautoload edit-command-line; zle -N edit-command-lineは、zsh initファイルのいずれかのようなものが必要です(ドキュメントのZLE関数セクションを参照)。zshcontrib
クリスジョンセン

設置したら、どのようにアクティベートしますか?emacsスタイルの回答のbindkeyは私にとって理にかなっています。しかし、私は何がbindkey -M vicmd v設定されているかについての参照を見つけることができません。
マットシャファー

@MatSchaffer Bashと同じ:viモードにいる場合は、ヒット<ESC>して挿入モードからコマンドモードに入り、次にvビジュアルモードになります(Meta-v同じです)。または、v既にコマンドモードになっている場合だけです。Emacsモードを使用している場合、典型的なバインディングはC-x C-eです。
一時的な

1
私が(通常モードでは何も有効ではありません)、スペースバーに再マッピングを好むので、あなたは、任意のより多くのビジュアルモードを使用することはできませんVキー手段の再マッピングbindkey -M vicmd ' ' edit-command-line
ジブ

37

Emacsのキーバインドを好む場合:

autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line

9
^x^eバインディングはデフォルトであるように思わ現在・OH-MY-zshの非常にいいです、。
quodlibetor

^ x ^ eはまさに私が探していたものです。
jmreicha 14年

1
editorモジュールがロードされている限り、Preztoの同様のセットアップ。
AL X

23

fc履歴の最後のコマンドを編集するために使用できます。同じコマンドを編集するのと同じではありませんが、Enterキーをすばやく押すと、現在のコマンドが履歴の最後のコマンドになります。


14

これは、~/.zshrcbashから同じ動作を得るために追加した完全な構成です。

export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line

以前のコメントによると、これはOh My ZSHまたはPreztoを使用している場合にデフォルトで設定されます。後者の場合、editorモジュールをロードするvivim、コマンドモード用に選択する必要があります。
AL X

私はこれを受け入れられた答えにすることに投票します、それは記述されたすべての構成で私の質問を解決しました。ありがとう。
ローラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.