ভিমে রেজিস্টারে টেক্সট না রেখে মুছার উপায় আছে কি?


470

ভিম ব্যবহার করে আমি প্রায়শই আমার ব্লক কোডের একটি ব্লকের সাথে ব্লকটি প্রতিস্থাপন করতে চাই যা আমি স্রেফ ইয়াঙ্কড করেছি।

কিন্তু আমি যখন যে ব্লকের কোডটি প্রতিস্থাপন করতে হবে সেটি মুছে ফেলব, তখন সেই ব্লকটি নিজেই নিবন্ধের মধ্যে চলে যায় যা আমি সবেমাত্র ব্লকটিকে মুছে ফেলি। সুতরাং আমি ইয়াঙ্কিং করার অভ্যাস পেয়েছি, তারপরে .োকাচ্ছি, তারপরে যা চাইছিলাম তা মুছে ফেলব না, তবে কোডের বড় ব্লকগুলির সাথে এটি sertedোকানো ব্লক এবং ব্লকটি পৃথকভাবে মুছে ফেলার চেষ্টা করতে অগোছালো হয়ে যায়।

তাহলে ভিমে টেক্সটটি প্রতিস্থাপনের সবচেয়ে সহজ এবং দ্রুততম উপায় কী?

  • নিবন্ধটিতে না রেখে পাঠ্য মুছার উপায় আছে কি?
  • এখানে কী বলার উপায় আছে যেমন "পরের শব্দটি প্রতিস্থাপন করুন" বা "পরবর্তী অনুচ্ছেদে স্থানান্তর করুন"
  • বা একরকম একাধিক-নিবন্ধ বৈশিষ্ট্যটি ব্যবহার করার সর্বোত্তম উপায়?

1
এই সঠিক সমস্যাটির সমাধান করার জন্য ভিম -ইজাই ক্লিপ ( github.com/svermeulen/vim-easyclip ) ডিজাইন করা হয়েছে
স্টিভ ভার্মিউলেন

1
আমি একটি প্রশ্ন জিজ্ঞাসা করেছি , অজান্তে (সেই সময়ে) আপনার আসল সমস্যার সদৃশ , তবে শিরোনামের প্রশ্নটি এতটা নয়। টিএল; ডিআর - আপনি viwp( অর্ডের জন্য w) ব্যবহার করে য্যাঙ্ক করেছেন তার সাথে প্রতিস্থাপন করুন ।
ওজেফোর্ড 17

উত্তর:


429

কোনও রেজিস্টারে সংরক্ষণ না করেই মোছার জন্য, আপনি "ব্ল্যাকহোল রেজিস্টার" ব্যবহার করতে পারেন:

"_d

অবশ্যই আপনি অন্য যে কোনও রেজিস্টার ব্যবহার করতে পারেন যা আপনার আগ্রহী কিছু রাখে না।


4
প্রথমে আমি ভেবেছিলাম এই আদেশটি সঠিকভাবে কাজ করছে না। তখন আমি বুঝতে পারি আমি আমেরিকান কীবোর্ডের একটি "ডেড কী" সংস্করণ ব্যবহার করছি using এই কীবোর্ড লেআউটটি দিয়ে আমাকে টাইপ করতে হবে "<space>_d। । স্থান আসলে "লিখুন প্রয়োজন হয়
সেবাস্তিয়ান Grignoli

4
কেবল খালি লাইনে নির্বাচন করে এটি করার কোনও ধারণা? (আমি যদি ddখালি লাইনে থাকি তবে এটি ব্ল্যাকহোলের মধ্যে চলে যায়, অন্যথায় এটি ddস্বাভাবিকের মতো হয়)।
জোনাথন ডুমাইন

6
একটি চরিত্র অপসারণ করতে, চেষ্টা করুন:"_x
কেনারব

54
এটি এমন একটি অঞ্চল যেখানে একটি মানক পাঠ্য সম্পাদক জিতেছে। আপনি কেবল মুছুন কী টিপুন।
ভিন্স পানুসিও

22
আপনি কিছু yyবা '3 আই' (বা যাই হোক না কেন) দিয়ে ইঙ্ক করতে পারেন যা এটি নামবিহীন রেজিস্টারে রাখে, কিন্তু 0-এও "0pব্যবহার করে সত্ত্বেও আপনি এটি আটকে রাখতে পারেন d
হাফগাগার

102

