GNU/Linux >> Znalost Linux >  >> Linux

Klávesy se šipkami v Ksh Openbsd, úpravy příkazového řádku, režim Vi?

Používám výchozí ksh na OpenBSD 6.2 (založeno na pdksh ) s povoleným režimem úprav příkazového řádku Vi.

Snažím se, aby klávesy se šipkami fungovaly správně jako doplněk k h , l , j a k (když jsem na klávesnici Dvorak). Pokud mohu říci, vůbec nefungují. Nezáleží na tom, zda jsem v režimu „vstupu“ nebo „příkazu“.

Mezi aktuální klávesové zkratky patří:

^[[A = up-history
^[[B = down-history
^[[C = forward-char
^[[D = backward-char

Toto jsou také znaky sekvenované mými šipkami, pokud použiji Ctrl+V Šipka .

Klávesy se šipkami fungují podle očekávání v režimu úprav příkazového řádku Emacsu, ale jako dlouholetý uživatel Vi se při jejich používání cítím poněkud ochromen.

Mám pocit, že Escape odeslaný klávesou se šipkou je interpretován jako kdybych stiskl Esc … Ekvivalentní chování získám ručním zadáním např. Esc [ A jako když stisknu šipka nahoru (umístí mě do příkazového režimu a poté do režimu vkládání na konec řádku).

Otázka:Dokázal někdo přimět klávesy se šipkami, aby fungovaly intuitivně v režimu Vi v ksh OpenBSD ?

Přijatá odpověď:

Udělal jsem rychlý vpád do /usr/src/bin/ksh na mém systému OpenBSD, protože jsem stejně nechal zkontrolovat skutečné zdroje. Zběžně jsem se podíval na c_ksh.c , emacs.c a vi.c a vypadá to, jako by byl režim Vi přemontován do pdksh z nsh někdy (kolem roku 1989/1990). Přesná použitá slova jsou

/*      $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
 *
 */

bind -able funkce všechny žijí v emacs.c , stejně jako x_bind() funkce, která je volána pomocí bind vestavěný, zatímco vi.c zdá se, že má vlastní implementaci některých z nich pod různými názvy, které nejsou volány z x_bind() .

Proto si myslím, že mohu dojít k závěru, že bind vestavěný je v tomto konkrétním prostředí neoperativní v režimu Vi.

AKTUALIZACE (2018-02-04):Po nahlášení této události na openbsd-misc seznam, bylo potvrzeno, že bind skutečně nedělá nic v režimu úprav příkazového řádku Vi. Vstoupí patch, který změní ksh manuál na OpenBSD, takže toto je zmíněno:

bind string=[editing-command] ...

V režimu úprav Emacs , zadaný editační příkaz je vázán na
daný string . Budoucí vstup string způsobí okamžité vyvolání editačního příkazu
. Vazby nemají žádný
účinek v režimu úprav Vi .


Linux
  1. Linux – ekvivalentní volání z příkazového řádku pro režim v letadle?

  2. Průvodce pro začátečníky editorem vi (odkaz na příkazový řádek)

  3. vim:příkaz nenalezen

  1. Rozhraní příkazového řádku C++

  2. Konverze časového pásma pomocí příkazového řádku

  3. Zajistěte, aby ftp klient Linuxu ignoroval místní IP adresu v pasivním režimu

  1. Bash, pokud na jednom řádku

  2. Problémy s příkazovým řádkem Netcat

  3. Jak uložit + zavřít soubor při úpravách v bash?