ভিআই এডিটারের একটি প্রদত্ত লাইন নম্বরটিতে বর্তমান কার্সার অবস্থান থেকে মুছুন


108

আমি কীভাবে বর্তমান কার্সার সারি থেকে vi তে প্রদত্ত রেখা নম্বরে পাঠ্যের একটি ব্লক মুছব?

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

 49 <j:set var="changeSet" value="${build.changeSet}" /> <----- delete from here (cursor position)
 50 <j:if test="${changeSet!=null}">
 51   <j:set var="hadChanges" value="false" />
 52   <TABLE width="100%">
 53     <TR><TD class="bg1" colspan="2"><B>CHANGES</B></TD></TR>
 54     <j:forEach var="cs" items="${changeSet.logs}" varStatus="loop">
 55       <j:set var="hadChanges" value="true" />
 56       <j:set var="aUser" value="${cs.hudsonUser}"/>
 57       <TR>
 58         <TD colspan="2" class="bg2">${spc}Revision <B>${cs.revision}</B> by
 59           <B><j:choose>
 60             <j:when test="${aUser!=null}">${aUser.displayName}: </j:when>
 61             <j:otherwise>${cs.user}: </j:otherwise>
 62           </j:choose></B>
 63           <B>(${cs.msgAnnotated})</B>                <----- to here (line 63)
 64          </TD>
 65       </TR>
 66       <j:forEach var="p" items="${cs.paths}">
 67         <TR>
 68           <TD width="10%">

ভিমে আমি সাধারণত এর জন্য ভিজ্যুয়াল সিলেকশন মোডটি ব্যবহার করব তবে আমার এই সার্ভারে আমার কাছে ভিম নেই। কিছু ক্ষেত্রে ব্লকের মধ্যে কতগুলি লাইন রয়েছে তা গণনা করার পরিবর্তে কোনও লাইন নম্বর নির্দিষ্ট করা দ্রুত হবে।


উত্তর:


210

আপনি d63Gবর্তমান লাইন থেকে লাইন until৩ পর্যন্ত মুছে ফেলার মতো কিছু ব্যবহার করতে পারেন ।


5
ওহ, সাধারণ মোডে একটি সমাধান - আরও ভাল!
seanhodges

50
এটি যুক্ত করতে, আপনি যদি 45 এর মাধ্যমে 45 লাইনগুলি মুছতে চান তবে আপনি এটি করুন: 45,64 ডি
থিংকোড

110

একটি থেকে বি ব্যবহার থেকে মুছতে

:a,bd

বর্তমান থেকে ব্যবহার পর্যন্ত

:,bd

(যেখানে একটি এবং কোডে আপনার নম্বর দ্বারা প্রতিস্থাপিত হয়)


1
চমৎকার। উপরের মুছে ফেলার উদাহরণটি সম্পাদন করতে আমি ":।, 63 ডি" করতে সক্ষম হয়েছি। ধন্যবাদ উদাস!
seanhodges

13

গৃহীত উত্তর হিসাবে একই, তবে টাইপ করতে কিছুটা দ্রুত:

d63gg বর্তমান লাইন থেকে লাইন 63 এ মুছে ফেলা হয়।


8

লাইন গণনা কেন? আপনি মুছে ফেলতে চান এমন সর্বশেষ লাইনে যান এবং maএটি সনাক্তকারী "এ" দিয়ে কোনটি "চিহ্নিত" করে টাইপ করে এটি চিহ্নিত করুন। তারপরে আপনি মুছে ফেলতে চান এমন শীর্ষে যান এবং d'a"এ" চিহ্নিত করতে মুছুন টাইপ করুন । বাম!


কাজ করে না (vim 7.4.160, CentOS)। সম্ভবত এটির জন্য কিছু এক্সটেনশন বা বিশেষ কনফিগারেশন প্রয়োজন।
জার্মান খোখলোভ

6

Vi এর লাইনের একটি ব্লক মুছতে:

n: লাইন নম্বর থেকে হয়

m: হয় থেকে লাইন সংখ্যা

  1. বর্তমান লাইন থেকে প্রদত্ত রেখা নম্বর পর্যন্ত-

    :,md

  2. নির্দিষ্ট লাইন নম্বর থেকে / থেকে

    :n,md

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