मैं Emacs लिस्प के साथ एक निष्पादन योग्य मार्ग कैसे पा सकता हूं?


16

मेरा वर्तमान उपयोग मामला यह है कि Caskनिष्पादन योग्य कहां है (यह कम से कम दो स्थानों पर स्थापित किया जा सकता है, और इस बारे में एक मुद्दा खुला है)।

मुझे इस तरह पीपा लगाने की आवश्यकता है:

(require 'cask "~/.cask/cask.el")

लेकिन मुझे उस के लिए सही रास्ता खोजने की आवश्यकता है cask.el, और जहाँ तक मुझे पता है, ऐसा करने का सबसे आसान तरीका निष्पादन योग्य का पता लगाने के माध्यम से है।

मैं यह कैसे कर सकता हूँ?


6
है executable-findकि आप क्या ढूंढ रहे हैं?
लेगोस्कोपिया

2
क्या आप निष्पादन योग्य या लिस्प लाइब्रेरी फ़ाइल चाहते हैं? पीपा दोनों है।
शॉस्ती

ऐसा लगता है कि आप दो अलग चीजें पूछ रहे हैं। क्या आप पीपा निष्पादन योग्य का पता लगाना चाहते हैं? या cask.el लाइब्रेरी फ़ाइल (जो एक निष्पादन योग्य नहीं है)? कृपया अपने प्रश्न और शीर्षक में संशोधन करें।
मालाबार

जवाबों:


17

@ सिग्मा का उत्तर एक अच्छी शुरुआत है, लेकिन यह निष्पादन द्वारा फ़िल्टर नहीं करता है, और न ही अतिरिक्त प्रत्ययों के लिए अनुमति देता है। खिड़कियों पर, उदाहरण के लिए, रनिंग aआह्वान कर सकती है a.exe, यदि वह आपके मार्ग में है।

तो उपयोग करें executable-find; यदि आप उत्सुक हैं, तो यहाँ परिभाषा (Emacs के स्रोतों से ली गई है):

(defun executable-find (command)
  "Search for COMMAND in `exec-path' and return the absolute file name.
Return nil if COMMAND is not found anywhere in `exec-path'."
  ;; Use 1 rather than file-executable-p to better match the behavior of
  ;; call-process.
  (locate-file command exec-path exec-suffixes 1))

3

सुनिश्चित नहीं है कि मैं पूरी तरह से समझता हूं (मैं खुद कास्क का उपयोग नहीं कर रहा हूं), लेकिन क्या निम्नलिखित आपको सही रास्ते पर लाएगा?

(locate-file "cask" exec-path)

यह आपके सामान्य प्रश्न का उत्तर प्रतीत होता है।


3
निष्पादन योग्य के लिए विशेष रूप से आपको बल्कि उपयोग करना चाहिए executable-find
चंद्र

0

आंशिक उपसर्ग पर निष्पादन योग्य पथ:

(locate-file-completion-table
   exec-path
   exec-suffixes
   ;; here is prefix like "emacs" gives "emacs21"/"emacs22"/"emacs-nox"
   (thing-at-point 'filename)
   'identity
   t)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.