Make key-bindings for INPUT more shell like: CursorUp/CursorDown
cycles through the command history. Use Ctrl-p/-n to move cursor to the previous/next line in the input.
This commit is contained in:
parent
d5a033368a
commit
0cda756391
|
@ -91,30 +91,30 @@
|
|||
(set! pos-col (- pos-col 1))))
|
||||
values))
|
||||
|
||||
;;Nav
|
||||
((= ch key-up)
|
||||
(if (< pos-fin-ln 2)
|
||||
values
|
||||
(let ((length-prev-line
|
||||
(string-length
|
||||
(list-ref text (- pos-line 2)))))
|
||||
(begin
|
||||
(set! can-write #f)
|
||||
(set! pos-line (- pos-line 1))
|
||||
(set! pos-col (+ length-prev-line 2))))))
|
||||
|
||||
((= ch key-down)
|
||||
(let ((last-pos (length text)))
|
||||
(if (>= pos-line last-pos)
|
||||
values
|
||||
(let ((length-next-line
|
||||
(string-length
|
||||
(list-ref text pos-line))))
|
||||
(begin
|
||||
(set! pos-col (+ length-next-line 2))
|
||||
(set! pos-line (+ pos-line 1))
|
||||
(if (= pos-line last-pos)
|
||||
(set! can-write #t)))))))
|
||||
;; move cursor to previous line Ctrl-p, keycode 16
|
||||
((= ch 16)
|
||||
(if (< pos-fin-ln 2)
|
||||
values
|
||||
(let ((length-prev-line
|
||||
(string-length
|
||||
(list-ref text (- pos-line 2)))))
|
||||
(set! can-write #f)
|
||||
(set! pos-line (- pos-line 1))
|
||||
(set! pos-col (+ length-prev-line 2)))))
|
||||
|
||||
;; move cursor to next line Ctrl-n, keycode 141
|
||||
((= ch 141)
|
||||
(let ((last-pos (length text)))
|
||||
(if (>= pos-line last-pos)
|
||||
values
|
||||
(let ((length-next-line
|
||||
(string-length
|
||||
(list-ref text pos-line))))
|
||||
(begin
|
||||
(set! pos-col (+ length-next-line 2))
|
||||
(set! pos-line (+ pos-line 1))
|
||||
(if (= pos-line last-pos)
|
||||
(set! can-write #t)))))))
|
||||
|
||||
((= ch key-left)
|
||||
(if (<= pos-col 2)
|
||||
|
@ -152,8 +152,8 @@
|
|||
(set! text (append text-front '("")))
|
||||
(set! pos-col 2)))))
|
||||
|
||||
;;Ctrl+f -> History-forward
|
||||
((= ch 6)
|
||||
;; forward in command history -- CursorDown
|
||||
((= ch key-down)
|
||||
(if can-write
|
||||
(begin
|
||||
(if (< history-pos (- (length text) 1))
|
||||
|
@ -167,8 +167,8 @@
|
|||
(list-ref text (- (length text) 1)))))
|
||||
(set! pos-col (+ line-length 2))))))
|
||||
|
||||
;;Ctrl+b -> History-back
|
||||
((= ch 2)
|
||||
;; back in command history -- CursorUp
|
||||
((= ch key-up)
|
||||
(if can-write
|
||||
(begin
|
||||
(if (> history-pos 0)
|
||||
|
|
Loading…
Reference in New Issue