Doom-emacs: [HOWTO] Tentukan perintah custom evil ex

Dibuat pada 12 Sep 2019  ·  3Komentar  ·  Sumber: hlissner/doom-emacs

Apa yang ingin saya capai
Karena saya canggung dengan melepaskan shift, saya ingin menambahkan versi kapital ': w' dan ': q' ke perintah ex jahat

Saya sudah mencoba sejauh ini:

;;doom.d/config.el
(evil-ex-define-cmd "W" #'write)
;;doom.d/config.el
(after! evil 
  (evil-ex-define-cmd "W" #'write)
)

Setelah memulai ulang emacs dan memasukkan :W , keduanya masih menghasilkan

Perintah tidak dikenal: '' W "

Saya juga mencoba after! evil-ex dan after! evil-ex-cmd , tidak ada kesenangan

Sistem Informasi


((emacs
(versi. "26.2")
(fitur. "XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBGETE XIM MODULESID
(build. "12 Apr 2019")
(buildopts "--build = x86_64-linux-gnu --prefix = / usr '--includedir = $ {prefix} / include' '--mandir = $ {prefix} / share / man' '--infodir = $ {prefix} / share / info '--sysconfdir = / etc --localstatedir = / var --disable-silent-rules' --libdir = $ {prefix} / lib / x86_64-linux-gnu '' --libexecdir = $ {prefix} / lib / x86_64-linux-gnu '--disable-maintainer-mode --disable-dependency-tracking --prefix = / usr --sharedstatedir = / var / lib --program-suffix = 26 - with-modules --with-file-notification = inotify --with-mailutils --with-x = yes --with-x-toolkit = gtk3 --with-xwidgets --with-lcms2 'CFLAGS = -g -O2 -fdebug-prefix-map = / build / emacs26-CYbeHB / emacs26-26.2 ~ 1.gitfd1b34b =. -fstack-protector-strong -Wformat -Werror = format-security -no-pie '' CPPFLAGS = -Wdate-time - D_FORTIFY_SOURCE = 2 '' LDFLAGS = -Wl, -Bsymbolic-functions -Wl, -z, relro -no-pie '"))
(malapetaka
(versi. "2.0.9")
(build. "HEAD -> develop, origin / develop, origin / HEAD a16838b7 2019-09-11 23:42:27 -0400"))
(sistem
(tipe. gnu / linux)
(config. "x86_64-pc-linux-gnu")
(shell. "/ bin / bash")
(hapus nama. "Linux 4.15.0-62-generic # 69-Ubuntu SMP Rab 4 Sep 20:55:53 UTC 2019 x86_64")
(jalur "~ / .cargo / bin" "~ / bin" "~ / .local / bin" "/ usr / local / bin" "~ / .cargo / bin" "~ / .local / bin" "~ / bin "" / usr / local / sbin "" / usr / local / bin "" / usr / sbin "" / usr / bin "" / sbin "" / bin "" / usr / games "" / usr / local / game "" / snap / bin "" ~ / .fzf / bin "" /usr/lib/x86_64-linux-gnu/emacs/26.2/x86_64-linux-gnu "))
(config
(envfile. envvar-file)
(file-elc. 0)
(modul: perusahaan penyelesaian ivy: ui doom doom-dashboard hl-todo modeline nav-flash ophints (popup + semua + default) vc-selokan vi-tilde-fringe jendela-pilih ruang kerja: editor file-template jahat lipat beberapa kursor putar -potongan teks: emacs dired electric vc: tools eval flycheck (lookup + docsets) magit: lang data emacs-lisp markdown (org + dragndrop + ipython + pandoc + present) python rest sh: config default)
(paket "org-caldav" "calfw" "calfw-org" "(ttl-mode: resep (: host github: repo jeeger / ttl-mode))")
(paket elpa "n / a")))

question elisp resolved

Komentar yang paling membantu

Ah, dalam hal ini karena "write" adalah string dan #'write adalah simbol. evil-ex-define-cmd memperlakukan string sebagai perintah ex untuk dieksekusi dan simbol sebagai referensi ke fungsi elisp. Anda harus melakukan:

;;doom.d/config.el
(evil-ex-define-cmd "W" "write")

Semua 3 komentar

Cuplikan pertama Anda benar:

;;doom.d/config.el
(evil-ex-define-cmd "W" #'write)

Namun, fungsi write tidak ada. Yang Anda inginkan adalah evil-write :

;;doom.d/config.el
(evil-ex-define-cmd "W" #'evil-write)

Terima kasih banyak! Saya disesatkan dengan nilai evil-ex-commands :

...
("write" . evil-write)
("w" . "write")
...

Di sini tampaknya w hanya mereferensikan write , yang sepertinya tidak berfungsi ketika saya melakukannya melalui evil-ex-define-cmd

Ah, dalam hal ini karena "write" adalah string dan #'write adalah simbol. evil-ex-define-cmd memperlakukan string sebagai perintah ex untuk dieksekusi dan simbol sebagai referensi ke fungsi elisp. Anda harus melakukan:

;;doom.d/config.el
(evil-ex-define-cmd "W" "write")
Apakah halaman ini membantu?
0 / 5 - 0 peringkat