मैक ओएस एक्स: टर्मिनल पर vim कैसे खोलें, जब किसी फ़ाइल पर डबल क्लिक करें


19

मैंने अपने स्वयं के कस्टम विम फ़ाइल प्रकार को हाइलाइटिंग आदि के साथ परिभाषित किया है। जब मैं उस पर डबल क्लिक करता हूं तो मैं टर्मिनल आधारित विम का उपयोग करके इसे खोलना चाहता हूं। मैं मैक ओएस एक्स का उपयोग कर रहा हूं। कैसे इस पर शुरू करने के लिए कोई संकेत?

जवाबों:


17

निम्नलिखित एपलीस्क्रिप्ट को चलाने के लिए एक स्वचालित अनुप्रयोग बनाएँ:

on run {input}
   set the_path to POSIX path of input
   set cmd to "vim " & quoted form of the_path
   tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
   tell application "Terminal"
      activate
      if terminalIsRunning is true then
         do script with command cmd
      else
         do script with command cmd in window 1
      end if
   end tell
end run

ऑटोमेकर एप्लीकेशन को सेव करें। (उदा। इसका नाम विम लांचर रखें )

अपने कस्टम विम-टाइप फ़ाइल पर राइट क्लिक (या कंट्रोल-क्लिक) (जैसे। एक्सटेंशन के रूप में .vim का उपयोग करें) और के साथ ओपन के तहत ... नीचे का विकल्प अन्य चुनें ... और अपना ऑटोमेटर एप्लिकेशन (जैसे। विम लॉन्चर ), डबल- खोजें। इसे क्लिक करें।

बूम।


4
स्वचालक में बनाने के लिए, आप क्लिक कर सकते हैं New Document, का चयन Applicationटेम्पलेट। में Actions->Libraryटैब पर क्लिक करें Utilitiesतो, Run AppleScript
केवरिस

1
Yosemite में काम नहीं करता है।
कीवान

मुझे योसेमाइट में काम करने वाली चीजें मिलीं, हालाँकि मैं iTerm का उपयोग करता हूँ: thepugautomatic.com/2015/02/open-in-iterm-vim-from-finder
हेनरिक एन

मेरे लिए योसेमाइट में काम करता है। एक अजीब मामला है, हालांकि
इलियास करीम

1
यह १०.१२.५ पर iTerm के साथ काम करने के लिए प्रतीत नहीं होता है
oarfish

1

पांच या इतने मिनट से मैंने इसके साथ खेलने के लिए यह देखने के लिए खर्च किया कि क्या मैं ऐसा करने के लिए एक अंतर्निहित विकल्प नहीं ढूंढ सका।

हालाँकि, आप शायद एक सरल अप्प्लस्क्रिप्ट लिख सकते हैं जो फ़ाइलों को पूर्ण पथ पर ले जाएगा और फिर vim {path}बैश शेल में चलाएगा ।


1
set the_path to POSIX path of input
   set cmd to "vim " & quoted form of the_path & "; exit"
   tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
   tell application "Terminal"
      if terminalIsRunning is true then
         do script with command cmd
      else
         do script with command cmd in window 1
      end if
      activate
   end tell
end run

मैं इसके बजाय इस AppleScript का उपयोग करता हूं। यह Spaces का उपयोग करते समय अजीब से कार्य करने से रोकने के लिए Terminal.app के बाद (पहले नहीं!) निष्पादन को सक्रिय करता है। यह विम के बाहर निकलने के बाद खिड़की को भी बंद कर देता है। क्लीन एक्सिट्स के बाद ही टर्मिनल को सेट करें।


1

मैं सिर्फ योसमाइट में काम करने के लिए आवश्यक कोड परिवर्तनों के साथ स्वीकृत उत्तर में एक टिप्पणी जोड़ना चाहता था, लेकिन चूंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है, इसलिए मैं एक टिप्पणी नहीं जोड़ सका, और इसलिए उत्तर के माध्यम से उत्तर देने का प्रयास कर रहा हूं।

Mavericks में "फाइंडर से टर्मिनल में ओपन फाइल" स्क्रिप्ट ठीक काम कर रही थी, लेकिन योसेमाइट में अपग्रेड के बाद इसने काम करना बंद कर दिया। Yosemite में, स्वीकृत उत्तर में कोड केवल पहली बार काम करेगा - जब मैं खोजक में पहली फ़ाइल को डबल क्लिक करता हूं, तो यह ठीक खुलता है, लेकिन जब मैं बाद की फ़ाइलों को क्लिक करता हूं, तो वे रिक्त नई टर्मिनल विंडो खोलेंगे (vim कमांड प्रॉम्प्ट के साथ खुला नहीं होगा)।

कई साइटों के माध्यम से जाने के बाद, एक संस्करण है कि बस ठीक काम करता है के साथ मिलकर cobbled। मुझे यकीन है कि इसे करने का एक बेहतर तरीका है, लेकिन मुझे एप्सस्क्रिप्ट के साथ कोई अनुभव नहीं है और इसलिए किसी भी सुधार का सुझाव देने के लिए इसे दूसरों पर छोड़ देंगे।

on run {input}
    set the_path to POSIX path of input
    -- set cmd to "vim " & quoted form of the_path
    -- we can do a change directory to make NerdTree happy
    set cmd to "clear;cd `dirname " & the_path & "`;vim " & quoted form of the_path & "; exit"

    tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
    tell application "Terminal"
        if terminalIsRunning is true then
            -- CHANGED code starts --
            set newWnd to do script with command cmd
            do script with command cmd in newWnd
            -- CHANGED code ends --
        else
            do script with command cmd in window 1
        end if
        activate
    end tell
end run

टचबार के साथ 2017 मैकबुक प्रो में, मुझे पता चलता है कि [स्वीकृत उत्तर] ( superuser.com/a/139949/44785 ) ठीक काम करता है। लेकिन मैं अभी भी "चेंज डायरेक्टरी" (cd) लाइन जोड़ना चाहता हूं ताकि यह सुनिश्चित किया जा सके कि फ़ाइल कहाँ है। यह NerdTree को ओपन फाइल के फोल्डर से केवल फाइलों को प्रदर्शित करने में मदद करता है।
प्रोटिओयर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.