হাঁ। এটি প্রথমে "পুরাতন" পাঠ মুছে ফেলার চেয়ে কিছুটা বিশৃঙ্খলাযুক্ত, তবে:

আমি দিয়ে শুরু ...

line1
line2
line3
line4

old1
old2
old3
old4

আমি shift+ vলাইন 1, লাইন 2, 3 এবং 4 নির্বাচন করি এবং তাদের দিয়ে মুছে ফেলিd কমান্ড

তারপরে আমি পুরানো 1-4 লাইনগুলি একইভাবে মুছুন।

তারপর, না

"2p

এটি দ্বিতীয়-শেষ ইয়ঙ্কযুক্ত রেখাগুলি (লাইন 1-4) পেস্ট করবে। "3pতৃতীয় থেকে শেষটি করবে এবং আরও কিছু ..

তাই আমি শেষ

line1
line2
line3
line4

তথ্যসূত্র: সংখ্যাযুক্ত রেজিস্টারে ভিম ডকুমেন্টেশন


যদি আপনি <
শিফট-

31
1 থেকে 9 মুছে ফেলার জন্য কাজ করে। শেষ জিনিসটি সত্যই ইয়ঙ্কযুক্ত ('y' দিয়ে) পেস্ট করতে আপনাকে "0p ব্যবহার করতে হবে That's এটির ক্ষেত্রে কার্যকর যে আপনি প্রথমে কিছু অন্য জায়গায় প্রতিস্থাপনের উদ্দেশ্যে কিছুটা ইয়েঙ্কস করেন তবে এর পরে অন্য কোনও কিছু ডিফল্ট পেস্ট রেজিস্টারে ওভাররাইট করে
রাফায়েল ডি এফ। ফেরেইরা

আরও পূর্বাবস্থায় ফিরে আসার জন্য গুন্ডো (গ্রাফিকাল পূর্বাবস্থায়) স্ক্রিপ্টটি পরীক্ষা করে দেখুন ।
লুমি

@ রাফায়েলডিএফ.ফেরিরা: আপনার মন্তব্য এই প্রশ্নের উত্তর নয়, তবে সম্ভবত এটিই আসল সমস্যাটি সমাধান করে যা ওপিকে প্রথমে প্রশ্ন জিজ্ঞাসা করতে পরিচালিত করেছিল। আমার জন্য, এটিই আসল সমস্যা ছিল।
0xc0de

76

