मैं शॉर्टकट सी-सी सी-एक्स के साथ हेक्सल-मोड का उपयोग कर फ़ाइल खोलने के लिए नियोट्री का विस्तार करने की कोशिश कर रहा हूं। कोई यह कैसे करेगा?

मैंने नियोट्री लोड के बाद एक प्रमुख परिभाषा का मूल्यांकन करने की कोशिश की है जहां यह my/neotree-hex का उपयोग करके नियो-बफर--गेट-फाइलनाम-करंट-लाइन का उपयोग करके फ़ाइल पथ खोलने के लिए उपयोग करता है।

(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))
0
shoaloak 5 जुलाई 2019, 13:22

1 उत्तर

सबसे बढ़िया उत्तर

कम से कम, आप फ़ंक्शन में (खाली) तर्क सूची खो रहे हैं:

(defun my/neotree-hex ()
    (hexl-find-file neo-buffer--get-filename-current-line))

मुझे नहीं पता कि neo-buffer--get-filename-current-line क्या है: यदि यह एक फ़ंक्शन है, तो आप इसे सही तरीके से कॉल नहीं कर रहे हैं - लिस्प में, आप (नाम) फ़ंक्शन और इसके तर्कों को माता-पिता में संलग्न करके एक फ़ंक्शन कहते हैं: (func arg1 arg2 ...)[1]; इसलिए यदि यह है एक फ़ंक्शन है और इसमें कोई तर्क नहीं है, तो आपका फ़ंक्शन शायद इस तरह दिखना चाहिए:

(defun my/neotree-hex ()
    (interactive)
    (hexl-find-file (neo-buffer--get-filename-current-line)))

इसे एक कुंजी से बाँधने में सक्षम होने के लिए, आपको अपने कार्य को एक कमांड, जिसका मतलब है कि आपको (interactive) फॉर्म जोड़ना होगा।

अस्वीकरण: मैं neotree के बारे में कुछ नहीं जानता।

[१] आप लिस्प का परिचय पढ़ना चाहेंगे। एक (विशेष रूप से Emasc Lisp के अनुरूप) emacs दस्तावेज़ीकरण के साथ शामिल है, लेकिन यह भी है। ऑनलाइन उपलब्ध। अंत में, आप Emacs Lisp संदर्भ मैनुअल। किसी फ़ंक्शन को कॉल करना है परिचय में शामिल है और इसमें शामिल है संदर्भ में विवरण.

1
NickD 6 जुलाई 2019, 16:48