Zeilenbearbeitung im Bindestrich

7

Im oder Es ist möglich, sich wortweise mit Verknüpfungen wie z ESCB.

Das funktioniert nicht in oder . Soweit ich vom Googeln verstehe, hat dies etwas mit Readline-Unterstützung zu tun, aber nirgends wurde erwähnt, wie die Unterstützung für Dash aktiviert werden kann.

Das ist der Kern meiner Frage: Wie aktiviere ich die Liniennavigation für Dash

Sergiy Kolodyazhnyy
quelle

Antworten:

4

Die kurze Antwort lautet:

Das tust du nicht.

dashist ein direkter Nachkomme der Almquist Shell ( ash). ashNie Unterstützung für Zeilenbearbeitung und auch nicht dash. Busybox ashfunktioniert also. Wenn Sie ashaus irgendeinem Grund eine Variante benötigen und über eine Zeilenbearbeitung usw. verfügen, verwenden Sie Busybox ash. Niemand wird sich die Mühe machen, Readline-Unterstützung hinzuzufügen, da er dashhauptsächlich zum Ausführen von Shell-Skripten verwendet wird.

Es sei denn, Sie sind natürlich bereit, die Unterstützung für Readline-In zu codieren dashund einen solchen Patch selbst zu warten ...

Die lange Antwort lautet:

Kompilieren mit libedit

Wenn Sie sich dashdie Manpage ansehen :

-V vi           Enable the built-in vi(1) command line editor
                (disables -E if it has been set).

-E emacs        Enable the built-in emacs(1) command line editor
                (disables -V if it has been set).

Diese funktionieren nur, wenn dashmit kompiliert wurde --with-libedit. Es ist weder in Ubuntu noch anscheinend in Debian .

Sie können es so bauen:

git clone https://git.kernel.org/pub/scm/utils/dash/dash.git
cd dash 
./autogen.sh 
./configure --with-libedit 
make

Dann renne:

src/dash -E

Sie sollten in der Lage sein, den aktuellen Befehl mit den Pfeiltasten zu bearbeiten.

muru
quelle
6

Wenn Sie auf jeden Fall mehr dashBefehlszeilenbearbeitung und Verlauf wünschen , können Sie Folgendes verwenden rlwrap:

rlwrap dash

Vorschlag:

rlwrap -cmD2 dash

Um zu verwenden rlwrap, müssen Sie:

sudo apt-get install rlwrap
ΤΖΩΤΖΙΟΥ
quelle