私は基本を使うksh
OpenBSD 6.2で(ベースpdksh
)Viコマンドライン編集モードを有効にします。
私はDvořákキーボードを使用しているので、矢印キーは、とのh補足lとして正しく動作するように努力しています。私が知っている限り、彼らはまったく機能しません。 「入力」モードなのか「コマンド」モードなのかは関係ありません。jk
現在のキーバインディングは次のとおりです。
^[[A = up-history
^[[B = down-history
^[[C = forward-char
^[[D = backward-char
を使用すると、矢印キーで生成される文字の順序でもありますCtrl+VArrow key。
矢印キーはEmacsコマンドライン編集モードでうまく機能しますが、長いViユーザーとして矢印キーを使用すると少し不快感を感じます。
私の感じは、矢印キーで送信されたEscapeが私が押したかのように解釈されるということです。たとえば、手動で入力するとEsc同じ動作が得られます。たとえば、コマンドモードに切り替えてから最後に挿入モードに切り替えます。線)。Esc[AUp-arrow
Q:OpenBSDのViモードで矢印キーを直感的に操作できる人はいますかksh
?
答え1
早く参加します。/usr/src/bin/ksh
私はOpenBSDシステムで実際のソースコードを確認したからです。一見すると、c_ksh.c
Viモードがある時点(1989/1990年頃)から改造されたようにemacs.c
見えます。使用される正確な単語は次のとおりです。vi.c
pdksh
nsh
/* $OpenBSD: vi.c,v 1.55 2018/01/16 22:52:32 jca Exp $ */
/*
* vi command editing
* written by John Rochester (initially for nsh)
* bludgeoned to fit pdksh by Larry Bouzane, Jeff Sparkes & Eric Gisin
*
*/
-able 関数はbind
組み込み関数によって呼び出される関数と同様にすべてに位置しますがemacs.c
、一部は呼び出されない別の名前で独自の実装があるようです。x_bind()
bind
vi.c
x_bind()
したがって、私はbind
この特定のシェルで組み込み関数がViモードでは動作しないと結論付けることができると思います。
更新(2018-02-04):これをopenbsd-misc
リストに報告し、bind
実際にViコマンドライン編集モードで何もしないことを確認しました。ksh
これに言及するために、OpenBSDマニュアルを修正するパッチがあります。
bind string=[editing-command] ...
存在するEmacs編集モード、指定された編集コマンドが指定されたものにバインドされます
string
。今後の入力により、string
編集コマンドはすぐに呼び出されます。 無効なバインディングVi編集モード。