আমি কীভাবে ভিমে একটি লাইনের শেষে ".w" মূল্যায়নের ফলাফল সন্নিবেশ করতে পারি?


5

আমি ভিমে জাভাস্ক্রিপ্টের একটি লাইন (বা অন্যান্য কোড) মূল্যায়ন করতে সক্ষম হতে চাই এবং ফলাফলটি লাইনের শেষে একটি মন্তব্যে উপস্থিত হতে চাই।

উদাহরণস্বরূপ, আমার কাছে যদি এমন ফাইল থাকে:

console.log(4 + 5);

এবং আমার কার্সারটি সেই লাইনে রয়েছে, এবং আমি আদেশটি ব্যবহার করি :.w !node -e, ফলাফল 9নীচের বাফারে উপস্থিত হবে। যদি আমি ব্যবহার করি :. !node -eতবে পুরো লাইনটি ফলাফলের সাথে প্রতিস্থাপন করা হবে 9,।

পরিবর্তে আমি কীভাবে একটি আদেশ তৈরি করতে পারি যা একটি মন্তব্যে ফলাফলটি লাইনের শেষের সাথে যুক্ত করবে, এরকম:

console.log(4 + 5);    // 9

এছাড়াও লক্ষণীয় বিষয় হ'ল এটি ব্যবহার :rকরে পরবর্তী লাইনে যা যা প্রিন্ট করা হবে তা মুদ্রণ করবে। কার্সারের নীচে লাইনে r !echo "This is text."" This is text." প্রবেশ করানো হবে । তবে একটি আদেশ যেমন ...

:r ". !node -e"

... ". !node -e"কমান্ডের পরিবর্তে ফাইল হিসাবে পড়ার চেষ্টা করবে ; আমি এই আচরণটি সত্যই বুঝতে পারি না, তবে এটি জিনিসগুলিকে কিছুটা স্বজ্ঞাত করে তোলে।

আমি এটম পাঠ্য সম্পাদক হাইড্রোজেন কার্নেলগুলি যেভাবে পরিচালনা করেন তার কোডের বামদিকে প্রদর্শিত কোডের ফলাফলের সাথে শেষের ফলাফলটি কিছুটা মনে করিয়ে দিতে চাই I'd পরিকল্পনাটি হ'ল বর্তমান লাইনটি স্বতঃ-মূল্যায়ন এবং ফলাফল প্রদর্শন করার জন্য একটি কী-বাইন্ডিং ( <C-Enter>বা <F5>) তৈরি করা ।

উত্তর:


3

