ম্যাক ওএস এক্স: কোনও ফাইলে ডাবল ক্লিক করার পরে টার্মিনালে কীভাবে ভিএম খুলবেন


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
cevaris

1
ইয়োসেমাইটে কাজ করে না।
কিভান

আমি ইয়োসেমিতে কাজ করার জিনিস পেয়েছি, যদিও আমি আইটার্ম ব্যবহার করি: thepugautomatic.com/2015/02/open-in-iterm-vim-from-finder
হেনরিক এন

ইয়োসেমাইটে আমার জন্য কাজ করে। যদিও একটি অদ্ভুত প্রান্তের মামলা রয়েছে -
ইলিয়াস করিম

1
এটি 10.12.5
ওরিফিশ

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

আমি পরিবর্তে এই অ্যাপলস্ক্রিপ্ট ব্যবহার করি। স্পেস ব্যবহার করার সময় বিষয়টিকে অভিনব আচরণ থেকে বিরত রাখতে এটি কার্যকর করার আগে (এর আগে নয়!) টার্মিনাল.এপ সক্রিয় করে। এটি ভিমটি প্রস্থান করার পরে উইন্ডোটি বন্ধ করে দেয়। ক্লিন প্রস্থান শেষে বন্ধ করতে কেবল টার্মিনাল.এপ সেট করুন।


1

আমি কেবল ইয়াসেমাইটে এটির কাজ করার জন্য প্রয়োজনীয় কোড পরিবর্তনের সাথে স্বীকৃত উত্তরে একটি মন্তব্য যুক্ত করতে চেয়েছিলাম, তবে আমার যথেষ্ট খ্যাতি নেই বলে কোনও মন্তব্য যুক্ত করতে পারেনি, এবং তাই কোনও উত্তর দিয়ে উত্তর দেওয়ার চেষ্টা করছি।

"ফাইন্ডার থেকে টার্মিনাল থেকে ওপেন ফাইল" স্ক্রিপ্টটি ম্যাভেরিক্সে সূক্ষ্মভাবে কাজ করছিল, তবে ইয়োসেমাইটে আপগ্রেড হওয়ার পরে এটি কাজ করা বন্ধ করে দিয়েছে। ইয়োসেমাইটে, স্বীকৃত উত্তরের কোডটি কেবলমাত্র প্রথমবারের মতো কাজ করবে - এর অর্থ যখন আমি ফাইন্ডারে প্রথম ফাইলটি ডাবল ক্লিক করি তখন এটি সূক্ষ্মভাবে খোলে, তবে আমি যখন পরবর্তী ফাইলগুলিতে ক্লিক করি তখন তারা কেবল ফাঁকা নতুন টার্মিনাল উইন্ডো খুলবে (vim কমান্ড প্রম্পট সহ খুলবে না)।

একাধিক সাইটগুলির পরে যাওয়ার পরে, এমন এক সংস্করণকে একত্রে আবদ্ধ করেছেন যা ঠিকঠাক কাজ করে। আমি নিশ্চিত যে এটির করার আরও ভাল উপায় আছে তবে অ্যাপলস্ক্রিপ্টের সাথে আমার কোনও অভিজ্ঞতা নেই এবং তাই এটি কোনও উন্নতির পরামর্শ দেওয়ার জন্য এটি অন্যকে ছেড়ে দেব।

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 MacBook প্রো Touchbar সঙ্গে, আমি এটি যে [গৃহীত উত্তর] ( superuser.com/a/139949/44785 ) কাজ করে জরিমানা। পিডব্লিউডি ফাইলটি যেখানে রয়েছে তা নিশ্চিত করার জন্য আমি এখনও "পরিবর্তন ডিরেক্টরি" (সিডি) লাইন যুক্ত করতে চাই। এটি খালি ফাইলের ফোল্ডার থেকে কেবল ফাইলগুলি প্রদর্শন করতে নের্ডট্রিকে সহায়তা করে।
প্রোটোয়ার 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.