ভিআইএম ডক্স: সংখ্যাযুক্ত রেজিস্ট্রার 0-এ সাম্প্রতিক ইয়াঙ্ক কমান্ডের পাঠ্য রয়েছে, যদি না কমান্ড ["x] এর সাথে অন্য একটি রেজিস্টার নির্দিষ্ট করে।

যেমন আমরা "foo" ইঙ্ক করি এবং "বার" মুছি - রেজিস্ট্রিতে এখনও "ফু" রয়েছে! সুতরাং "foo" ব্যবহার করে আটকানো যেতে পারে"0p


53

একটি সহজ ম্যাপিং করা সুবিধাজনক যা আপনাকে বাফারের সাথে বর্তমান নির্বাচন প্রতিস্থাপন করতে দেয়।

উদাহরণস্বরূপ আপনি যখন এটি আপনার .vimrc এ রাখেন

vmap r "_dP       // it's a capital 'p' on the end

তারপরে, নিবন্ধে কোনও কিছু অনুলিপি করার পরে (যেমন 'y' দিয়ে), আপনি কেবল যে পাঠ্যটি প্রতিস্থাপন করতে চান তা নির্বাচন করতে পারেন এবং আপনার কীবোর্ডে কেবল 'r' চাপুন hit নির্বাচনটি আপনার বর্তমান নিবন্ধকের সাথে প্রতিস্থাপিত হবে।

ব্যাখ্যা:

vmap - mapping for visual mode
"_d - delete current selection into "black hole register"
P - paste

1
একটি আরো উন্নত সংস্করণের জন্য, চেক: stackoverflow.com/questions/290465/...
লুক Hermitte

আমি ব্যবহার করতে চাইvmap <C-P> "_dP
হ্যারি লি

7
আপনি নির্বাচনটি মোছা না করে কেবল পাঠ্যটি রাখতে পারেন। উদাহরণস্বরূপ, Vpআপনার বর্তমান লাইনটি এখনই হাঁকিয়ে দেওয়া একটির সাথে প্রতিস্থাপন করে।
ববি মেরিনফ

এই সমাধানটি সমস্যার সমাধান করে না dএটি প্রায়শই মোছার জন্য ব্যবহৃত হচ্ছে।
ভিক্টর ইয়ারেমা

35

আমি নিম্নলিখিতটি আমার ভিএমআরসি-তে রেখেছি:

noremap  y "*y
noremap  Y "*Y
noremap  p "*p
noremap  P "*P
vnoremap y "*y
vnoremap Y "*Y
vnoremap p "*p
vnoremap P "*P

এখন আমি ক্লিপবোর্ডের নিবন্ধ থেকে ইয়েঙ্ক করে রেখেছি এবং ডিফল্ট রেজিস্টারে কী ঘটে সেদিকে খেয়াল করার দরকার নেই। একটি অতিরিক্ত সুবিধা হ'ল আমি ন্যূনতম ঝামেলা সহ অন্যান্য অ্যাপ্লিকেশনগুলি থেকে পেস্ট করতে পারি। আমি কিছু কার্যকারিতা হারাচ্ছি, আমি জানি, তবে যাইহোক আমি একাধিক নিবন্ধক / ক্লিপবোর্ডের ট্র্যাক রাখতে পারি না।


6
এই সমস্ত পুনঃস্থাপনের পরিবর্তে, আপনিও set clipboard=unnamedবা set clipboard=unnamedplus, যা ডিফল্ট ক্লিপবোর্ডকে যথাক্রমে *বা পরিবর্তন করতে পারে +
স্টিভ

5
@ স্টিভ যদি আপনি এটি করেন, তবে ডি ক্লিপবোর্ডের নিবন্ধে শেষ ইয়াঙ্কটি ওভাররাইট করবে, যা প্রশ্নটি এড়াতে চাইছে।
79E09796

1
@ 79E09796, আমি বোঝাতে চাইছি না যে এটি হবে; আমি এই উত্তরটি সম্পর্কে মন্তব্য করছিলাম, মূল প্রশ্নটি নয়।
স্টিভ

1
আমি এগুলিকে আমার .vimrc এ রেখেছি এবং এখন ইয়ঙ্কিং কাজ করে না। কোন ধারণা কেন?
tba

2
@ টিবিএ নরেনম্যাপটি নোরোম্যাপ (দুটি এন) এর সাথে প্রতিস্থাপন করুন এবং এটি ভাল কাজ করা উচিত।
meain

24

আপনি যে নির্দিষ্ট উদাহরণটি দিয়েছেন তার জন্য, যদি আমি প্রশ্নটি বুঝতে পারি তবে এটি কার্যকর হতে পারে:

*Highlight what you want to put somewhere else
*delete (d)
*Highlight the code that you want it to replace
*paste (p)

6
আপনি একাধিক নির্বাচনের উপর পেস্ট করতে চান তা বাদ দিয়ে এটি ভাল কাজ করে।

23

সমস্ত ইয়াঙ্ক এবং মুছে ফেলা অপারেশন ডিফল্টরূপে নামবিহীন নিবন্ধে লিখুন। তবে, সর্বশেষতম ইয়াঙ্ক এবং অতি সাম্প্রতিক মুছে ফেলা সর্বদা সংখ্যাযুক্ত রেজিস্টারে (পৃথকভাবে) সঞ্চিত থাকে। রেজিস্টারটিতে 0সাম্প্রতিকতম ইয়াঙ্ক রয়েছে। রেজিস্টার 1-99 সাম্প্রতিকতম মোছাগুলিকে (সঙ্গে রাখা 1সাম্প্রতিকতম হচ্ছে)।

অন্য কথায়, একটি মুছে ফেলা নামবিহীন নিবন্ধে সর্বাধিক সাম্প্রতিক ইয়ঙ্ক ওভাররাইট করে তবে এটি এখনও 0রেজিস্টারে রয়েছে। "_ddঅন্যান্য উত্তরগুলিতে উল্লিখিত ব্ল্যাকহোল-রেজিস্ট্রার ট্রিক ( ) কাজ করে কারণ এটি নামবিহীন নিবন্ধকে ওভাররাইটিং প্রতিরোধ করে, তবে এটি প্রয়োজনীয় নয়।

আপনি ডাবল উদ্ধৃতি ব্যবহার করে একটি রেজিস্টার উল্লেখ করেছেন, সুতরাং সর্বাধিক ইয়াঙ্কযুক্ত পাঠ্যটি আটকানো এভাবে করা যায়:

"0p

এটি একটি দুর্দান্ত রেফারেন্স:


16

ইবিগ্রিন যা বলেছেন তা জোর দেওয়ার জন্য :

আপনি যদি পাঠ্য নির্বাচন করার সময় পেস্ট করেন তবে নির্বাচিত পাঠ্যটি আটকানো পাঠ্যের সাথে প্রতিস্থাপন করা হবে।

আপনি যদি কিছু পাঠ্য অনুলিপি করতে চান এবং তারপরে এটি একাধিক স্থানে পেস্ট করতে চান তবে "0pপেস্ট করুন। সংখ্যাযুক্ত রেজিস্টার 0-এ সাম্প্রতিক ইয়াঙ্ক কমান্ডের পাঠ্য রয়েছে।


এছাড়াও, আপনি আপনার নিবন্ধগুলির সমস্ত বিষয়বস্তু তালিকাভুক্ত করতে পারেন:

:registers

এই কমান্ডটি ডিবিআর এর উত্তরের মতো কিছু করার সময় আপনি কী রেজিস্ট্রেশন চান তা নির্ধারণ করা সহজ করে তোলে । আপনি /,%, # নিবন্ধগুলিও দেখতে পাবেন। (আরও দেখুন :help registers)


এবং পরিশেষে, খুঁজে বার করো cWএবং cWসহ এবং একটি চিহ্ন স্থান সহ একটা কথাও পরিবর্তন। (মূলধন ব্যবহারে Wবিরামচিহ্ন অন্তর্ভুক্ত))


