পছন্দসই স্থানে একাধিক কার্সার


14

আমি ভিআইএম-একাধিক-কার্সার প্লাগইন ব্যবহার করছি ।

আমি যেখানে চাই ঠিক সেখানে কার্সার রাখতে চাই। উদাহরণস্বরূপ ( [x]কার্সার অবস্থানগুলি):

Lorem ipsum dolor sit amet[1], consectetur adipiscing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna[2]
aliqua.

ইন সাবলাইম টেক্সট আমি সাধারণত প্রথমে কার্সার করা তারপর তীর কী এর মাধ্যমে পরবর্তী অবস্থানে যান এবং দ্বিতীয় করা হবে।

ভিআইএম-তেও কি তেমন কিছু আছে? এই প্লাগইন বা অন্য একটি দিয়ে।

সম্পাদনা

একটি মন্তব্যের পরে,
\section[My first section in this book]{My first section in this book}
কোনও .texফাইলে লেখার চেষ্টা করার সময় আমার আগ্রহটি প্রকাশিত হয়েছিল । আমার প্রথম প্রতিক্রিয়া লিখতে ছিল \section[]{}এবং তারপর অর্ডার ভিতরে একই জিনিস লিখতে দুই এক্সিকিউটেবল-এর পাথ করা []এবং {}

অন্যান্য উদাহরণটি _someStuffবিভিন্ন ভেরিয়েবলের নামের পরে যুক্ত করা হবে । উদাহরণস্বরূপ, এটি চালু করুন:

variable1 = 2
my_variable2 = 12
var3 = 14

এটিতে:

variable1_someStuff = 2
my_variable2_someStuff = 12
var3_someStuff = 14

একাধিক কার্সারের সাহায্যে আমি একটি কলাম কার্সার নির্বাচন করে এবং তারপরে শব্দের শেষে, তারপরে সন্নিবেশ ইত্যাদির সাহায্যে করতে পারি I তবে আমি অনুমান করি যে আমি কার্সারটি যেখানে চাই সেখানে ঠিক নির্বাচন করা সহজ।


1
আপনি দেখতে পেলেন: github.com/terryma/vim-m Multipleple
cursors/

1
আমি মনে করি যে একটি গুরুত্বপূর্ণ প্রশ্ন জিজ্ঞাসা করা হয় আপনি কেন এটি করতে চান? আপনি কি করতে চেষ্টা করছেন? একাধিক কার্সার ব্যবহার করা সত্যিই "ভিম পথে অনুসরণ করা" নয়, অন্তর্নির্মিত বৈশিষ্ট্যগুলি ব্যবহার করে আপনি যা চান তা করার জন্য সম্ভবত অন্যরকম উপায় রয়েছে।
স্ট্যাটক্স

@statox। সম্পাদনা দেখুন। আমি দুটি উদাহরণ দিলাম যা আমার মনে এসেছিল। দ্বিতীয়টি আমি ভিআইএম-মাল্টিপল-কার্সার প্লাগইন দিয়ে সম্পন্ন করতে পারি, তবে প্রথমটি আমি কমপক্ষে সহজ পদ্ধতিতে পারি না।
টমসায়নে

@ Nobe4। ধন্যবাদ, দ্বিতীয় স্ক্রিপ্ট এটি তৈরি করে।
টমসায়নে

উত্তর:


30

একাধিক কার্সার ব্যবহার করা কোন ভিমার জিনিস নয়

আমি যেমন মাল্টিমি কার্সার (এমনকি একটি প্লাগইন সহ) ব্যবহার করে মন্তব্যে বলেছিলাম যে আসলেই "ভিম পথে অনুসরণ করা" নয়, আমি পুরোপুরি বুঝতে পারি যে সাব্লাইম-টেক্সট থেকে আগত কারও পক্ষে এটি আকর্ষণীয় তবে আপনি প্রায়শই বিকল্প খুঁজে পেতে পারেন যা কমপক্ষে ভিম অন্তর্নির্মিত বৈশিষ্ট্যগুলির সাথে দক্ষ হিসাবে।