আপনার লাইনগুলি দেখতে যদি: 4 + 5 = আপনি এমন কিছু ব্যবহার করতে পারেন:

 : মানচিত্র "_ay / = ^ মো ^ [!! প্রতিধ্বনি ^ রা \ | বিসি ^ এমকেজে
  1. _ ............... আসল লাইন শুরু করতে লাফাতে
  2. "ay / = ^ M ... to येঙ্ক অবধি = ইন বাফার এ
  3. ও ^ [ ........... একটি নতুন খালি লাইন তৈরি করুন
  4. !! .............. এই নতুন লাইনে ফলাফল লিখতে একটি শেল প্রোগ্রাম শুরু করুন
  5. ^ রা .......... বাফার কনটেন্ট ইন কোমন্ডে প্রবেশ করুন: প্রতিধ্বনি ^ রা \ | খ্রিস্টপূর্ব ^ এম
  6. কে .............. স্পষ্ট লাইনে যান
  7. .............. পরবর্তী লাইনে যোগ দিন (ফলাফল) aktual লাইনে
  8. সম্ভবত আপনি এক্স এর সাথে যোগ দিতে ফাঁকা মুছে ফেলতে চান

আমি আশা করি আপনি এই কি।


ওহ বাহ, এটি প্রায় নিখুঁতভাবে কাজ করে! এখন আমাকে কোড বিশ্লেষণের সাথে খাপ খাইয়ে নেওয়ার জন্য একটি উপায় খুঁজে বের করতে হবে। এই লাইনের শেষে পড়ার কোনও উপায় আছে এবং তারপরে লাইনটি পাইপ করার জন্য nodeবা python3তার পরিবর্তে? আমি কীভাবে এটি করব তা বুঝতে পেরে আমি গৃহীত উত্তর হিসাবে সেট করব, কারণ এই প্রযুক্তিগতভাবে আমার প্রশ্নের সঠিক উত্তর দেয় না। বলেছিল, এটা খুব ডাং কাছাকাছি!
কূটনীতিক

এটি যুক্ত করার জন্য, আমি মনে করি আপনার কাছে কমান্ডের প্রথম দুটি অক্ষর অদলবদল হয়েছে; এটা হওয়া উচিত _"ay/...
কূটনীতিক

2

হার্স্টের পরামর্শের জন্য ধন্যবাদ, আমি "মূল্যায়ন" কমান্ড লাইন বিকল্প আছে এমন কোনও ভাষা দিয়ে কীভাবে ভিমকে এটি করতে পারি তা বিশদ করতে সক্ষম হয়েছি। জাভাস্ক্রিপ্টের জন্য, আমি যে আদেশটি একসাথে রেখেছি তা নিম্নরূপ:

imap <F5> ^[_"ay$o//^[kJo^[!!node -e "^Ra"^MkJi
nmap <F5> _"ay$o//^[kJo^[!!node -e "^Ra"^MkJ

একটি ভাঙ্গনের জন্য:

  1. জন্য INSERTমোড ম্যাপিং, (Escape ^[) সাধারণ মোডে আয়।
  2. _"ay$পুরো লাইনটি রেজিস্টারে রাখে a
  3. o//^[kJ একটি মন্তব্যের জন্য "//" যুক্ত করুন।
  4. o^[ অন্য নতুন লাইন শুরু।
  5. !!node -e "^Ra"^M নোড.জেএস এর মাধ্যমে রেজিস্টার (লাইন) চালায় এবং ফলাফলটি বর্তমান লাইনে প্রদান করে।
  6. অবশেষে, kJমন্তব্য হয়ে ওঠার জন্য এই নতুন লাইনটিকে প্রথমটিতে টান দেয়।
  7. (জন্য INSERTমোড, iথেকে মোড ফেরৎ NORMALকরতে INSERTআবার।)

পাইথনের জন্য কয়েকটি ছোটখাটো সম্পাদনা করে একই কাজ করা যেতে পারে:

imap <F5> ^[_"ay$o#^[kJo^[!!python -c "import math; ^Ra"^MkJi
nmap <F5> _"ay$o#^[kJo^[!!python -c "import math; ^Ra"^MkJ

এর জন্য, //মন্তব্যটি পাইথনের সাথে প্রতিস্থাপন করা হয়েছে #। এছাড়াও, আমি স্বয়ংক্রিয়ভাবে mathমডিউলটি আমদানি করি , কারণ এটি দ্রুত গণনার জন্য এটি খুব কার্যকর হতে পারে।

আমার সুপারিশটি হ'ল এই ম্যাপিংগুলির প্রত্যেককে তাদের নিজস্ব ~/.vim/ftplugin/<language>.vimফাইলগুলিতে রাখুন এবং set ftplugin onআপনার জায়গায় রাখুন .vimrc। আপনি কোন ভাষার সাথে কাজ করছেন তার উপর ভিত্তি করে এটি ম্যাপিংকে পরিবর্তন করতে দেয়!

আমি আশা করি যে যে কেউ ভিমে ইন্টারেক্টিভভাবে কোড চালাতে চান সে এটি খুঁজে পেতে এবং সম্ভবত এটিতে আরও উন্নতি করতে পারে। একটি বিশাল "আপনাকে ধন্যবাদ!" এই প্রশ্নের উত্তর দেওয়ার জন্য এবং এই ছোট্ট প্রকল্পটিকে কিক-শুরুর জন্য হোর্স্টে যান !

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