.emacs

2012-01-03 16 views
7

में एक्सटेंशन के बिना बफर फ़ाइल नाम प्राप्त करें। मैं एक पोर्टेबल लाटेक्स कंपाइलर और एस के लिए आर को जोड़ने वाले पोर्टेबल एमएक्स के लिए शॉर्टकट बनाने की कोशिश कर रहा हूं, लेकिन मुझे .emacs (यह लिस्प है?) में उपयोग की जाने वाली भाषा के बारे में बहुत कम पता है.emacs

वर्तमान में मैं fullpath-relative-to-current-filehttp://xahlee.org/emacs/elisp_relative_path.html से प्राप्त उपयोग कर रहा हूँ .emacs के लिए पथ (जो USBDRIVE/Documents में है) प्राप्त करने के लिए, तो संकलक के सापेक्ष पथ हो और buffer-file-name जो विस्तार के विस्तार सहित पूर्ण पथ और फ़ाइल नाम है पर यह कहते हैं:

(global-set-key (kbd "C-c s") 
     (lambda() 
      (interactive) 
      (cond ((string-equal (file-name-extension (buffer-file-name)) "tex") 
       (shell-command (concat (fullpath-relative-to-current-file "../PortableApps/miktex/miktex/bin/pdflatex ") buffer-file-name))) 
      ) 
      (cond ((string-equal (file-name-extension (buffer-file-name)) "Rnw") 
       (shell-command (concat (fullpath-relative-to-current-file "../PortableApps/R/R-2.14.1/bin/R CMD Sweave ") buffer-file-name " --pdf"))) 
      ) 
     ) 
) 

यह मुझे का उपयोग tex फ़ाइल पर लाटेक्स चलाने के लिए और Sweave पर एक Rnw फ़ाइल पर करने की अनुमति देता है। अब मैं bibtex को कॉल शामिल करना चाहता हूं, लेकिन इसके लिए मुझे बिना विस्तार के tex फ़ाइल के फ़ाइल नाम और पथ की आवश्यकता है। मैं उसे कैसे कर सकता हूँ?

उत्तर

22

file-name-sans-extension आज़माएं। अधिक जानकारी के लिए, मैनुअल के File Name Components अनुभाग पढ़ें।

+2

धन्यवाद। '(फ़ाइल-नाम-संस-एक्सटेंशन बफर-फ़ाइल-नाम) 'काम किया। –