অবশ্যই, এই বিকল্প সমাধানগুলি সন্ধান করা সর্বদা সহজ নয় এবং কখনও কখনও সময় লাগে তবে এটি আপনার ভিমের অভিজ্ঞতার সাথে সহজ হয়ে যায় এবং আপনি দেখতে পাবেন যে সময়ের সাথে একাধিক কার্সার আপনার কাছে সম্পূর্ণ অকেজো বলে মনে হবে।

এটি দুর্দান্ত তবে আমি কীভাবে বিকল্প উপায় খুঁজে পাব?

কোনও সার্বজনীন উত্তর নেই যেহেতু এটি আপনি যা করার চেষ্টা করছেন তার উপর অনেক নির্ভর করে, আমি প্রথমে চেষ্টা করার জন্য প্রথমে কিছু ইঙ্গিত দেওয়ার চেষ্টা করব:


ডট কমান্ড .

ডট কমান্ড সম্ভবত ভিমের অন্যতম শক্তিশালী সরঞ্জাম, এটি আমাদের শেষ পরিবর্তনটি পুনরাবৃত্তি করতে দেয়। আমি তার প্র্যাকটিকাল ভিমে ড্রু নীলের চেয়ে এর চেয়ে ভাল ব্যাখ্যা করতে পারিনি । আমি মনে করি যে প্রতিটি ভিমারের এই বইটি পড়া বিবেচনা করা উচিত।

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

