Как расширить Neotree, чтобы открыть файл с помощью hexl? - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь расширить Neotree, чтобы открыть файл, используя hexl-режим с ярлыком Cc Cx.Как можно это сделать?

Я пытался оценить определение ключа после загрузки Neotree, где он использует мой / neotree-hex, чтобы открыть путь к файлу, используя neo-buffer - get-filename-current-линия.

(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))

1 Ответ

1 голос
/ 05 июля 2019

Как минимум, вам не хватает (пустого) списка аргументов в функции:

(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)))

Чтобы иметь возможность связать ее с ключом, у вас естьсделать вашу функцию командой , что означает, что вам нужно добавить форму (interactive).

Отказ от ответственности: я ничего не знаю о neotree.

[1] Вы можете прочитать введение в lisp.Один (специально разработанный для Emasc Lisp) включен в документацию по emacs, но также доступен онлайн .В конце концов, вам захочется прочитать Справочное руководство по Emacs Lisp .Вызов функции описан во Введении и подробно описан в Справочнике .

...