如何扩展 Neotree 以使用 hexl 打开文件?
How to extend Neotree to open a file using hexl?
我正在尝试扩展 Neotree 以使用十六进制模式和快捷方式 C-c C-x 打开文件。如何做到这一点?
我尝试在 Neotree 加载后评估关键定义,它使用 my/neotree-hex 使用 neo-buffer--get-filename-current-line 打开文件路径。
(defun my/neotree-hex
(hexl-find-file neo-buffer--get-filename-current-line))
(with-eval-after-load 'neotree
(define-key neotree-mode-map (kbd "C-c C-x")
'my/neotree-hex))
至少,您缺少函数中的(空)参数列表:
(defun my/neotree-hex ()
(hexl-find-file neo-buffer--get-filename-current-line))
我不知道 neo-buffer--get-filename-current-line
是什么:如果它是一个函数,那么您没有正确调用它 - 在 lisp 中,您通过包含函数的(名称)及其函数来调用函数括号中的参数:(func arg1 arg2 ...)
[1];所以如果它 是 一个函数并且它不带任何参数,那么你的函数应该看起来像这样:
(defun my/neotree-hex ()
(interactive)
(hexl-find-file (neo-buffer--get-filename-current-line)))
为了能够将它绑定到一个键上,你必须让你的函数成为 command,这意味着你需要添加 (interactive)
形式。
免责声明:我对neotree
一无所知。
[1] 您可能想阅读 lisp 简介。一个(专门为 Emasc Lisp 定制)包含在 emacs 文档中,但也是 available online. Eventually, you will want to read the Emacs Lisp Reference Manual. Calling a function is covered in the Introduction and is covered in detail in the Reference.
我正在尝试扩展 Neotree 以使用十六进制模式和快捷方式 C-c C-x 打开文件。如何做到这一点?
我尝试在 Neotree 加载后评估关键定义,它使用 my/neotree-hex 使用 neo-buffer--get-filename-current-line 打开文件路径。
(defun my/neotree-hex
(hexl-find-file neo-buffer--get-filename-current-line))
(with-eval-after-load 'neotree
(define-key neotree-mode-map (kbd "C-c C-x")
'my/neotree-hex))
至少,您缺少函数中的(空)参数列表:
(defun my/neotree-hex ()
(hexl-find-file neo-buffer--get-filename-current-line))
我不知道 neo-buffer--get-filename-current-line
是什么:如果它是一个函数,那么您没有正确调用它 - 在 lisp 中,您通过包含函数的(名称)及其函数来调用函数括号中的参数:(func arg1 arg2 ...)
[1];所以如果它 是 一个函数并且它不带任何参数,那么你的函数应该看起来像这样:
(defun my/neotree-hex ()
(interactive)
(hexl-find-file (neo-buffer--get-filename-current-line)))
为了能够将它绑定到一个键上,你必须让你的函数成为 command,这意味着你需要添加 (interactive)
形式。
免责声明:我对neotree
一无所知。
[1] 您可能想阅读 lisp 简介。一个(专门为 Emasc Lisp 定制)包含在 emacs 文档中,但也是 available online. Eventually, you will want to read the Emacs Lisp Reference Manual. Calling a function is covered in the Introduction and is covered in detail in the Reference.