Add vim movement keys

Some indentation weirdness also got caught up in this, not sure what that's about...
This commit is contained in:
Juliana Rat 2023-11-04 15:30:04 -04:00 committed by Skylar Hill
parent 4a7dee2f9e
commit 3f7684fb13
1 changed files with 21 additions and 17 deletions

View File

@ -26,24 +26,9 @@
(define x (getcurx win))
(cond
((eqv? key KEY_BACKSPACE)
(delch win #:y y #:x (- x 1)))
(delch win #:y y #:x (- x 1)))
((eqv? key KEY_DC)
(delch win))
((eqv? key KEY_LEFT)
(move win y (- x 1)))
((eqv? key KEY_RIGHT)
(move win y (+ x 1)))
((eqv? key KEY_UP)
(move win (- y 1) x))
((eqv? key KEY_DOWN)
(move win (+ y 1) x))
((eqv? key #\esc) 'normal-mode)
(else (insch win (normal key) #:y y #:x (+ x 1)))))
(define (normal-mode-process-input win key)
(define y (getcury win))
(define x (getcurx win))
(cond
(delch win))
((eqv? key KEY_LEFT)
(move win y (- x 1)))
((eqv? key KEY_RIGHT)
@ -52,6 +37,25 @@
(move win (- y 1) x))
((eqv? key KEY_DOWN)
(move win (+ y 1) x))
((eqv? key #\esc) 'normal-mode)
(else (insch win (normal key) #:y y #:x (+ x 1)))))
(define (normal-mode-process-input win key)
(define y (getcury win))
(define x (getcurx win))
(cond
((or (eqv? key KEY_LEFT)
(eqv? key #\h))
(move win y (- x 1)))
((or (eqv? key KEY_RIGHT)
(eqv? key #\l))
(move win y (+ x 1)))
((or (eqv? key KEY_UP)
(eqv? key #\k))
(move win (- y 1) x))
((or (eqv? key KEY_DOWN)
(eqv? key #\j))
(move win (+ y 1) x))
((eqv? key #\i) 'insert-mode)
((eqv? key #\q)
(endwin)