এটি মনে রেখে আপনি মাল্টিকার্সারের সাথে যা করতে চেয়েছিলেন তা করা সহজ:

  • প্রথমে আমাদের পরিবেশটি সেট আপ করা যাক: আপনার পরামর্শ অনুসারে লিখুন

    \section[]{}

  • তারপরে পুনরাবৃত্তিযোগ্য পরিবর্তন করুন কার্সারটি এখন চলছে }, চরিত্রটিতে F[ফিরে যেতে আঘাত করুন [। তারপরে সন্নিবেশ মোডটি প্রবেশ করুন iএবং টাইপ করুন My first section in this bookএবং এর সাথে স্বাভাবিক মোডে ফিরে যান ESC:

    \section[My first section in this book]{}

  • এবং এখানে ম্যাজিক অংশটি আসে: আসুন f{অক্ষরটিতে কার্সারটি লিখুন {এবং .শেষ পরিবর্তনটির পুনরাবৃত্তি করতে আঘাত করুন :

    \section[My first section in this book]{My first section in this book}

ডট কমান্ডের সমস্ত চ্যালেঞ্জ হ'ল পুনরাবৃত্তীয় পরিবর্তনগুলি কীভাবে করা যায় তা শিখতে হবে: এটি ভিমকে গ্রুকিংয়ের সাথে আসবে তবে মূলটি কীভাবে আপনার পরিবর্তনকে পুনরাবৃত্তিমূলকভাবে করা যায় তা বোঝা।

উদাহরণস্বরূপ কোনও রেখার শেষে একটি আধা কোলন সন্নিবেশ করানোর জন্য আপনি এর A;পরিবর্তে ব্যবহার করতে পছন্দ করবেন $a;। কেন?

কারণ A;একটি পারমাণবিক ক্রিয়া তৈরি করে তাই আপনি যখন .অন্য লাইনে ব্যবহার করবেন তখনই আপনি লাইনটিতে থাকুন না কেন আপনি শেষ প্রান্তে আধা কোলন প্রবেশ করান। যখন $a;আপনি ব্যবহার করার সময় আপনার পরিবর্তনটিকে দুটি অংশে বিভক্ত করেন $aএবং সন্নিবেশ করানো হয় তবে এটি ;ব্যবহার .করা হলে কার্সারের বর্তমান অবস্থানে আধা কোলন প্রবেশ করানো হবে।

দ্রষ্টব্য ভিমে ম্যাজিক সূত্রটি n.। সত্যিই শীতল ওয়ার্কফ্লো হল:

  • আপনি যে জায়গাটি দিয়ে একটি সম্পাদনা করতে চান তার জন্য অনুসন্ধান করুন /pattern
  • আপনার পুনরাবৃত্তিযোগ্য সম্পাদনা করুন
  • nসম্পাদনা করার জন্য পরবর্তী জায়গায় যেতে ব্যবহার করুন
  • .সম্পাদনা পুনরাবৃত্তি করতে ব্যবহার করুন
  • শেষ দুটি পদক্ষেপ পুনরাবৃত্তি: আপনি বিশ্বের রাজা (বা কমপক্ষে সম্পাদনা)

ম্যাক্রো

ম্যাক্রোস ভিমের আরও একটি অত্যন্ত গুরুত্বপূর্ণ সরঞ্জাম, যেহেতু এটি আপনাকে কীস্ট্রোকের ক্রম রেকর্ড করতে এবং পুনরায় টাইপ করার মতো পুনরাবৃত্তি করতে দেয়।

আমি উদাহরণ হিসাবে আপনার দ্বিতীয় ব্যবহারের কেসটি ব্যবহার করব:

variable1 = 2
my_variable2 = 12
var3 = 14

আবারও গুরুত্বপূর্ণটি হল আপনার ম্যাক্রোগুলিকে কীভাবে দক্ষ করা যায় তা শিখতে হবে (আমি ঠিক এর পরে একটি পাল্টা উদাহরণ দেব):

  • শব্দের উপর আপনার কার্সার রাখুন variable1এবং এর সাথে আপনার ম্যাক্রো রেকর্ড করতে শুরু করুন qq। এর অর্থ "নামের রেজিস্টারে আমার ভবিষ্যতের সমস্ত কীস্ট্রোক রেকর্ড করা শুরু করুন q"।

  • আপনার সম্পাদনা টাইপ করা শুরু করুন:

    • 0 লাইনের শুরুতে যেতে
    • e প্রথম শব্দের শেষে যেতে
    • a আপনার কার্সার পরে সংযোজন
    • .someStuff চেয়েছিলেন পাঠ্য সংযোজন
    • <Esc> সন্নিবেশ বন্ধ করতে
    • j পরের লাইনে যেতে
    • q ম্যাক্রো রেকর্ডিং বন্ধ করতে
  • তুমি পাবে:

variable1.someStuff = 2
my_variable2 = 12
var3 = 14
  • এখন আপনি নিজের সম্পাদনার পুনরাবৃত্তি করতে ম্যাক্রো ব্যবহার করতে পারেন। আপনি সম্পাদনার জন্য ডান লাইনে থাকায় আপনি কেবল ম্যাক্রোর সাথে এটি সম্পাদন করতে পারেন @q। যেহেতু আমরা এটি ব্যবহার করতে পারছি এটি দু'বার কার্যকর করতে চাই 2@qএবং আপনি নিম্নলিখিত ফলাফল পাবেন:
variable1.someStuff = 2
my_variable2.someStuff = 12
var3.someStuff = 14

দ্রষ্টব্য 1 আপনি যেমন খেয়াল করেছেন, 0eaম্যাক্রোর শুরুতে ব্যবহার করা সত্যিই গুরুত্বপূর্ণ ছিল। প্রকৃতপক্ষে, আপনি যদি ম্যাক্রো রেকর্ডিং করে আবার কার্যকর করার আগে প্রথম শব্দের শেষে আপনার কার্সারটি রেখেছিলেন তবে আপনার ফলাফলটি এমন হত:

variable1.someStuff = 2
my_variable2 = 12.someStuff
var3 = 14.someStuff

আপনার কার্সার হিসাবে পাঠ্যটি লাইন পরিবর্তনের পরে কার্সারের অবস্থানে প্রবেশ করানো হত (যেমন এই ক্ষেত্রে রেখার শেষ)

দ্রষ্টব্য 2 ম্যাক্রোগুলি অত্যন্ত শক্তিশালী এবং আপনি যখন তাদের সাথে স্বাচ্ছন্দ্য বোধ করেন আপনি এমনকি পুনরাবৃত্ত ম্যাক্রোগুলি তৈরি করতে পারেন। এখানে আপনার ম্যাক্রো হতে পারে:

`0ea.someStuff<Esc>j@q`

ফাইনালটি @qব্যবহারের পরিবর্তে নিজেই ম্যাক্রো ডাকত 2@q; আপনি সবেমাত্র ব্যবহার করেছেন @qএবং সমস্ত কাজ সম্পন্ন করা হয়েছে।


ভিজ্যুয়াল ব্লক

এখানে আরও একটি কৌশল এসেছে যা সরাসরি আপনার ব্যবহারের ক্ষেত্রে প্রয়োগ হয় না তবে একই সাথে একটি বিশাল সংখ্যক লাইন সম্পাদনা করতে সত্যই কার্যকর হতে পারে। আসুন সিএসএস কোডের এই এক্সট্রাক্টটি পান:

li.one   a{ background-image: url('/images/sprite.png'); }
li.two   a{ background-image: url('/images/sprite.png'); }
li.three a{ background-image: url('/images/sprite.png'); }

আপনি যদি sprites থেকে সরানো imagesহয় components?

আচ্ছা আপনি উপর আপনার কার্সার লাগাতে পারেন iএর imagesটিপুন <C-v>। এটি ভিজ্যুয়াল ব্লক মোড শুরু করবে যা ব্লকগুলি নির্বাচন করতে দেয়। আপনি t/ যে শব্দটি পরিবর্তন করতে চান তা নির্বাচন করতে এবং শব্দের 2jসমস্ত উপস্থিতি নির্বাচন করতে পারেন ।

এর পরে আপনাকে কেবল cশব্দটি পরিবর্তন করতে টাইপ করতে হবে এবং তারপরে components। আপনি যখন সন্নিবেশ মোড থেকে বাইরে যাবেন আপনি দেখতে পাবেন:

li.one   a{ background-image: url('/components/sprite.png'); }
li.two   a{ background-image: url('/components/sprite.png'); }
li.three a{ background-image: url('/components/sprite.png'); }

গ্লোবাল কমান্ড

গ্লোবাল কমান্ড হ'ল একটি সরঞ্জাম যা প্যাটার্নের সাথে মিল রেখে লাইনগুলিতে প্রাক্তন মোড কমান্ড প্রয়োগ করতে দেয়, আবার একাধিক কার্সার প্রয়োজন না করে ভিন্ন জায়গায় একই পরিবর্তন প্রয়োগ করার এক ভাল উপায়।

বাক্য গঠনটি নিম্নলিখিত:

:[range] g / pattern / command

[range]প্যারামিটার সম্পর্কে আরও তথ্যের জন্য দয়া করে দেখুন :h :range। আমি এখানে এটি বিশদ করব না, আমি কেবল স্মরণ করিয়ে দেব যে %পুরো ফাইলটি '<,'> উপস্থাপন করে, সর্বশেষ নির্বাচনকে 1,5উপস্থাপন করে এবং ফাইলটির 1 থেকে 5 লাইন উপস্থাপন করে।

এই পরামিতিটি লাইনগুলি সংজ্ঞায়িত করে যা বৈশ্বিক কমান্ড দ্বারা চিকিত্সা করা হবে। যদি কোনও ব্যাপ্তি নির্দিষ্ট না করা থাকে, তবে গ্লোবাল কমান্ড %ডিফল্টরূপে ব্যবহার করবে ।

[প্যাটার্ন] যুক্তি হ'ল অনুসন্ধানের ধরণ যা আপনি অনুসন্ধান ইঞ্জিনের সাথে ব্যবহার করতে ব্যবহৃত হয়। এটি অনুসন্ধানের ইতিহাসকে সংহত করার সাথে সাথে আপনি এই ক্ষেত্রটি ফাঁকা ছেড়ে দিতে পারেন এবং বৈশ্বিক কমান্ড অনুসন্ধানের ইতিহাসে সর্বশেষ অনুসন্ধান প্যাটার্নটি ব্যবহার করবে।

অবশেষে [কমান্ড] প্যারামিটারটি একটি প্রাক্তন কমান্ড হিসাবে আপনি সম্ভবত অভ্যস্ত হন।

এখন গ্লোবাল কমান্ডের আচরণটি বেশ সহজ:

  • [পরিসীমা] প্যারামিটারে সংজ্ঞায়িত সমস্ত লাইনের মধ্য দিয়ে আইট্রেট করুন
  • যদি বর্তমান লাইনটি নির্ধারিত প্যাটার্নের সাথে মেলে, কমান্ডটি প্রয়োগ করুন

[কমান্ড] প্যারামিটারটি হ'ল প্রাক্তন কমান্ড, আপনি অনেক কিছুই করতে পারেন। আসুন নীচের সিউডো কোডটি গ্রহণ করুন যা আকর্ষণীয় নয় এবং প্রচুর ডিবাগিং বার্তা রয়েছে:

var myList  = null
var i       = 0

myList = new List()
echo "List instantiated"

for (i=0; i<10; i++)
    myList.Add(i)
    echo i . " added to the list"

echo "end of for loop"

এখন বলি যে আপনি নিশ্চিত যে এই কোডটি কাজ করে এবং আপনি এই অকেজো echoবিবৃতি মুছতে চান :

  • আপনি সম্পূর্ণ বিশ্বব্যাপী আপনার বিশ্বব্যাপী কমান্ড প্রয়োগ করতে পারেন যাতে আপনার কমান্ডটি %(বা %পূর্বনির্ধারিত পরিসীমা না হওয়ায় কিছু না দিয়ে ) প্রেন্ডিং করতে হবে ।

  • আপনি জানেন যে আপনি যে লাইনগুলি মুছতে চান তা সমস্ত ধরণের সাথে মেলে echo

  • আপনি এই রেখাগুলি মুছতে চান যাতে আপনাকে কমান্ডটি ব্যবহার :delete করতে হবে যা সংক্ষেপে সংক্ষেপিতও হতে পারেd

সুতরাং আপনাকে কেবল নিম্নলিখিত ফাংশনটি ব্যবহার করতে হবে:

:%global/echo/delete

যা সংক্ষিপ্ত হিসাবেও করা যেতে পারে

:g/echo/d

লক্ষ্য করুন %অদৃশ্য, globalযেমন সংক্ষিপ্ত করা হয় gএবং deleteযেমন d। আপনি কল্পনা করতে পারেন ফলাফল হিসাবে:

var myList  = null
var i       = 0

myList = new List()

for (i=0; i<10; i++)
    myList.Add(i)

দ্রষ্টব্য 1 একটি গুরুত্বপূর্ণ বিষয় যা আমাকে বুঝতে সময় লাগল তা হ'ল normalকমান্ডটি একটি প্রাক্তন কমান্ড যার অর্থ আপনি এটি বিশ্বব্যাপী কমান্ড দিয়ে ব্যবহার করতে পারেন। এটি সত্যই শক্তিশালী হতে পারে: আসুন আমরা বলি যে আমি সমস্ত লাইন প্রতিলিপি করতে চাই যার প্রতিধ্বনি রয়েছে, আমার কোনও ম্যাক্রো বা এমনকি যাদু সূত্রের প্রয়োজন নেই n.। আমি সহজভাবে ব্যবহার করতে পারেন

:g/echo/normal YP

এবং ভয়েলা:

var myList  = null
var i       = 0

myList = new List()
echo "List instantiated"
echo "List instantiated"

for (i=0; i<10; i++)
    myList.Add(i)
    echo i . " added to the list"
    echo i . " added to the list"

echo "end of for loop"
echo "end of for loop"

দ্রষ্টব্য 2 "আরে আমি যদি লাইনগুলিতে আমার কমান্ডটি ব্যবহার করতে চাই যা কোনও নির্দিষ্ট প্যাটার্নের সাথে মেলে না?"

globalএকটি বিপরীত কমান্ড vglobalসংক্ষেপিত হয়েছে vযা হ'ল কমান্ডটি global[প্যাটার্ন] প্যারামিটারের সাথে মেলে না এমন লাইনে প্রয়োগ করা হবে ঠিক এর মতোই কাজ করে । আমরা যদি আবেদন করি এইভাবে

:v/echo/d

আমাদের পূর্ববর্তী উদাহরণে আমরা পাই:

echo "List instantiated"
    echo i . " added to the list"
echo "end of for loop"

deleteকমান্ড লাইন যা অন্তর্ভুক্ত করা হয়নি উপর প্রয়োগ করা হয়েছে echo


এখানে আমি আশা করি যে এই কয়েকটি ইঙ্গিতগুলি আপনার মাল্টি কার্সার প্লাগইন থেকে কীভাবে মুক্তি পাবে এবং ভিমকে ভিম উপায়ে ব্যবহার করবে সে সম্পর্কে ধারণা দেবে ;-)

যেহেতু আপনি কল্পনা করতে পারেন এই উদাহরণগুলি বেশ সহজ এবং স্রেফ এটি প্রমাণ করার জন্য তৈরি করা হয়েছে যে আপনি যখন ভিমের পথ অনুসরণ করেন তখন আপনাকে খুব কমই বেশ কয়েকটি কার্সারের প্রয়োজন হয়। আমার পরামর্শটি এমন হবে যখন আপনি এমন কোনও পরিস্থিতির মুখোমুখি হন যেখানে আপনি মনে করেন এটি কার্যকর হবে, এটিকে লিখুন এবং আরও ভাল সমাধানের জন্য কিছু সময় নিন। 99% সময় আপনি শেষ পর্যন্ত এটি করার জন্য একটি দ্রুত / আরও দক্ষ উপায় খুঁজে পাবেন।

এছাড়াও আমি নিজেকে আরও একবার পুনরাবৃত্তি করব তবে আমি আপনাকে ড্রইউ নিলের প্রাকটিক্যাল ভিম পড়তে উত্সাহিত করি কারণ এই বইটি "ভিমে কীভাবে বা এটি করা যায়" সম্পর্কিত নয়, এটি "ভিম পদ্ধতিতে কীভাবে ভাবতে শিখতে হবে" সম্পর্কে নয় যা আপনাকে আপনার ভবিষ্যতের সমস্যার নিজের সমাধানটি একটি ভাল উপায়ে তৈরি করতে দেয়।


পিএস বিশেষভাবে তার লেখার সম্পাদনার কাজ এবং তিনি এই দীর্ঘ পোস্টে সংশোধন করেছেন বলে @ অ্যালেক্স স্ট্রাগিজকে ধন্যবাদ জানায়।


খুব সম্পূর্ণ উত্তর। আমি আসলে এই সমস্ত কমান্ডগুলি জানতাম, তবে কখনই সেগুলি ব্যবহারের কথা ভাবি নি ... আমার ধারণা আমার আরও অনুশীলন প্রয়োজন। তবে, আমাকে অবশ্যই বলতে হবে যে কখনও কখনও 'ভিআইএম-ওয়ে' কিছু প্লাগইন ব্যবহারের চেয়ে বেশি সময় নেয় (উদাহরণস্বরূপ, আপনার সিএসএস উদাহরণটি আমি যে প্লাগইনটি উল্লেখ করেছি তার সাথে আরও দ্রুত করা যেতে পারে), এবং কখনও কখনও এটি আরও খাটো লাগে (আসলে, বিশাল বেশিরভাগ বার ভিএম কোনও পাঠ্য সম্পাদকের চেয়ে দ্রুত হয়, যদি সঠিকভাবে ব্যবহৃত হয়)।
টম্যাসন্যে

বিটিডব্লিউ, আমি মনে করি আপনার উত্তর ইতিমধ্যে বেশ সম্পূর্ণ। আমি এটি গ্রহণ করব, তবে আপনি যদি আরও বিশদ যুক্ত করতে চান তবে দয়া করে করুন এবং আমি সেগুলি পড়তে পেরে খুশি হব।
টমসায়নে

1
@ টমাস্যনি: আসলে কখনও কখনও "ভিএম ওয়ে" ব্যবহার করা দীর্ঘতর বলে মনে হতে পারে (আমি নিজে পরিবর্তনগুলি করেছিলাম তার চেয়ে আমি কত বার ওয়ার্কিং ম্যাক্রো তৈরি করতে বেশি সময় ব্যয় করেছি তা গণনা করতে পারি না) তবে অনুশীলনের সাথে সাথে শেষ পর্যন্ত তা দ্রুত হয়ে যায়। আমি মাত্র এক বছর ধরে ভিম ব্যবহার করছি এবং আমি বিশেষজ্ঞ হতে অনেক দূরে (তবে) আমি অনুভব করতে পারি যে অনুশীলনের সাথে সাথে আমার সম্পাদনা ধারাবাহিকভাবে উন্নত হয়।
স্ট্যাটক্স

1
সম্ভবত gnপাঠ্য বস্তুটিও উল্লেখ করা উচিত । এটি একাধিক কার্সারের কিছু ব্যবহারের ক্ষেত্রে সম্বোধন করে। /তারপরে dgnবা তারপরে অনুসন্ধান করুন cgn, তারপরে পুনরাবৃত্তি করুন .
জাস্টিন এম কেজ

@ জাস্টিন আমি এর সাথে সত্যিই পরিচিত নই gnআমি এটিকে চেষ্টা করে দেখব এবং পরে যুক্ত করব। মাথা আপ জন্য ধন্যবাদ!
স্ট্যাটক্স

5

আপনার প্রদত্ত ব্যবহারের কেসগুলি .কী কমান্ডটি জানতে চান (শেষ সম্পাদনা কমান্ডটি পুনরাবৃত্তি করুন)

  • প্রথমে যান, টিপুন i, আপনার পাঠ্য সন্নিবেশ করুন,<ESC>
  • অবস্থান 2 এ সরান, টিপুন .(বিন্দু) ==> আইডেন্টাল টেক্সট isোকানো হয়েছে
  • এখানে একটি লাইন সরানো এবং আবার সন্নিবেশ করতে (পরপর রেখায় সন্নিবেশ করার সময়) টিপুন <ALT>-j.

আমার জন্য আপনার টেক্সট উদাহরণটি এর দ্বারা সমাধান করা হয়েছে:

I\section[]{}<ESC>hhiMy first Sec...<ESC>lll.


এটি একটি দুর্দান্ত সমাধান। আমি .মূল কমান্ডটি পুরোপুরি জানতাম , তবে কখনই সেটিকে এভাবে ব্যবহার করার কথা ভাবেনি। আমি সম্মতি জানাই এটি একটি দুর্দান্ত উপায়। তবে আপনার উত্তরটি আসলে আসল প্রশ্নকে বোঝায় না, সুতরাং এটি অনুমান করা আমার পক্ষে যথাযথ হবে না।
টমসায়নে

1
ঠিক আছে, আপনার প্রশ্ন (আপনি পছন্দসই ব্যবহারের কেস যুক্ত করার পরে) "আমাকে সত্যিই আমার কাঁচি পছন্দ করেন এবং তাদের সাথে একটি স্ক্রু আঁটতে চাই how কীভাবে বলুন"। এবং আমি আপনাকে স্ক্রু ড্রাইভারের জন্য নিফটির ব্যবহারের দিকে ইশারা করলাম;) (আমি উত্তর হিসাবে যুক্ত করেছি, কারণ আমি জানি না, মন্তব্যে ফরম্যাটিং কীভাবে করবেন)
অ্যালেক্স স্ট্রাজি

4

আরও ভিম ​​উপায়।

প্রথম কাজ:

\section[foobar baz]{foobar baz}

কর্মধারা:

\section[]{}
hh
ifoobar baz<Esc>
$.

দ্বিতীয় কাজ:

variable1 = 2
my_variable2 = 12
var3 = 14

COMMAND:

3:norm ea_somestuff

ফলাফল:

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