অন্য লাইনের সাহায্যে ভিজ্যুয়াল ব্লকটি কীভাবে আটকানো যায়


10

এটা আমার খুব দীর্ঘ সময় নেয় বুঝতে পারি যে নির্বাণ (পেস্ট) সঙ্গে কিছু pবা Pসঙ্গে যা চাক্ষুষ-ব্লক নির্বাচন ctrl+vএবং yanked (অনুলিপি করেছে) সঙ্গে y, পদ্ধতিতে সংরক্ষণ করার আগে, যাতে যখন কপি করা টেক্সট লাইনের মাঝখানে হচ্ছে ছিল, এটা তারপরে যখনই সম্ভব হবে অন্য পাঠ্যের মাঝখানে অনুলিপি করা হবে। বিপরীতে, সিলেক্ট-লাইনটি Vঅনুলিপিযুক্ত রেখাটিকে অন্য পাঠ্যের মধ্যে পেস্ট করে না, তবে অন্য লাইনে শুরু করে।

উদাহরণস্বরূপ, ধরুন আমি এখনই পেয়েছি:

12/12: Avocado. Apple.
12/13: Bean.    Banana.
12/14: Cherry.  Citron.
12/15:
12/16:
12/17:

যখন আমি কাটাতে চাই Avocadoএবং Beanএবং Cherry(বাছাই হিসাবে নির্বাচন করে _)

12/12: ________ Apple.
12/13: ________ Banana.
12/14: ________ Citron.
12/15:
12/16:
12/17:

এবং টিপুন y, এবং নিম্নলিখিত লাইনে কার্সার সরান (কার্সার হিসাবে উপস্থাপিত _),

12/12: Avocado. Apple.
12/13: Bean.    Banana.
12/14: Cherry.  Citron.
_2/15:
12/16:
12/17:

এবং টিপুন P। ফলাফল:

12/12: Avocado. Apple.
12/13: Bean.    Banana.
12/14: Cherry.  Citron.
Avocado.12/15:
Bean.   12/16:
Cherry. 12/17:

তবে আমার যা ইচ্ছা ছিল তা হ'ল:

12/12: Avocado. Apple.
12/13: Bean.    Banana.
12/14: Cherry.  Citron.
Avocado.
Bean.   
Cherry. 
12/15:
12/16:
12/17:

এটি আমাকে প্রতিবারই বিভ্রান্ত করেছিল, যতক্ষণ না আমি বুঝতে পারি যে সেগুলি লাইনের মাঝখানে অনুলিপি করা হয়েছিল, সুতরাং তারা তাদের লাইনের মাঝখানে পেস্ট করা হয়েছিল, তারা যেভাবে ছিল তা অনুকরণ করে।

এটি অন্য লাইনে শুরু করে কোনও কিছু পেস্ট করার সর্বোত্তম উপায় বলে মনে হচ্ছে, কার্সারটি শুরুতে 0এবং 3 লাইন দিয়ে নতুন জায়গায় নিয়ে যাচ্ছে; এবং 3 বার iটিপে সন্নিবেশ মোডে প্রবেশ করুন <return>এবং কার্সারটি 6 টি লাইন এবং ডানদিকে ফিরে আসল জায়গায় ফিরে যান; এবং অনুলিপি করা, এবং আবার নতুন জায়গায় সরানো, এবং আমি উপরের মত পেস্ট করুন।

আমি কয়েক স্ট্রোক সংরক্ষণ করতে পারি? বা আপনি সাধারণত কি করেন?

(সম্পাদনা করুন: উপরে যা বলা হয়েছিল তা ছিল আমি এটি জিজ্ঞাসার মুহুর্তে এটি কীভাবে বুঝতে পেরেছিলাম those উত্তর সঠিক উত্তরের জন্য দেখুন:)

উত্তর:


11

আপনি যখন কিছু পাঠ্য অনুলিপি করেন, এটি একটি রেজিস্টারে যায়। টেক্সট রেজিস্টার ভিতরে একটি টাইপ আছে: characterwise, linewiseবা blockwise

এই প্রকারটি পাঠ্যটি কীভাবে রাখা হবে তা নির্ধারণ করে।

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


আপনি যদি কোনও ব্লকের পরিবর্তে লাইনের ক্রম হিসাবে এটি আটকে দিতে চান তবে 3 টি উপায় রয়েছে।

  1. সন্নিবেশ মোড থেকে, আপনি আঘাত করে এটি sertোকাতে পারেন C-r "
    এটি নামবিহীন নিবন্ধের বিষয়বস্তু inোকানো উচিত যেন এটির টাইপটি লাইনওয়াইজ হয়।

  1. কমান্ড লাইন থেকে, আপনি :putকমান্ডটি ব্যবহার করতে পারেন ।
    :putকোনও নিবন্ধের ভিতরে পাঠ্যটি এমনভাবে আটকানো উচিত যেন এটির প্রকারটি লাইনওয়াইজ হয়, তার মূল ধরণের কোনও ব্যাপার না। দ্রষ্টব্য যে আপনি কোনও নিবন্ধের নামটি আর্গুমেন্ট হিসাবে পাসওয়ার্ড করতে পারবেন, পাশাপাশি রেখাটি নির্দিষ্ট করতে একটি লাইন ঠিকানা আপনি রেজিস্টারটি আটকে দিতে চান।

