ভিমে মুছে ফেলা এবং তারপরে নতুন লাইন ছাড়াই পেস্টিং


11

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

while( pasteInHere )
{
    cin >> n; // Delete this line completely with dd
}

আমি যখন উপরের কোডটি দিয়ে এটি করি তখন:

while( pasteInHere )
cin >> n; // Delete this line completely with dd
{
}

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



1
এটি কোনও সদৃশ নয়, যেমনটি আমি বলেছিলাম যে আমি আরও কার্যকর উপায় চাই তারপরে লাইনটির শুরুতে যেতে চাই, এছাড়াও আমি আসলে নতুন লাইনের চরিত্রের সাথে সম্পূর্ণ লাইনটি সরাতে চাই .... শুধু লাইনের বিষয়বস্তু নয়
আগামী

ওহ, এখন আপনি কী বলতে চাইছেন তা আমি দেখতে পাচ্ছি। আপনি কী অর্জন করতে চাইছেন তা কেবল আমার কাছে খুব পরিষ্কার ছিল না।
চিরসবুজ

1
0Dলাইন ব্রেক ছাড়া লাইন মুছুন। এবং gJলাইনে যোগদানের চেয়ে । এখন আপনি পাঠ্য বিরতি লাইন এবং খালি লাইন ছাড়াই রাখতে পারেন।
অ্যালেক্স ক্রোল

উত্তর:


9

আপনি মুছে ফেলতে চান রেখার উপরের লাইনের যে কোনও জায়গায় যেতে পারেন, তারপরে টিপুন JDএবং pপছন্দসই বিন্দুতে এটি আটকান ।

  • Jদুটি রেখায় যোগ দেয় এবং আপনি মুছে ফেলতে চেয়েছিলেন এমন পাঠ্যের শুরুতে আপনাকে সরিয়ে দেয়। এটি একটি নতুন-লাইন অক্ষর এবং আপনি যে লাইনের স্থানান্তর করতে চান তা মুছে দেয় tes
  • D বর্তমান কার্সার অবস্থান থেকে রেখার শেষ পর্যন্ত মুছে দেয় তবে নতুন-রেখার অক্ষর সংরক্ষণ করে।

ইঙ্গিত: আপনি :puমুছে ফেলা Dবা এর সাথে হাঁটতে থাকলে আপনি ব্যবহার করতে পারেন y$এবং আপনি একটি নতুন লাইন দিয়ে পেস্ট করতে চান ।


3

সত্যিই সহজ নয়, তবে কিছুটা দক্ষ এবং আপনি উভয় ক্রমের জন্য নরমাল-মোড মানচিত্রও তৈরি করতে পারেন:

  • ইয়াঙ্কিং: আপনি যে লাইনে সরে যেতে চান সেখানে যান then ^D"_dd
  • আটকানো: তারপরে আপনি যে শব্দটি প্রতিস্থাপন করতে চান তাতে যান viwp

2

আপনি এমন কিছু অর্জন করতে পারেন যা একটির সাথে বেশ ভাল কাজ করে imap। আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন vimrc:

inoremap <c-a> <c-r>1<esc>k$Jxi

এটি এর জন্য একটি ম্যাপিং তৈরি CTRL-aকরবে এটি সর্বশেষ মুছে ফেলা পাঠ্য (সহ ddবা অনুরূপ) পেস্ট করবে । আপনি যদি পছন্দ করেন তবে অবশ্যই ম্যাপিংয়ের জন্য আলাদা কী ব্যবহার করতে পারেন।

তথ্যসূত্র:

:h i_CTRL-R
:h quote1
:h J

1

এটি আমার জন্যও কিছুটা আসে, এর আগে এটি অনুকূলিতকরণের কথা ভাবেন নি তবে এই ম্যাপিংটি কাজ করে:

nmap dil ^d$

dil"লাইনে মুছে দিন", অনুরূপ হয় diw, di"ইত্যাদি


1

নতুন লাইন ছাড়াই আটকান

এটি আপনার .vimrc ফাইলে রাখুন:

" Paste yanked line without line breaks before/after cursor position
nnoremap gP i<CR><Esc>PkJxJx
nnoremap gp a<CR><Esc>PkJxJx

উদাহরণ:

<span style="color:">danger</span>

এখন আপনি টাইপ করতে পারেন gpসন্নিবেশ করতে #D51B3Fপরে color:যখন আমার কার্সার হয় :সাধারন মোডে আছে।

ইয়াঙ্ক নতুন লাইন ছাড়াই

ফ্লুকাসের উত্তরটি ব্যবহার করুন:

" Delete current line without yanking the line breaks
nnoremap dil ^d$

অভ্যন্তরীণ লাইন মুছে ফেলার সংক্ষিপ্ত রূপ হিসাবে । এটি অগ্রণী ইন্ডেন্টেশন থেকে মুক্তিও পায়।


0

আপনি যে পাঠ্যটি অনুলিপি করতে চান সেটি টিপে নির্বাচন করতে পারেন vএবং তারপরে চাপ দিয়ে এটিকে বাফারে নিয়ে যেতে পারেন yএবং তারপরে যেকোন জায়গায় পেস্ট করুন p। এটি কোনও নতুন লাইন সন্নিবেশ করায় না।


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