নোটপ্যাড ++ এর জন্য একটি নতুন ম্যাক্রো বৈশিষ্ট্য স্ক্রিপ্ট করতে NppExec এবং রুবি ব্যবহার করে


8

আমি মার্কিন যুক্তরাষ্ট্র এবং ইউরোপে কাজ করি এবং লগ বা নোটগুলি অনুসন্ধান করার সময় মাস / দিন (মার্কিন) এবং দিন / মাসের (ইইউ) ফর্ম্যাটগুলির মধ্যে স্যুইচিং অস্পষ্টতার দিকে নিয়ে যায় (উদাহরণস্বরূপ 7/8/12 জুলাই 8 ই বা 7 ই আগস্ট?)

আমি আন্তর্জাতিক ফর্ম্যাটটি ব্যবহার করতে নোটপ্যাড ++ টাইমস্ট্যাম্প বৈশিষ্ট্যটি পরিবর্তন করতে চাই

YYYY-MM-DD--DAY--HH:MM

2012-08-19--Sun--20:30

দ্রষ্টব্য, সপ্তাহের DAY বানানটি একটি অতিরিক্ত অতিরিক্ত হতে পারে এবং এটি ক্যালেন্ডারে কোন দিন ছিল তা সন্ধান করা এড়ানো হবে।

বর্তমানে এনপিপিতে এই নমনীয়তা নেই। কোনও ধরণের ম্যাক্রো বা স্ক্রিপ্ট ব্যবহার করে এটি করার কোনও উপায় আছে, সম্ভবত রুবি ব্যবহার করে?


ডিডি ও ডে এবং ডে ও এইচ এইচ-এর মধ্যে ড্যাশগুলি কী কী?
লুই

ডাবল ড্যাশগুলি - সময় থেকে তারিখটি দৃশ্যত সেট-অফ করতে হবে। এর চেয়ে নান্দনিকভাবে আনন্দদায়ক বলে মনে হচ্ছে 2012-08-19-Sun-20:30। (টাইমস্ট্যাম্পটি অক্ষরের একক ইউনিট হতে চান, তাই স্পেস চান না ...) সেই অনুযায়ী প্রশ্নটি সম্পাদনা করেছেন।
আসাদ ইব্রাহিম

1
নোটপ্যাড ++ ব্যবহারের বাইরে থাকা শক্তিশালী ফিচারসেটের কারণে নোটপ্যাড ++ ব্যবহার করে কয়েক বছর ধরে ভারী কোডিংয়ের কাজটি করার পরে, আপনি জিইআইআইয়ের মধ্যে থেকে কোনও স্ক্রিপ্টিং ভাষার সাহায্যে কতবার এটি প্লাগ করতে সক্ষম হতে চেয়েছিলেন তা আপনার কোনও ধারণা নেই। এই পোস্ট করার জন্য ধন্যবাদ!
বেন রিচার্ডস

উত্তর:


6

এনপিপেক্সেক্স প্লাগইন এবং রুবি ব্যবহার করে কীভাবে এটি করবেন তা ভাগ করে নেওয়া।

সমাধান:

পদ্ধতির : ফর্ম্যাটেড টাইমস্ট্যাম্পটি ফিরিয়ে আনতে এবং এনপিপেক্সের কাছে এটি পাওয়ার জন্য একটি বহিরাগত স্ক্রিপ্টিং ভাষা পান (নোটপ্যাড ++ এ দেখানো বর্তমান ফাইলটিতে কার্সার অবস্থানে .োকান) Get

প্রথমে কনসোলটি কনফিগার করুন:

    npe_console v+   // set console to receive output in $(OUTPUT) variable
    npe_console d+   // set current working directory to same as current file

