about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Functions/Zle/.distfiles3
-rw-r--r--Functions/Zle/edit-command-line18
3 files changed, 25 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8626a794c..c18f6080e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-10  Peter Stephenson  <pws@cambridgesiliconradio.com>
+
+	* 11299: Bart/pws: Functions/Zle/edit-command-line: edit command
+	line with external editor.
+
 2000-05-10  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 11298: Doc/Zsh/compsys.yo, Src/Zle/computil.c: more fixes for
diff --git a/Functions/Zle/.distfiles b/Functions/Zle/.distfiles
index 429c133a0..8e9e1acee 100644
--- a/Functions/Zle/.distfiles
+++ b/Functions/Zle/.distfiles
@@ -1,3 +1,4 @@
 DISTFILES_SRC='
-    .distfiles incremental-complete-word insert-files
+    .distfiles history-search-end edit-command-line incremental-complete-word
+    incarg insert-files predict-on
 '
diff --git a/Functions/Zle/edit-command-line b/Functions/Zle/edit-command-line
new file mode 100644
index 000000000..8019329bd
--- /dev/null
+++ b/Functions/Zle/edit-command-line
@@ -0,0 +1,18 @@
+# Edit the command line using your usual editor.
+# Binding this to 'v' in the vi command mode map,
+#   autoload edit-command-line
+#   zle -N edit-command-line
+#   bindkey -M vicmd v edit-command-line
+# will give ksh-like behaviour for that key.
+
+local tmpfile=${TMPPREFIX:-/tmp/zsh}ecl$$
+
+print $BUFFER >$tmpfile
+exec </dev/tty
+${VISUAL:-${EDITOR:-vi}} $tmpfile
+LBUFFER=
+RBUFFER=
+BUFFER=$(<$tmpfile)
+
+rm -f $tmpfile
+zle redisplay