diff --git a/scheme/input-buffer.scm b/scheme/input-buffer.scm index f1a74df..06880cb 100644 --- a/scheme/input-buffer.scm +++ b/scheme/input-buffer.scm @@ -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)