ITADN

Unable to re-bind some keys in vi mode

#3696Openharris-chris 创建于 2025-11-18
H
harris-chriscommented
Hello all I'm having a bit of trouble trying to, as the title suggests, override the vi key bindings. Currently my config looks like this: ``` (in-package #:nyxt-user) (defvar *my-keyscheme-map* (define-keyscheme-map "my-base" () nyxt/keyscheme:vi-normal (list "g b" (lambda-command switch-buffer* nil (switch-buffer :current-is-last-p t)) "h" 'switch-buffer-previous "l" 'switch-buffer-next ))) (define-configuration base-mode ((keyscheme-map *my-keyscheme-map*))) (define-configuration nyxt/mode/vi:vi-normal-mode ((keyscheme-map *my-keyscheme-map*))) (define-configuration web-buffer (default-modes (append '(nyxt/mode/vi:vi-normal-mode) %slot-default%)))) ``` So I'm: - defining a new keymap, based on `vi-normal` - using it in `base-mode` - also overriding `vi-normal-mode` with it - then trying to use vi-normal-mode, and thus my new keymap, in `web-buffer`. And this is half-working. Binding `g b` to open new buffer works fine. But binding `h` and `l` to the two switch-buffers, has no effect at all. This is on Linux 6.15 on an x86_64, nyxt comes from `nixpkgs` via Nix. System-information is: Nyxt version: 3.12.0 Renderer: GI-GTK Operating system kernel: Linux 6.15.7 Lisp implementation: SBCL 2.4.6 (Dynamic space size: 3221225472) Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.12 :NYXT-3 :NYXT-3.12.0 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2 :WEBKIT-2.48.3 :WEBKIT-2.48 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :MARK-REGION-GC :64-BIT :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS :SB-THREAD :SB-UNICODE :SBCL :UNIX) ASDF version: 3.3.1 ASDF registries: (NYXT-SOURCE-REGISTRY ENVIRONMENT-SOURCE-REGISTRY USER-SOURCE-REGISTRY USER-SOURCE-REGISTRY-DIRECTORY DEFAULT-USER-SOURCE-REGISTRY SYSTEM-SOURCE-REGISTRY SYSTEM-SOURCE-REGISTRY-DIRECTORY DEFAULT-SYSTEM-SOURCE-REGISTRY) Critical dependencies: (/build/source/_build/cl-cffi-gtk/gtk/cl-cffi-gtk.asd /build/source/_build/cl-gobject-introspection/cl-gobject-introspection.asd /build/source/_build/cl-webkit/webkit2/cl-webkit2.asd)
0 条评论