2008-11-03 25 views
46

में गोटो-फाइल vi "gf" कमांड के लिए emacs में कोई विकल्प है? अर्थ है कि कर्सर के नीचे मौजूद फ़ाइल को खोलने का प्रयास करें, तो यदि वास्तविक फ़ाइल नाम वास्तव में है।एमएक्स

धन्यवाद

उत्तर

69

आप find-file-at-point समारोह (जो भी ffap पर एलियास है) चाहते हैं। यह डिफ़ॉल्ट रूप से एक महत्वपूर्ण करने के लिए बाध्य नहीं कर रहा है, लेकिन आप

M-x ffap 

उपयोग कर सकते हैं या, आप अपने .emacs फ़ाइल में डाल कर सकते हैं: जैसे C-x C-f

(ffap-bindings) 

यह सामान्य find-file कुंजी बाइंडिंग के कई स्थान ले लेगा () ffap-आधारित संस्करणों के साथ। विवरण के लिए ffap.el में टिप्पणी देखें।

+0

धन्यवाद सीजेएम के साथ उपयोग करें! दिन के अच्छे emacs कैसे! मैं अपनी मुख्य बैच फ़ाइल से बुलाया गया एक और बैच फ़ाइल खोल सकता हूं। अतिथि अतिथि सी/सी ++ के लिए आसानी से काम करना चाहिए। Altough, मुझे नहीं लगता कि यह सही जावा क्लास खोल सकता है :) – swdev

+0

मैंने इसका परीक्षण नहीं किया है, और मुझे पता है कि यह चर्चा बहुत पुरानी है, लेकिन मुझे अभी यह पता चला है: 'आप जावा स्रोत फ़ाइल खोल सकते हैं या जावा में आयात कथन से निर्देशिका। स्रोत का स्थान ffap-java/स्रोत-निर्देशिकाओं के माध्यम से काम करने के लिए जाना जाना चाहिए। स्रोत या तो एक निर्देशिका नाम होना चाहिए जिसमें स्रोत हों, या जार संग्रह नाम जिसमें स्रोत हों। यहां स्रोत डाउनलोड करें। - सिन्स्क '(स्रोत: https://www.emacswiki.org/emacs/FindFileAtPoint) – linluk

5

धन्यवाद, यह काफी अच्छा काम करता है लेकिन किसी भी तरह vi (gf) संस्करण अभी भी कुछ हद तक स्मार्ट है। मुझे लगता है कि यह खोज पथ के लिए कुछ पथ चर देखता है।

मैंने कुछ ऐसा किया जो अनिवार्य रूप से जटिल है लेकिन मेरे लिए काम करता है (केवल लिनक्स में)। यह कर्सर के नीचे पथ खोजने के लिए "पता लगाएँ" कमांड का उपयोग करता है। मुझे लगता है कि इसे वर्तमान फ़ाइल के सापेक्ष पथ को खोजकर पहले स्मार्ट बनाया जा सकता है। मेरे बुरे elisp कौशल के लिए खेद है ... यह शायद एक बहुत अच्छे तरीके से हासिल किया जा सकता है। अपने .emacs में

डाल, तो एम एक्स गोटो फ़ाइल

(defun shell-command-to-string (command) 
    "Execute shell command COMMAND and return its output as a string." 
    (with-output-to-string 
    (with-current-buffer standard-output 
     (call-process shell-file-name nil t nil shell-command-switch command)))) 

(defun goto-file() 
    "open file under cursor" 
    (interactive) 
    (find-file (shell-command-to-string (concat "locate " (current-word) "|head -c -1")))) 
+2

मेरे Emacs में पहले से ही सरल -el में परिभाषित शेल-कमांड-टू-स्ट्रिंग है – cjm

संबंधित मुद्दे