10

আপনি যদি ভিম ব্যবহার করছেন তবে আপনার কাছে ভিজ্যুয়াল মোড থাকবে যা নির্বাচন করার মতো, তবে পৃথকীকরণের মোডের সাথে এটি ভিআই / ভিএম এর ভিত্তি।

আপনি যা করতে চান তা উত্সটি নির্বাচন করতে ভিজ্যুয়াল মোড ব্যবহার করুন, তারপরে ইয়ঙ্ক, তারপরে গন্তব্যের ক্ষেত্রটি নির্বাচন করতে আবার ভিজ্যুয়াল মোড ব্যবহার করুন এবং তারপরে ডিফল্ট বাফার থেকে পাঠ্যে আটকান।

উদাহরণ:

এর সাথে একটি পাঠ্য ফাইলে:

1 | qwer
2 | asdf ও ডিফেন্ডার
3 | zxcv
4 | poiu

নিম্নলিখিত ক্রম সহ: ggVjyGVkpআপনি এখানে দিয়ে শেষ করবেন:

1 | qwer
2 | asdf ও ডিফেন্ডার
3 | qewr
4 | asdf ও ডিফেন্ডার

ব্যাখ্যা:

  • gg: প্রথম লাইনে যান
  • V: পুরো লাইন দিয়ে ভিজ্যুয়াল মোড শুরু করুন
  • j: একটি লাইন নীচে যান (আগের লাইনে নির্বাচন শুরু হওয়ার সাথে সাথে এটি নির্বাচনের এক লাইন নীচে বাড়বে)
  • y: ইয়াঙ্কটি ডিফল্ট বাফারে (দুটি নির্বাচিত লাইন এবং এটি স্বয়ংক্রিয়ভাবে আপনাকে ভিজ্যুয়াল মোড থেকে বেরিয়ে আসে)
  • G: শেষ লাইনে যান
  • V: ভিজ্যুয়াল মোড শুরু করুন (আগের মতো)
  • k: এক লাইন উপরে যান (ভিজ্যুয়াল মোড সক্ষম করার সাথে আগের মতো, এটি নির্বাচনের এক লাইন উপরে বাড়িয়ে তোলে)
  • p: পেস্ট (দুটি শেষ লাইনে নির্বাচনের সাথে, এটি বাফারে যা আছে তার সাথে সেই রেখাগুলি প্রতিস্থাপন করবে - এই ক্ষেত্রে 2 প্রথম লাইন)

এতে সামান্য অসুবিধা রয়েছে যা বাফারে শেষ ব্লকটি রাখে, তাই এটি কোনওভাবে একই জিনিসটির বারবার পেস্টিংয়ের জন্য পছন্দসই নয়, তাই আপনি উত্সটিকে একটি নামী বাফারের মতো "ay("একটি" বাফার হিসাবে) দিয়ে সংরক্ষণ করতে চান ") এবং এমন কিছু দিয়ে পেস্ট করুন "ap(তবে তারপরে আপনি যদি প্রোগ্রামিং করছেন তবে আপনি সম্ভবত বেশ কয়েকবার পেস্ট করতে চান না তবে কোনও ফাংশন তৈরি করে এটিকে কল করতে পারেন, ঠিক? অধিকার ?)।

