বাফারের শেষ না হওয়া পর্যন্ত একটি ভিআইএম ম্যাক্রো পুনরায় খেলুন


85

আমি একটি ম্যাক্রো চালাতে চাই আমি কেবল " x" আমার রেফারেন্সে একটি ওপেন বাফারের প্রতিটি লাইনে, আমার কার্সার থেকে বাফারের শেষ অবধি, ভিমে রেকর্ড করেছি । আমি কেমন করে ঐটি করি?

আমি জানি আমি ম্যাক্রোগুলিকে পুনরায় খেলতে পারি:

15@x

... বা @আমি শেষ লাইনে পৌঁছানো অবধি কেবল চেপে ধরে থাকি , তবে আমি কেবল কয়েকটি কীস্ট্রোক আঘাত করতে এবং এটি দিয়ে শেষ করতে চাই।

আগাম ধন্যবাদ.


15 @ x উইন্ডোজ জিভিআইএম
শি

উত্তর:


102

ব্যক্তিগতভাবে আমি করতাম

VG:normal @x

সম্পাদনা করুন: আপনার নির্দিষ্ট করা একটিতে নিবন্ধিত পরিবর্তন হয়েছে।


সুন্দর. আমি পছন্দ করি যে এই সমাধানটি কেবলমাত্র নির্বাচিত জায়গায় কাজ করে।
কেভিন

আমি এটিকে নরেনাম্যাপে <সি - @> ভিজি: আদর্শ @ কিউ <সিআর>
পিএএস

আমি ম্যাক্রো "1z =] s" দিয়ে এটি চেষ্টা করেছি তবে এটি কেবল প্রতিটি লাইনের প্রথম শব্দটি বানান-স্থির করে, বাকী অংশটি এড়িয়ে যায়।
এলিগ

@ এলিগ আপনি সম্ভবত একটি পুনরাবৃত্ত ম্যাক্রো তৈরি করতে চান যা সমস্ত লাইনে হারিয়ে যাওয়া শব্দ খুঁজে পাবে।
রমন

67

আপনি করতে পারেন (কমান্ড মোডে)

:%normal @x

আমি এই সমাধানটি পছন্দ করি তবে আইল বাফারের প্রতিটি লাইনে ম্যাক্রো চালিত করবে, ওপি কেবল তার কার্সার থেকে শেষ পর্যন্ত জিজ্ঞাসা করলেন।
পোরঙ্গা

24

পুনরাবৃত্ত ম্যাক্রো করুন:

qa@aq

প্রাক্তন:

qa0gUwj@aq

এটি একক @a এর সাথে বর্তমান পংক্তির থেকে ফাইলের শেষ পর্যন্ত প্রথম শব্দটি ব্যবহার করবে UP তবে নিশ্চিত করুন "একটি নিবন্ধক খালি আছে:

let @a=""

4
দুর্দান্ত। এই পদ্ধতির পদ্ধতির চেয়ে বেশি কার্যকর %:normalকারণ এটি ম্যাক্রোর মধ্যে যে কোনও লাইন চলাচলকে সম্মান করে, তাই লাইনগুলি ফর্মের ক্ষেত্রে অভিন্ন না হলে এটি কার্যকর। ক্রিয়াটি সংজ্ঞায়িত করতে একটি ম্যাক্রো 'এ' তৈরি করা সহজ এবং তারপরে ম্যাক্রো 'বি' পুনরাবৃত্ত বিট, অর্থাৎ কিউবি @ এ @ বিকিউ করতে হবে find
পল রুয়ান

4
আপনার ম্যাক্রোতে কোনও অনুসন্ধান জড়িত থাকলে এটি এড়িয়ে চলুন, কারণ এটি শীর্ষ থেকে অবিরত থাকবে। ctrl-cথেমে গেলে যদি হয়!
আইয়েন বল্লার্ড

