পুনরাবৃত্তি (।) এর জন্য একসাথে বান্ডিলিং কমান্ড সিক্যুয়েন্স


10

বিবেচনা:

apple
pear

আপনার কার্সারটিকে প্রথম লাইনে রাখুন এবং টাইপ করুন Yp, উত্পাদন করুন:

apple
apple
pear

আপনার কার্সারটি pearলাইনে রাখুন এবং .শেষ কমান্ডটি পুনরাবৃত্তি করতে টাইপ করুন । এটি কেবল p(সংমিশ্রণের চেয়ে Yp) পুনরুক্ত করে, উত্পাদন করে:

apple
apple
pear
apple

আমি শেষ উপায় .এন কমান্ড পুনরাবৃত্তি করতে একটি উপায় বলতে চাই । উত্পাদনের 2.জন্য সম্মিলনের পুনরাবৃত্তি করার মতো কিছু Yp:

apple
apple
pear
pear

এটি যে কাজ করবে না - এটি pদুইবার পুনরাবৃত্তি করে । তবে ধারণাটি হবে " শেষ 2 কমান্ডের ক্রম পুনরাবৃত্তি "।

আমি জানি আমি qকমান্ড সিকোয়েন্সগুলি পুনরায় রেকর্ড করতে পারি এবং সেগুলি দিয়ে পুনরায় পুনরায় পুনরুক্তি করতে পারি @@, তবে এই সমাধানটি আদর্শ নয়, কারণ এটির জন্য আপনাকে পাশাপাশি এগিয়ে যাওয়ার পরিকল্পনা করা দরকার, যদিও অনুশীলনে আপনি প্রায়শই বুঝতে পারি না যে আপনি কিছু পরে পুনরাবৃত্তি করতে হবে তুমি এটা করেছ

আমি যা চাই তা অর্জন করার কোনও উপায় আছে?

সান্ত্বনা পুরষ্কার: উপরেরটি যদি সম্ভব না হয় তবে শেষ ম্যাক্রো প্লেব্যাকটির পুনরাবৃত্তি করার কোনও উপায় আছে কি? উদাহরণস্বরূপ, যদি আমি @@আমার শেষ ম্যাক্রোটিকে প্লেব্যাক করতে টাইপ করি তবে আমি পরবর্তীটির জন্য আবার .টাইপ করার সমতুল্য হতে চাই @@- যা এটি নয় (উদাহরণস্বরূপ, যদি @@আপনি যে লাইনে আছেন তার উপর নির্ভর করে ফলাফল )


আমি আপনার সমস্যার প্রথম অংশের জন্য সমাধান জানি না, তবে দ্বিতীয় অংশের জন্য আপনি এই ম্যাপিংটি nno <silent> @@ @@:sil! call repeat#set('@@', v:count1)<CR>ব্যবহার করে দেখতে পারেন : তবে এটির কাজ করার জন্য আপনাকে এই প্লাগইনটি ইনস্টল করতে হবে: github.com/tpope/vim-repeat
user9433424

উত্তর:


4

ভিম শুধুমাত্র শেষ সম্পাদিত কমান্ড সংরক্ষণ করে এবং কেবল এটিই পুনরাবৃত্তি করে .; আমার মতে, অন্য যে কোনও কিছুই পরিচালনা করা কঠিন হবে would

আপনি যদি Ypকম্বোকে একটি একক সত্তা হিসাবে পুনরাবৃত্তি করার প্রয়োজনীয়তা অনুভব করেন , আপনাকে এটিকে একটি একক কমান্ড তৈরি করতে হবে। টিম পোপের পুনরাবৃত্তি.ভিম প্লাগইন কাস্টম ম্যাপিংয়ের জন্য এটি সহজেই করতে দেয়। অবশ্যই, যদি আপনি ম্যাপিংয়ের জন্য একটি সংক্ষিপ্ত কী [ক্রম] চয়ন করেন তবে আপনি কেবলমাত্র (পরিবর্তে .) পুনরায় টাইপ করতে পারেন এবং পুনরাবৃত্তি.ভিম সংহতকরণ এড়াতে পারেন।

বিটিডাব্লু , আমার লাইনজাগলার প্লাগইন]d বর্তমান লাইনটি সদৃশ করার জন্য একটি ম্যাপিং সরবরাহ করে এবং এটি পুনরুক্ত.ভিম এর মাধ্যমে পুনরাবৃত্তি সমর্থন করে।


2

ইন Yp, পুনরাবৃত্তি একমাত্র "পরিবর্তন" p। একমাত্র উপায় আমি আচরণকে পরিবর্তন করতে জানেন .স্বাভাবিক মোডে যোগ হয় yকরার cpoptionsবিকল্প:

set cpoptions+=y

যা আপনাকে সর্বশেষ ইয়াঙ্কের পাশাপাশি শেষ পরিবর্তনের পুনরাবৃত্তি করতে দেয়।

তবে এটি আপনার সমস্যার কোনও পরিবর্তন করে না কারণ Ypএখনও দুটি আদেশ রয়েছে: একটি ইয়ঙ্ক পরিবর্তিত।

আমি মনে করি না কিছু অপ্রয়োজনীয় স্ক্রিপ্টিং ছাড়া আপনি যা চান তা পেতে পারেন। আপনি কি ভিআইএম.আর.গির স্ক্রিপ্ট বিভাগটি একবার দেখেছেন ?


1

আমি প্রায়শই mapএই প্রভাবটি অর্জন করতে ব্যবহার করি । উদাহরণ স্বরূপ:

map <F12> Yp

তারপরে F12বারবার চাপানো কার্যকর হবে YpYpYpইত্যাদি আপনি যদি প্রতিটি পেস্টের পরে পরবর্তী লাইনে যেতে চান তবে Yp+পরিবর্তে একটি কী মানচিত্র করুন।


1

অসাধারণ বিদঘুটে চেহারার যে RepeatLast প্লাগইন (আমাদের খুব নিজের দ্বারা @joeytwiddle ) রেকর্ডিং এর অপবিত্র পদ্ধতির মাধ্যমে, শুধু এই কার্যকারিতা উপলব্ধ সবকিছু আপনি একটি ম্যাক্রো যেমন না।

এটা নতুন ম্যাপিং একটি নম্বর প্রদান করে, কিন্তু, আমি যদি ডকুমেন্টেশন সঠিকভাবে পড়া করছি, সম্পাদনাগুলি আপনি কমান্ড (আপনাকে ডিফল্ট ব্যবহার করছেন সাহসী ক্রম ব্যবহার করতে পারে বর্ণনা সম্পাদন করতে <leader>এর \):

  • Ypইয়াঙ্ক এবং লাইনটি লাগিয়ে / পেস্ট করুন apple,
  • jএকটি রেখা নীচে সরান যাতে কার্সার এখন pearলাইনে থাকে,
  • \Djআদেশ ভুলে যাও ,
  • 2\.দুটি কমান্ড পুনরাবৃত্তি করুন Yএবংp

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