একটি ম্যাক্রোতে শেষ ক্রিয়া (।) সংরক্ষণ করুন


9

ব্যবহারের ক্ষেত্রে

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

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

দ্বিতীয়টি আমি যা করতে চাই তা কিন্তু এটি করার সবচেয়ে সহজ উপায়টি সহজ নয় - আমার পরিবর্তনটি পূর্বাবস্থায় ফেরা, ম্যাক্রো রেকর্ডিং শুরু করুন এবং প্রয়োজনীয় পরিবর্তনটি করার জন্য কমান্ডটি পুনরায় টাইপ করুন এবং ম্যাক্রো রেকর্ডিং বন্ধ করুন।

আমি এতদূর যা চেষ্টা করেছি:

ম্যাক্রোতে ডট রেকর্ডিং কাজ করে না কারণ এটি বিন্দুটি রেকর্ড করে এবং বিন্দু সঞ্চালিত পরিবর্তনটি নয়। (উদাহরণস্বরূপ, ধরা যাক বিন্দুতে সঞ্চিত কমান্ডটি d5wযদি আপনি ম্যাক্রো রেকর্ড করা শুরু করেন এবং এর মাধ্যমে ক্রিয়াটি করেন expect এমন প্রত্যাশা করে যে প্রতিবার আপনি ম্যাক্রোটি চালাবেন তখন এটি 5 টি শব্দ মুছে ফেলবে, তবে তা ঘটবে না The পরের বার আপনি চালনা করবেন ম্যাক্রো এটি বিন্দু করবে এবং কমান্ডটি করবে না এর d5wঅর্থ এই যে আপনি যদি ম্যাক্রো রেকর্ড করার পরে অন্য কিছু পরিবর্তন করেন - তবে 3 টি শব্দ ব্যবহার করে মুছে ফেলুন d3wএবং এটি আপনার সম্পাদিত সর্বশেষ পরিবর্তন ছিল, আপনি যখন ম্যাক্রোটি চালাবেন তখন এটি 3 মুছে ফেলবে শব্দগুলি এবং 5 নয়, কারণ এটি কেবল চলছে .)


আপনি যা করতে চান তা উভয়ই বুঝতে লড়াই করছি এবং ম্যাক্রোর সাথে আপনি যা করেন না কেন আপনি তা করেন না।

1
@ ড্রেভাল ওপি একটি সাধারণ-মোড কমান্ড সম্পাদন করার পরে বুঝতে পারে যে তাদের এটি ম্যাক্রোর মধ্যে সংরক্ষণ করা উচিত ছিল এবং ম্যাক্রো রেকর্ড করার সময় এটি আবার টাইপ করতে চায় না।
সমৃদ্ধ

উত্তর:


2

ভিম আপনার সাধারণ মোড কমান্ডগুলির ইতিহাস রাখে না। আপনি যদি আপনার সাধারণ মোডের ইতিহাসের ইতিহাস রাখতে চান, তবে ফাইলটি সংরক্ষণ করতে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন: https://vi.stackexchange.com/a/587/13848

সাধারন মোড কমান্ডগুলি সাধারণত সংক্ষিপ্ত থাকে, তাই লোকেরা কেবল এটি সাধারণ মোডে টাইপ করে এবং ম্যাক্রোগুলি তৈরি করার চেষ্টা করে না। তবে আপনি যদি সাধারণ মোড কমান্ডগুলি থেকে ম্যাক্রোগুলি তৈরি করতে চান তবে আপনি এটি একটি Exমোড কমান্ডে রূপান্তর করতে পারেন এবং তারপরে @Wmmso এর নির্দেশিত হিসাবে এটি ম্যাক্রোতে সংরক্ষণ করতে পারেন। আপনি normকমান্ডটি ব্যবহার করে এটি করতে পারেন । সুতরাং আপনি যদি বর্তমান কার্সারের অবস্থান থেকে শুরু করে 2 টি শব্দ মুছতে চান এবং মোডের ব্যবহারে একটি সাধারণ মোড কমান্ড Exব্যবহার করতে চান :norm d2w। (তথ্যসূত্র: http://vimdoc.sourceforge.net/htmldoc/various.html#:nor , পরিসরের উপরে সাধারণ কমান্ড কার্যকর করুন )

Exএটি একটি জটিল কমান্ড হলে মোড কমান্ড ব্যবহার করা আরও ভাল , কারণ এটি আপনাকে একটি বাফারে পুরো কমান্ডটি টাইপ করতে দেয়, নিশ্চিত করে নিন যে এটি আসলেই সঠিক এবং কমান্ড লাইনের ইতিহাসে এটি সংরক্ষণ করে।

প্রাক্তন মোডে এখন আপনার সাধারণ মোড কমান্ডটি রয়েছে, আপনি ইতিহাসের মতো আপনার কমান্ডটিও ব্রাউজ করতে পারেন q:এবং তারপরে এটি ব্যবহার করে একটি রেজিস্টারে অনুলিপি "ay$করতে পারেন, আপনি যে ম্যাক্রোতে সংরক্ষণ করতে চান সেই কমান্ড লাইনটি রয়েছে। তারপরে আপনি যখন ম্যাক্রোটি চালাতে চান, আপনি এটি ব্যবহার করে কার্যকর করতে পারেন@a


আপনি কীভাবে কমান্ড লাইনে একটি সাধারণ মোড কমান্ড লিখবেন? উদাহরণস্বরূপ d2w?
পিয়ুষ কুশওয়াহা

উত্তরে কিছু স্পেসিফিকেশন যুক্ত করা হয়েছে .. এটি কি সাহায্য করে?
alpha_989

0

":" নিবন্ধের বিষয়বস্তু অন্য রেজিস্ট্রারে অনুলিপি করুন (যেমন আপনি কী করেছেন) যেমন একটি নিবন্ধ করুন:

:let @a = @:

আপনি এটি ব্যবহার করে আবার কার্যকর করতে পারেন

@a

এটি আমার পক্ষে im.৪-এ কাজ করে না। দেখে মনে হচ্ছে যে রেজিস্টারটিতে একটি সাধারণ মোড কমান্ডের পরিবর্তে :শেষ সম্পাদিত কমান্ড রয়েছে :command-name-goes-hereযেমনd2w
পিয়ুষ কুশওয়াহ

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