আপনি যদি কেবলমাত্র vi ব্যবহার করে থাকেন, তবে আপনাকে ভিজ্যুয়াল মোডের পরিবর্তে অদৃশ্য চিহ্নগুলি ব্যবহার করতে হবে, এর :he markজন্য আরও দুঃখিত, আমি দুঃখিত তবে আমি এই অদৃশ্য চিহ্নগুলির সাথে খুব ভাল নই, আমি ভিজ্যুয়াল মোডের সাথে দূষিত।


10

'প্রতিস্থাপন শব্দ' এর জন্য, cwসাধারণ মোডে চেষ্টা করুন।

'অনুচ্ছেদ প্রতিস্থাপন' এর জন্য, capসাধারণ মোডে চেষ্টা করুন try


1
জন্য 'প্রতিস্থাপন পর্যন্ত পরবর্তী অনুচ্ছেদে', চেষ্টা c}স্বাভাবিক মোডে আছে।
জবিরালি

"ক্যাপ" এটি করে কেন? "এ" এবং "পি" "সংযুক্তি" এবং "পেস্ট" এর পক্ষে দাঁড়ায় না?
WiSaGaN

2
@WiSaGaN "এপি" এর অর্থ "একটি অনুচ্ছেদ": vimhelp.appspot.com/motion.txt.html#object-select
স্বরূপ সিএইচ

9

অলসদের জন্য একটি সর্বনিম্ন আক্রমণাত্মক সমাধান:

নিবন্ধটিতে 0সর্বদা সর্বশেষ ইয়াঙ্ক থাকে (যেমন রাফায়েল , অ্যালেক্স 2 কে 8 এবং ইডব্রাই ইতিমধ্যে উল্লেখ করেছে)। দুর্ভাগ্যক্রমে 0সমস্ত সময় নিবন্ধক নির্বাচন করা বেশ বিরক্তিকর হতে পারে, তাই এটি ডিফল্টরূপে pব্যবহার "0করা ভাল। নিম্নলিখিত লাইনগুলি আপনার মধ্যে রেখে এটি অর্জন করা যেতে পারে .vimrc:

