From a0eacf4607f0262f6c3bb6ddf84113253b76d477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Wed, 21 Oct 2020 08:18:39 +0200 Subject: Add an installation script Copying snippets from the README was uncomfortable and laborious, and wasted a lot of space in the document, especially after the recent additions. Closes #3 --- README.adoc | 120 +++++------------------------------------------------------- 1 file changed, 10 insertions(+), 110 deletions(-) (limited to 'README.adoc') diff --git a/README.adoc b/README.adoc index bedacd6..9c162a6 100644 --- a/README.adoc +++ b/README.adoc @@ -47,117 +47,17 @@ into the PATH of any machine you want to have 'sdn' on. Integration ----------- +The package contains an installation script called 'sdn-install' which will bind +'sdn' to M-o in your shell's initialisation file. The supported shells are: -zsh -~~~ -To start using this navigator, put the following in your '.zshrc': - ----- -sdn-navigate () { - # ... possibly zle-line-finish - while eval "`sdn "$BUFFER" "$CURSOR"`"; do - [ -z "$cd" ] || cd "$cd" - [ -z "$insert" ] || LBUFFER="$LBUFFER$insert " - [ -z "$helper" ] && break - - # Workaround for "zsh: suspended (tty output)" when invoking - # helpers after the terminal has been resized while running sdn - command true - - /bin/sh -c "$helper" /dev/tty 2>&1 } - - # XXX: the -dot is not a stable API, and may hence break soon - local:buffer = $edit:current-command - local:cursor = (str:to-codepoints $buffer[0..$edit:-dot] | count) - local:ns = (ns [&]) - while ?(eval ($reesc (sdn $buffer $cursor | - sed 's/^local //' | slurp)) &ns=$ns) { - if (not-eq $ns[cd] "") { cd $ns[cd] } - if (not-eq $ns[insert] "") { edit:insert-at-dot $ns[insert]" " } - if (or (eq $ns[helper] "") (not ?($posix $ns[helper]))) { break } - } - edit:redraw &full=$true -} ----- - -This shell is absolutely perverse. And so is integrating 'sdn' into it because -it already includes a custom file manager, bound to Ctrl-N (though I find -the ranger-like interface confusing and resource-demanding). Version 0.14.1 or -newer is required. + - *zsh*: works well + - *bash*: minor issue: exiting the navigator confirms an empty prompt + - *fish*: works well + - *elvish*: version 0.14.1 and above, an unstable API is used, works well + +elvish is absolutely perverse. And so is integrating 'sdn' into it because it +already includes a custom file manager, bound to Ctrl-N (though I find the +ranger-like interface confusing and resource-demanding). Configuration ------------- -- cgit v1.2.3