4
আইইনব্যালার্ড, :set nowrapscanফাইলটির শেষের দিকে পৌঁছানোর সময় এটি ব্যর্থ হয়ে থামায় এবং থামায়।
এরিকবিএন

4
পরিষ্কার করার জন্য একটি রেজিস্টার করো, সহজভাবে না qaqম্যাক্রো আগে: qaqqa0gUwj@aq। অতিরিক্তভাবে, আপনি যদি @qশেষে রেখে দিতে ভুলে যান তবে আপনি সর্বদা qAএকটি রেজিস্টার সংযোজন শুরু করতে এবং তারপর করতে পারেন @q। আমি সাধারণত কোনও কারণে q রেজি রেকর্ড করি কারণ এটি সহজ (পুনরাবৃত্ত ম্যাক্রোগুলির জন্য esp) এবং সাধারণত qqqqqgUiwj@qqদুটি ম্যাক্রোর পরিবর্তে শেষ করা যায় । প্রথম তিনটি qস্পষ্ট রেগ কিউ, দ্বিতীয় দুটি qরেকর্ডিং শুরু। Vim.wikia.com/wiki/Record_a_recursive_macro
dylnmc

আমার মনে হয় aqaq
নিবন্ধটি

12

999999@x, যদি না আপনার কাছে খুব বড় বাফার থাকে ...


6
শুধু %:normal @xবা কেন 1,$:normal @x?
নাথান ফেলম্যান

4
এটি অবশ্যই আরও মার্জিত সমাধান - আমার ধারণা 99999@xআপনি খুব তাড়াহুড়া করার সময় আপনি যে প্রাকৃতিক জিনিসটি নিয়ে এসেছেন :)
পিটার

4
আপনার 9999999 লাইন না থাকলে 9999999 @ x শেষ লাইনে এটি বহুবার চালানো যাবে না?
ডেভিড ওনিল

4
সবেমাত্র চেষ্টা করে দেখেছি। অধিবেশন স্থগিত সম্ভবত লাইনের শেষে না থামিয়ে মিলিয়ন বার এটি চালিয়ে যেতে পারে continues
সিডিআর

4
কমপক্ষে কিছু ক্ষেত্রে এটি প্রত্যাশার মতো আচরণ করবে না। এর সাথে পরবর্তী / এটিতে পূর্বের সন্ধানের সাথে একটি ম্যাক্রো রাখার বিষয়টি বিবেচনা করুন । সুতরাং, একবার ম্যাক্রো পুনরাবৃত্তি ফাইলের শেষে পৌঁছে, এটি শুরু থেকে অবিরত থাকবে। বিষয় সম্পর্কে ভিএম ডক । অনুসন্ধান মোড়ানো রোধ করতে, কেউ ব্যবহার করতে চাইতে পারেন : নওরেপস্ক্যান সেট করুন । এটি এমন একটি উদাহরণ যা আমি সামনে আসতে পেরেছিলাম, তবে এর অর্থ এই নয় যে আরও কিছু নেই। :% স্বাভাবিক @ এক্স তার উপরের উত্তরটিতে @ryan_s হিসাবে প্রস্তাবিত হওয়ার উপায়।
সের্গেই মার্কেলভ 18

-1

উইম উইকি থেকে, সংক্ষিপ্ত সংস্করণ: ম্যাক্রো @qqqq রেকর্ড করতে qqqqq এটি ব্যবহারের জন্য @Q রেকর্ডিং শেষ করতে (এবং ফাইলটির শেষ অবধি চলবে)


4
দয়া করে, আপনি কি ডকুমেন্টেশনে একটি রেফারেন্স যুক্ত করতে পারেন?
aturegano

4
@ প্রক্যাগানো আমার মনে হয় লেখক একটি পুনরাবৃত্ত ম্যাক্রো ব্যবহার করতে চেয়েছিলেন। দেখুন রেকর্ড একটি recursive ম্যাক্রো: তেজ উইকি আরও তথ্যের জন্য।
dylnmc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.