তারপরে NppExec> এক্সিকিউট মেনু কমান্ডে, নিম্নলিখিত স্নিপেটটি প্রবেশ করান:

    // Diary snippet (Generates timestamp YYYY-MM-DD--DAY--HH:MM for NPP++)
    npp_console disable     // turn off output displaying to console
    // this ruby one-liner does the work
    ruby -r Date -e "dt=DateTime.now; dname = Date::ABBR_DAYNAMES[dt.wday]; puts dt.strftime(\"%Y-%m-%d--#{dname}--%H:%M\");"  
    sel_settext $(OUTPUT)   // put result at cursor in current file
    npp_console enable      // restore output displaying to console
    npp_console 0           // hide the console window

এটি টাইমস্ট্যাম্প তৈরি করতে রুবি ইঞ্জিন ব্যবহার করে এবং নোটপ্যাড ++ এর কার্সার বর্তমান ফাইলে যেখানে সন্নিবেশ করিয়েছে। ফলাফল (প্রায় 500 মিমি দেরি সহ) টাইমস্ট্যাম্প:

    2012-08-20--Mon--20:16

দ্রষ্টব্য: যদিও এটি অবশ্যই কাজটি করে, কারও কাছে যদি এমন কোনও সমাধান থাকে যা বাহ্যিক কোনও কিছুর উপর নির্ভর করে না (এই ক্ষেত্রে রুবি), এটি আরও ভাল।


সম্পাদনা করুন: "উত্পাদন" সমাধানটি ... (দৃust়তা এবং সুবিধা)

নীচের পদক্ষেপগুলি অনুসরণ করে উপরের সমাধানটি উত্পাদন করা যেতে পারে ...

একটি বাধা হ'ল নোটপ্যাড বন্ধ করা ++ কনসোল কনফিগারেশন হারিয়ে ফেলেছে, তাই প্রতিটি পুনঃসূচনাতে এটি সেটআপ করতে হবে।

সুতরাং আমরা নোটপ্যাড ++ শুরু হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে চালিত স্ক্রিপ্ট হিসাবে কনসোল কনফিগারেশন সেট আপ করেছি।

তারপরে সুবিধার জন্য ডায়েরি স্ক্রিপ্টের সাথে একটি কীবোর্ড শর্টকাট (হটকি) যুক্ত করুন।

পদক্ষেপ 1: ডায়রি কোডটি এনপিপেক্সেক্স এক্সিউট ... ডায়ালগটিতে প্রবেশ করান: Plugins > NppExec > Execute...এটি একটি নাম দিয়েছিলেন (আপনি পরে সেই নামটি ব্যবহার করবেন)

পদক্ষেপ 1 - ডায়েরি কোড লিখুন

পদক্ষেপ 2: সেটআপ_কনসোল কনফিগারেশন কোডটি একইভাবে প্রবেশ করুন:

পদক্ষেপ 2 - কনসোল কনফিগারেশন কোড প্রবেশ করান

3 পদক্ষেপ, 4, 5: ইন Plugins > NppExec > Advanced Options, প্রারম্ভেই চালান সেট setup_console (3) ডায়েরি কোড (4) জন্য একটি মেনু আইটেম তৈরি, এবং মধ্যে মেনু আইটেম করা Macroমেনু (5):

পদক্ষেপ 3,4,5 - এটি সমস্ত সেটআপ করা হচ্ছে

পদক্ষেপ:: ডায়েরি স্ক্রিপ্টে একটি কীবোর্ড হটকি (শর্টকাট) সেট করুন: Settings > Shortcut Mapper... > Pluginsএবং আপনার ব্যবহৃত ডায়েরি স্ক্রিপ্টের নাম না পাওয়া পর্যন্ত স্ক্রোল করুন ...

পদক্ষেপ - - কীবোর্ড শর্টকাট

ফলাফল:Macros মেনু কমান্ডের অধীনে আপনি কিবোর্ড শর্টকাট সহ আপনার নতুন টাইমস্ট্যাম্প কমান্ডটি দেখতে পাবেন।

ফলাফল - সম্পন্ন

সম্পন্ন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.