noremap p "0p
noremap P "0P
for s:i in ['"','*','+','-','.',':','%','/','=','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    execute 'noremap "'.s:i.'p "'.s:i.'p'
    execute 'noremap "'.s:i.'P "'.s:i.'P'
endfor

প্রথম লাইনে প্রতিটি pস্ট্রোক ম্যাপ করে "0p। তবে এটি pঅন্য কোনও রেজিস্টার অ্যাক্সেস করা থেকে বাধা দেয় । সুতরাং pসুস্পষ্টভাবে নির্বাচিত রেজিস্টার সহ সমস্ত স্ট্রোকগুলি লুপের মধ্যে সমতুল্য কমান্ডলাইন এক্সপ্রেশনকে ম্যাপ করা হয়। একই জন্য করা হয় P

এইভাবে প্রমিত pএবং Pস্ট্রোক ব্যতীত স্ট্যান্ডার্ড আচরণটি সংরক্ষণ করা হয় , যা এখন রেজিস্টার ব্যবহার করে0 ডিফল্টরূপে করে।

ইঙ্গিত 1: কাট কমান্ড এখন ন্যায়বিচারের "0dপরিবর্তে d। তবে যেহেতু আমি অলস এটি আমার পক্ষে অনেক দীর্ঘ;) সুতরাং আমি নিম্নলিখিত ম্যাপিংটি ব্যবহার করছি:

noremap <LEADER>d "0d
noremap <LEADER>D "0D

লিডার কীটি \ডিফল্টরূপে হয়, তাই আপনি সহজেই টাইপ করে \dবা পাঠ্যটি কাটাতে পারেন \D

ইঙ্গিত 2: মাল্টি-কী ম্যাপিংয়ের জন্য ডিফল্ট সময়সীমাটি খুব ছোট। আপনি একটি রেজিস্টার নির্বাচন করার সময় আরও সময় পেতে এটি বাড়িয়ে দিতে চাইবেন। দেখুন :help timeoutlenবিবরণ, আমি ব্যবহার করছি জন্য:

set timeout timeoutlen=3000 ttimeoutlen=100

7

ঠিক আছে, প্রথমে এই আদেশটি করুন:

:h d

তারপরে আপনি বুঝতে পারবেন যে আপনি একটি নির্দিষ্ট রেজিস্টারে মুছতে পারেন। এইভাবে আপনি আপনার ডিফল্ট রেজিস্টারে যা পরিবর্তন করবেন না।


1
["x]d{motion} Delete text that {motion} moves over [into register x]- ভিম:h d
ওয়েজ টার্নার

5

আমার পরিস্থিতি: Normalমোডে, আমি কী-টিপস ব্যবহার করে অক্ষর xমুছি, সেই মুছে ফেলাগুলি আমার সর্বশেষতম নিবন্ধটিকে ওভাররাইট করে - এমন সম্পাদনাগুলিকে জটিল করে তোলে যেখানে আমি xআমার সর্বাধিক সাম্প্রতিক রেজিস্টারটিতে কিছু আছে তা ব্যবহার করে অক্ষর মুছতে চাইছি (যেমন একই পাঠ্য দুটি বা দুটিতে আটকে দিন) আরও জায়গা)।

আমি গৃহীত উত্তরের ( "_d) পরামর্শটি চেষ্টা করেছিলাম , কিন্তু এটি কার্যকর হয়নি।

যাইহোক, /vi/122/performing-certain-operation-without-cleering-register এ গৃহীত উত্তর / মন্তব্যগুলি থেকে , আমি এটি আমার সাথে যুক্ত করেছি ~/.vimrc, যা কাজ করে (আপনাকে ভিম পুনরায় আরম্ভ করতে হতে পারে ):

nnoremap x "_x

এটি হ'ল আমি এখন আমার সাধারণ ইয়াঙ্ক ( y), মুছে ফেলা ( d) মুছে ফেলতে এবং ( p) কমান্ডগুলি করতে পারি - এবং যে অক্ষরগুলি আমি মুছে ফেলা হয় xসেগুলি সর্বাধিক সাম্প্রতিক নিবন্ধগুলিকে বিশিষ্ট করে না।


4

পাঠ্য মোছা হয়েছে, সন্নিবেশ মোডে থাকা অবস্থায় ডিফল্ট রেজিস্টারে যায় না।


2
তবে ডিফল্ট মোডে কোনও উল্লেখযোগ্য পরিমাণের পাঠ্য মুছে ফেলা হচ্ছে
হামিশ ডাউনার

3

আমি সঠিক প্রসঙ্গে দুটি সমাধান ব্যবহার করি;

  • ভিমস VISUALমোড ব্যবহার করে আপনি কী প্রতিস্থাপন করতে চান তা হাইলাইট করুন তারপরে নিবন্ধককে আটকান।

আমি এটি বেশিরভাগ অভ্যাসের বাইরে ব্যবহার করি কারণ আমি কেবল দ্বিতীয় সমাধানটি পরে পেয়েছি যেমন, উদাহরণস্বরূপ

yiw   " yank the whole word
viwp  " replace any word with the default register
  • ইয়াঙ্করিং । এই প্লাগইনটি দিয়ে আপনি <ctrl>+<p>পূর্ববর্তী নম্বরযুক্ত নিবন্ধকে সবেমাত্র আটকানো একটিটির সাথে প্রতিস্থাপন করতে কী-বাইন্ডিং ব্যবহার করতে পারেন ।

মূলত আপনি নিজের মতো করে পেস্টিংয়ের দিকে যান, তবে যখন আপনি বুঝতে পারেন যে আপনি ডিফল্ট রেজিস্টারটি ওভাররাইট করেছেন তখন আপনি যা চান <C-P>তা পেঙ্ক করতে চেয়েছিলেন যা আপনি ইয়াঙ্করিং ইতিহাস থেকে সন্ধান করতে এবং প্রতিস্থাপন করতে পারবেন !

এর মধ্যে একটিতে অবশ্যই প্লাগইন থাকতে হবে ...


3

আপনার উদ্দেশ্যে আমি একটি খুব দরকারী ম্যাপিং পেয়েছি:

xnoremap p "_dP

মোছা পাঠ্যটি "ব্ল্যাকহোল রেজিস্টারে" রেখে দেওয়া হয়েছে, এবং ইয়ঙ্কযুক্ত পাঠ্যটি রয়ে গেছে।

সূত্র: http://vim.wikia.com/wiki/Replace_a_word_with_yanked_text


2

উইন্ডোজ সংস্করণে (সম্ভবত লিনাক্সেও), আপনি সিস্টেমের অনুলিপি / পেস্ট বাফারে ব্যবহার করতে পারেন "*y(অর্থাত্ আপনার ইয়ঙ্ক কমান্ডের পূর্বে ডাবল-কোটস এবং অ্যাসেট্রিক) with

এরপরে আপনি সাধারণত প্রতিস্থাপনযোগ্য রেখাগুলি মুছতে পারেন এবং অনুলিপিযুক্ত পাঠ্যটি ব্যবহার করে পেস্ট করতে পারেন "*p


2

আমি 'y'ank এরপরে' _'একটি ব্ল্যাকহোলের পরে 'p'aste' মুছে ফেলার নির্দেশগুলি অনুসরণ করার সময় আমি প্রায়শই একটি ভুল করি 'আমি' y'ank পছন্দ করি, তারপরে আমার পছন্দ মতো মুছুন, তারপরে '0 পি' থেকে 0 টি রেজিস্টার, এটি যেখানে সর্বশেষ অনুলিপি করা পাঠ্যটিতে চাপ দেওয়া হয়।


2

ইমাস-দুষ্ট ব্যবহারকারীদের জন্য, ফাংশনটি (evil-paste-pop)পেস্ট করার পরে এবং কিল-রিংয়ের পূর্ববর্তী এন্ট্রিগুলির মাধ্যমে চক্রটি ট্রিগার করা যেতে পারে। ধরে নেওয়া যাক আপনার কাছে এটি আবদ্ধ <C-p>(Spacemacs এ ডিফল্ট), আপনি আঘাত করবে pহিসাবে অনেক দ্বারা অনুসরণ <C-p>হিসাবে প্রয়োজন।


1

ডিভোরাক ব্যবহারকারীদের জন্য একটি খুব সুবিধাজনক পদ্ধতি হ'ল "_ ব্ল্যাকহোল রেজিস্টারের পরিবর্তে" 1 রেজিস্টারে বিনা শৃঙ্খলাবদ্ধ পাঠ্য মুছে ফেলা, কেবল যদি আপনি একই শিফ্ট প্রেসের সাথে "+ 1 টিপতে পারেন এবং 1 থেকে একটি সুইফ পিংকি মোশন "ডিভোরাকের অবিলম্বে উপরের কীটি (অন্যদিকে প্লাস ডি রয়েছে, যা পুরো কমান্ডটিকে নরক হিসাবে দ্রুত করে তোলে)।

তবে অবশ্যই, "1 রেজিস্টারটি অন্যান্য সুবিধার্থে এটির সুবিধার্থে ব্যবহার করা যেতে পারে তবে আপনি যদি পাঠ্য প্রতিস্থাপনের চেয়ে সাধারণ উদ্দেশ্য না করেন তবে আমি বলতে পারি এটি নিবন্ধটির বেশ ভাল ব্যবহার।


1

আপনি যারা ভার্চুয়াল নির্বাচন এবং পেস্টের মাধ্যমে কোনও পাঠ্য প্রতিস্থাপন করবেন তখন নাম প্রকাশ না করার জন্য প্রাথমিক আগ্রহী আপনার জন্য।

আপনি নিম্নলিখিত সমাধানটি ব্যবহার করতে পারেন যা সহজ এবং আমার পক্ষে সবচেয়ে ভাল কাজ করে:

xnoremap <expr> p 'pgv"'.v:register.'y'

এটি এখানে উত্তর (এবং মন্তব্য) থেকে: ওভাররাইটিং রেজিস্টার ছাড়াই কীভাবে পেস্ট করবেন

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

পিএস: আপনার যদি এমন একটি সহজ বৈকল্পিকের প্রয়োজন হয় যা ইন্টেলজ আইডিয়া প্লাগইন ভিআইএম-সিমুলেশন সহ কাজ করে তবে আপনি এইটি নিতে পারেন (ডাউনসাইড: নামবিহীন নিবন্ধনকে ওভাররাইট করে এমনকি অন্য রেজিস্টারে পেস্ট দেওয়ার জন্য দেওয়া হয়েছিল):

vnoremap p pgvy


1

যারা আইডিয়াভিমের সাথে জেটব্রান্স আইডিই (পিএইচপিস্টর্ম, ওয়েবস্টোরম, ইন্টেলিজ আইডিইএ) ব্যবহার করেন তাদের জন্য। লাইম রিম্যাপ করা nnoremap d "_dএবং এটি একটি লাইন মুছতে ব্যবহার করে আপনি সমস্যার মুখোমুখি হতে পারেন dd। আপনার জন্য সম্ভাব্য সমাধান:nnoremap dd "_dd

আপনার ট্র্যাক সম্পর্কিত সমস্যা রয়েছে, দয়া করে তাদের জন্য ভোট দিন: https://youtrack.jetbrains.com/issue/VIM-1189 https://youtrack.jetbrains.com/issue/VIM-1363


0

ব্যবহারিকতার চেয়ে জটিলতার জন্য ভিমের মাঝেমধ্যে পছন্দগুলি ক্রিয়াকলাপ অনুলিপি / মুছে ফেলার জন্য রেজিস্টার প্রয়োগ করার উপর ভার চাপিয়ে দেয় - যখন প্রায়শই না করা হয়, কেবল অনুলিপি করা জিনিসটি পেস্ট করতে চান এবং মুছে ফেলা যা "ভুলে যান"।

তবে, ভিমের জটিল রেজিস্টারগুলির বিরুদ্ধে লড়াই করার পরিবর্তে তাদের আরও সুবিধাজনক করুন: আপনার সর্বশেষ মুছে ফেলার জন্য "ডিফল্ট" নিবন্ধটি চয়ন করুন। উদাহরণস্বরূপ, ডি রেজিস্টারে মুছুন প্রেরণ করুন (অ্যাড-হক ব্যবহারের জন্য এসি খোলা রেখে; ডি একটি সুন্দর স্মৃতিচারণ)

nnoremap d "dd           "send latest delete to d register
nnoremap D "dD           "send latest delete to d register 
nnoremap dd "ddd         "send latest delete to d register
nnoremap x "_x           "send char deletes to black hole, not worth saving
nnoremap <leader>p "dp   "paste what was deleted
nnoremap <leader>P "dP   "paste what was deleted

এই পদ্ধতিটি মুছে ফেলা রোধ করে বাধা দেয় না তবে মুছে ফেলা নিবন্ধনটি বাজেয়াপ্ত করে না - একটি কৃষ্ণগহ্বরে (স্বীকৃত উত্তরের মতো) হারানোর পরিবর্তে যা মোছা হয়েছিল তা (পেছনে) পেস্ট করতে পারে। উপরের উদাহরণে, এই পুনরুদ্ধারটি দুটি নেতার পি ম্যাপিংয়ের সাহায্যে সম্পন্ন হয়েছে। এই পদ্ধতির একটি সুবিধা হ'ল এটি আপনাকে কী আটকাতে হবে তা চয়ন করার ক্ষমতা দেয়: (ক) সবেমাত্র ইয়াঙ্কড ছিল, বা (খ) কী মুছে ফেলা হয়েছে।


0

0 থেকে 9 এর মধ্যে সর্বশেষতম জিনিস যা আপনি ইয়াঙ্ক করেন বা কাটেন ইত্যাদি, এবং মুছে ফেলা জিনিসগুলি অন্তর্ভুক্ত করবেন না তাই আপনি যদি কোনও কিছু ইয়াঙ্ক / কাটেন তবে এটি 0 নথিতেও রয়েছে, এমনকি যদি আপনি তার পরে সারাদিন মুছে ফেলা জিনিস বলে থাকেন তবে 0 টি রেজিস্টার করুন আপনি এখনও শেষ কাটা / কাট শেষ জিনিস।

yiw # উভয় ডিফল্ট রেজিস্ট্রারে যান এবং 0 টি নিবন্ধ করুন

এটি কর্সার শব্দটি ইয়াঙ্কস করে

মুছে ফেলা জিনিস ইত্যাদি ডিফল্ট রেজিস্ট্রারে যাবে তবে 0 নিবন্ধভুক্ত হবে না

স্ট্যান্ডার্ড মোডে:

"0 পি # নিবন্ধের বিষয়বস্তু 0 চাপুন

সন্নিবেশ মোডে:

ctrl-r 0 # রেজিস্টার 0 এর বিষয়বস্তু লিখুন

আমার এক বন্ধুও ছিল যারা সর্বদা এক্স লোল রেজিস্টার করতে ইয়েঙ্কড / কাটতেন।

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