উদাহরণ স্বরূপ:

:42put a

... রেজিস্টার এর বিষয়বস্তু th লাইনের aনীচে রাখা উচিত 42

কোনও নিবন্ধকারীর নাম ছাড়াই, ভিম ধরে নিবে আপনি নামবিহীন নিবন্ধ (বা +আপনি যদি টুইট করেন তবে নিবন্ধক 'clipboard') আটকে দিতে চান ।
এবং কোনও ঠিকানা ছাড়াই, ভিম ধরে নিবে আপনি এটি বর্তমান লাইনের নীচে পেস্ট করতে চান।


  1. কমান্ড লাইন থেকে, আপনি setreg()ফাংশন সহ নামবিহীন নিবন্ধের প্রকারটি পরিবর্তন করতে পারেন :

    :call setreg('"', '', 'al')

এখানে, setreg()নামবিহীন নিবন্ধে একটি ফাঁকা স্ট্রিং যুক্ত করা উচিত ( aতৃতীয় যুক্তি হিসাবে চিহ্নিত পতাকাটির জন্য ধন্যবাদ ) এবং এর ধরণটি লাইনওয়াইস ( lপতাকাটির জন্য ধন্যবাদ ) এ পরিবর্তন করা উচিত।

তারপরে, সাধারণ মোড থেকে আপনার pসাধারণ কমান্ডের সাহায্যে রেজিস্টারটি আটকাতে সক্ষম হওয়া উচিত , যেন এটির টাইপ লাইনের দিকের।


এটি সরাসরি আপনার সমস্যার সাথে লিঙ্কযুক্ত নয়, তবে আপনি যখন কিছু পাঠ্য অনুলিপি করেন তখন এটি 0রেজিস্টারেও যায় । আপনি যদি unnamedplusবিকল্পটিতে মানটি চাপিয়ে দেন তবে 'clipboard'এটি +রেজিস্টারেও যায় ।

getregtype()ফাংশনটি ব্যবহার করে আপনি নিবন্ধের ধরণ কী তা পরীক্ষা করতে পারেন :

:echo getregtype('"')

যদি এটি একটি ছোট হাতের ফেরৎ দেয় vতবে এর অর্থ ধরণটি চরিত্রগত দিকের।
যদি এটি একটি বড় হাতের অক্ষর দেয় Vতবে এর অর্থ টাইপটি লাইনওয়াইজ।
যদি এটি ফিরে আসে ^V{some number}তবে এর অর্থ টাইপটি ব্লকওয়াইস এবং ব্লকের প্রস্থ {some number}


3

আমাকে প্রায়শই একটি নির্দিষ্ট (চরিত্রের দিকের / লাইনওয়াইজ / ব্লকওয়াইজ) মোডে রেজিস্ট্রেশন কন্ট্রোল করা প্রয়োজন, এর জন্য আমি শর্তবিহীনপস্ট প্লাগইন লিখেছি । এটি বিল্ট-ইন পেস্ট কমান্ডগুলির বিকল্প সরবরাহ করে gcp, glpযা একটি নির্দিষ্ট মোডকে বাধ্য করে (এবং এখন এই থিমটিতে আরও কয়েকটি বৈচিত্র, যেমন কমা বা অনুসন্ধানী অক্ষরের সাথে যোগদানের সাথে পেস্ট করার মতো)।

এটির সাহায্যে আপনি কীভাবে পাঠ্যটি ইয়ঙ্ক করেছেন তা নির্বিশেষে আপনি কেবল বর্তমান লাইনের পরে (নতুন লাইন হিসাবে) পেস্ট করতে glp/ ব্যবহার করতে পারেন glP


আমি আপনাকে vyর্ষা করি যে আপনার কাছে এ জাতীয় জিনিস QQ লেখার সময় আছে তবে আমি এতে সন্তুষ্ট :put। (আপনাকে
উত্সাহিতও করা হয়েছে

@ এমিনোপটারিন: আমি জবাব দিয়েছি যে প্রায়শই আমার কাছে প্রথম অনুচ্ছেদের জন্য স্নিপমেট স্নিপেট থাকে। সুতরাং আমি শুধু কিছুটা কাস্টমাইজ করা প্রয়োজন। আমার উত্তর প্রশংসা করার জন্য ধন্যবাদ, এবং upvote!
ইনগো কারকাত

ওহ আমি বলেছিলাম আমার vyর্ষা হচ্ছে আপনার একা একা হাতে একটি প্লাগইন লেখার সময় আছে, যেন এটুকু স্বাচ্ছন্দ্য সহকারে করা হয় .... কেবল গত অর্ধবছরই আমি শখের প্রকল্প হিসাবে কিছু সি ++ প্রজেক্ট লিখতে শুরু করেছিলাম যাতে নিজেকে প্রোগ্রামিং শিখতে বাধ্য করে, এবং আমি কি
ভিআইএম started

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