Elimipse এ Vim- এ কীভাবে একটি সম্পূর্ণ লাইন নকল করবেন?


1624

আমি কিভাবে একটি পুরো লাইন ডুপ্লিকেট না তেজ একটি অনুরূপ ভাবে Ctrl+ + DIntelliJ আইডিয়া / Resharper অথবা Ctrl+ + Alt+ + / অন্ধকার ?


49
লোকেরা কি আর ভিটমিটার চালায় না? এটি সম্ভবত ভিমকে কীভাবে ব্যবহার করবেন তা শেখার প্রথম পাঁচ মিনিটের মধ্যেই।
ড্যাশ-টম-ব্যাং

131
আপনি কি এই লাইনের সদৃশ করতে চান? Yএস Pইজারা। :)
Stavr00

3
এফডাব্লুআইডাব্লু আমি গত 2 মাসে প্রায় এক ডজন বার ভিমটিউটর করেছি এবং এই ধারণাটি আওতায় আসে না। এটি কীভাবে "পিডি" এবং "ভি - নেভিগেট - ওয়াই" করতে হয় তা জানায়। এটি এখানে যেমন জিজ্ঞাসা করা হয়েছে মোছা না করে কোনও একক লাইন কীভাবে অনুলিপি করবেন তা বলায় না।
danielson317

উত্তর:


2769

yyবা Yলাইন কপি করতে (স্মৃতিসম্বন্ধীয়: Y ANK )
বা
ddকরার elete লাইন (তেজ কপি কি আপনি একটি মধ্যে মোছা ক্লিপবোর্ড-মত "নিবন্ধন", একটি মত কাটা অপারেশন)

তারপর

pথেকে পি Aste কপি বা পাঠ্য মোছা হয়েছে পর বর্তমান লাইন
বা
Pকরার পি Aste কপি বা মোছা টেক্সট সামনে বর্তমান লাইন


129
একটি দুর্দান্ত পয়েন্ট। যদিও কিছু কারণে, আমি আমার জন্য দুবার Y আঘাত করা শিফট-
ওয়াইয়ের

25
@ ক্যামফ্লান আমি মনে করি Y এর "কর্সার থেকে শেষ পর্যন্ত অনুলিপি" হওয়া উচিত
জাজং নগুইন

42
এবং 2 তম 2 টি লাইন অনুলিপি করতে ব্যবহৃত হতে পারে (এবং অন্য কোনও এন এর জন্য)
আমির আলী আকবরী

5
@nXqd: হ্যাঁ, ব্যবহারকারীরা একটি বড় শতাংশ মানচিত্র Yথেকে y$। ( Dএবং এর সাথে সামঞ্জস্যপূর্ণ C; (তবে vi সুসংগত নয় (কারও যত্ন নেই)))) এমনকি এটি প্রস্তাবিত :help Y
হারুন থোমা

11
দুটি লাইন অনুলিপি করতে, এটি কেবল আরও দ্রুতগতিতে যেতে yjবা ykবিশেষত যেহেতু আপনি একটি চরিত্রের দ্বিগুণ হন না। প্লাস, ykএকটি পিছনের সংস্করণ যা 2yyকরতে পারে না এবং আপনি লাইনগুলির সংখ্যা পিছনে y9jবা অন্যান্য দিকে পৌঁছাতে পারেন y2kOnly কেবলমাত্র পার্থক্য হ'ল আপনার গণনা n-1মোট nলাইনগুলির জন্য হতে হবে তবে আপনার মাথাটি শিখতে পারে যাহাই হউক না কেন।
জেল্ক

406

সাধারণ মোড: অন্যান্য উত্তর দেখুন।

প্রাক্তন উপায়:

  • :t. লাইনটি নকল করবে,
  • :t 7 7 নং লাইনের পরে এটি অনুলিপি করবে,
  • :,+t0ফাইলের শুরুতে বর্তমান এবং পরবর্তী লাইনটি অনুলিপি করবে ( ,+পরিসীমাটির প্রতিশব্দ .,.+1)
  • :1,t$কার্সার অবস্থান থেকে শুরু থেকে শেষ অবধি লাইনগুলি অনুলিপি করবে ( 1,পরিসীমাটির প্রতিশব্দ 1,.)।

আপনার যদি অনুলিপি পরিবর্তে সরানো দরকার হয় তবে তার :mপরিবর্তে ব্যবহার করুন :t

যদি আপনি এটি সঙ্গে মেশা এই সত্যিই শক্তিশালী হতে পারে :gবা :v:

  • :v/foo/m$ ফাইলের শেষের দিকে "foo" প্যাটার্নটির সাথে মেলে না এমন সমস্ত লাইন সরানো হবে।
  • :+,$g/^\s*class\s\+\i\+/t.ফর্মের পরবর্তী সমস্ত লাইনগুলি class xxxকার্সারের ঠিক পরে কপি করবে ।

রেফারেন্স: :help range, :help :t, :help :g, :help :mএবং:help :v


1
আপনি যখন :ভিজ্যুয়াল মোডে টিপেন, এটি রূপান্তরিত হয় '<,'>তাই এটি ভিজ্যুয়াল নির্বাচনটি বিস্তৃত লাইন পরিসীমাটিকে পূর্বনির্বাচিত করে। সুতরাং, ভিজ্যুয়াল মোডে, :t0শুরুতে লাইনগুলি অনুলিপি করবে।
বেনোইট

1
রেকর্ডের জন্য: আপনি যখন কলোন টাইপ করেন (:) আপনি কমান্ড লাইন মোডে যান যেখানে আপনি প্রাক্তন কমান্ড সন্নিবেশ করতে পারেন। vimdoc.sourceforge.net/htmldoc/cmdline.html প্রাক্তন কমান্ডগুলি সত্যই শক্তিশালী এবং ক্ষয়যোগ্য হতে পারে। Yyp সমাধানগুলি হ'ল "নরমাল মোড" কমান্ড। আপনি যদি কোনও দূরবর্তী লাইনের লাইন বা রেঞ্জের সীমাটি অনুলিপি / সরানো / মুছতে চান তবে প্রাক্তন কমান্ডটি আরও দ্রুত হতে পারে।
নীলস বোম

7
উত্তরটির মতো সমস্যার কারণে ক্ষয়ক্ষতি হয়নি (যদিও এটি আমার পরিস্থিতির জন্য কাজ করবে না, আমি যে লাইন নম্বরটি নকল করতে চাই তা আমার কোনও ধারণা নেই) তবে কারণ এটি অবশ্যই এর পক্ষে শীর্ষ / স্বীকৃত উত্তর হওয়া উচিত নয় সাধারণত অনুসন্ধান করা প্রশ্ন।
mjaggard

9
@ এমজ্যাগগার্ড: স্বীকৃত উত্তরগুলি তাদের স্কোর নির্বিশেষে সর্বদা শীর্ষে থাকে। হ্যাঁ আমি সেই উত্তরটি পরিপূরক হিসাবে যুক্ত করেছি এবং মনে হয় এটি ওপিটির পক্ষে খুব ভাল suited
বেনোইট

7
:t.প্রশ্নের সঠিক উত্তর।
বুড়াক এরডেম

293

YPবা Ypবা yyp


Yy$যদিও সাধারণত লাইনের শেষ অবধি (ইয়ঙ্ক (অনুলিপি)) এ রিম্যাপ করা হয় (বর্তমান কার্সার অবস্থান থেকে, লাইনটির শুরু নয়))। এই লাইনের সাথে .vimrc::nnoremap Y y$
অ্যারন থোমা

1
দরিদ্র yyP
পুরানোটি

253

ভিএম এ কপি এবং পেস্ট করুন

এর চেয়ে সহজ আর কিছু পায় না! সাধারণ মোড থেকে:

yy

তারপরে যে লাইনে আপনি পেস্ট করতে চান তাতে যান

p

34
আপনি জিআইএফ তৈরি করতে কী ব্যবহার করেছেন?
জুলটান

4
@ জোল্টন আপনি লিসক্যাপ ব্যবহার করতে পারেন যা ছোট আকারের
onwayway133

53

yy

বর্তমান লাইনটি এটি মোছা না করে ইয়েঙ্ক করবে

dd

বর্তমান লাইন মুছে ফেলবে

p

putপূর্ববর্তী পদ্ধতির যে কোনও একটি দ্বারা লাইন ধরা হবে


3
এই প্রথম এসেছিল তবে এটির সদৃশটি গৃহীত হয়েছে: stackoverflow.com/a/73357/1438029
জেফ্রি হেল

44

এটা কর:

প্রথমে yyবর্তমান লাইনটি অনুলিপি করতে এবং তারপরে pপেস্ট করতে।


20
স্থানটি টাইপ করবেন না।
নীলস বোম

1
হ্যাঁ, যদি কার্সারটি যদি লাইনের শেষে থাকে এবং আপনি স্পেসটি টাইপ করে টাইপ করেন তবে আপনি যে রেখাটি হাঁকিয়েছেন তার নিচে 2 টি লাইন হ্যাঙ্ক করেছেন uplic

43

আপনি যদি অন্যভাবে চান:

"ayy: এটি লাইনটি বাফারে সংরক্ষণ করবে a

"ap: এটি aকার্সারে বাফার সামগ্রীগুলি রাখবে।

এটিতে বিভিন্ন প্রকরণ রয়েছে।

"a5yy: এটি 5 টি লাইন বাফারে সংরক্ষণ করবে a

আরও মজাদার জন্য " Vim সহায়তা ফাইলগুলি দেখুন।


ধন্যবাদ, আমি এটি একটি বাঁধাই হিসাবে ব্যবহার করেছি: মানচিত্র <লিডার> ডি "এআই" এপি
ফ্রিবল

39

yyp - "ইয়িপি!" দিয়ে এটি মনে রাখবেন!

এর মধ্যে একটি সংখ্যার সাথে একাধিক লাইন:

y7yp


17
7 হ'ল y7y এর সমতুল্য এবং কীভাবে করবেন তা মনে রাখা সম্ভবত সহজ।
ধুসর 21

10
y7yp (বা 7yyp) খুব কমই কার্যকর; কার্সারটি অনুলিপি করা প্রথম লাইনে থাকবে যাতে পি উত্সের প্রথম এবং দ্বিতীয় লাইনের মধ্যে অনুলিপি করা রেখাগুলি আটকে দেয়। লাইনের একটি ব্লকের সদৃশ করতে 7yyP ব্যবহার করুন
নেফ্রবায়ার

@ নেফ্রুবায়ার বা :.,.+7 copy .+7: পি
ডার্কউইপ্লাইয়ের

23

yyp - পরে পেস্ট করুন

yyP - আগে পেস্ট করুন


6
যেহেতু লাইনটি নকল করা হচ্ছে, তাই সামগ্রীর শেষ ফলাফল একই।
একিউম্যানাস

4
@ এএবিবি তবে এখানে একটি ক্ষুদ্রতর পার্থক্য রয়েছে - আপনার কার্সারটি কোন লাইনে অবতরণ করবে।
মিক্ক

12

আমি পছন্দ করি: Shift+ v(তত্ক্ষণাত পুরো লাইনটি নির্বাচন করতে এবং আপনি চাইলে অন্যান্য লাইনগুলি নির্বাচন করতে দিন), y, পি


11

আপনি <Cx> <Cl> চেষ্টাও করতে পারেন যা সন্নিবেশ মোড থেকে শেষ লাইনটি পুনরাবৃত্তি করবে এবং সমস্ত লাইনের সাথে একটি সমাপ্তি উইন্ডো নিয়ে আসবে। এটি প্রায় <সিপি> এর মতো কাজ করে


এটি খুব দরকারী, তবে অনেকগুলি কী চাপতে না এড়াতে আমি এটি কেবলমাত্র সিটিআরএল-এল-এ ম্যাপ করেছি, এটি আমার মানচিত্র: উদ্ভাস ^ এল ^ এক্স ^ এল
জর্জে গাজন

11

আর একটি বিকল্প সঙ্গে যেতে হবে:

nmap <C-d> mzyyp`z

আপনাকে কার্সার অবস্থান সংরক্ষণের সুবিধা দেয়।


10

ভিআই জানেন না এমন কারও জন্য উপরের কিছু উত্তর তাকে " বর্তমান লাইনের পরে / আগে" পেস্ট ... এর মতো বাক্যাংশ দিয়ে ভুল পথে চালিত করতে পারে ।
এটি আসলে "পেস্ট ... কার্সারের পরে / আগে "।

yyঅথবা Yলাইনটি অনুলিপি করতে
বা লাইনটি
ddমুছতে

তারপর

pঅনুলিপি করা বা মোছা লেখা পেস্ট করবেন পর কার্সার
বা
Pকপি বা মোছা লেখা পেস্ট করবেন সামনে কার্সার


আরও কী বাইন্ডিংয়ের জন্য আপনি এই সাইটটি দেখতে পারেন: vi সম্পূর্ণ বাঁধাই তালিকাটি সম্পূর্ণ করুন


3

১ টি গোচা: আপনি যখন লাইন রাখার জন্য "পি" ব্যবহার করেন, তখন আপনার কার্সারটি চালু হওয়ার পরে এটি রাখে , সুতরাং আপনি যে লাইনের সাথে হাঁটছেন তার পরে যদি আপনি লাইনটি যুক্ত করতে চান তবে কার্সারটিকে একটি লাইনের নীচে সরান না নতুন লাইন লাগানোর আগে।


4
অথবা পূর্বে পুঁজি ব্যবহার করুন
ঘোটি

3

ডিফল্ট হয় yyp, তবে আমি এক বছর বা তার বেশি সময় ধরে এই রিব্যান্ডিংটি ব্যবহার করছি এবং এটি ভালবাসি:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv


3

আমি জানি আমি পার্টিতে দেরি করেছি, তবে যাই হোক না কেন; আমার .vimrc এ এটি আছে:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

:copyকমান্ড শুধু কপি নির্বাচিত লাইন বা ব্যাপ্তি (সবসময় পুরো লাইন) করতে নিচের লাইন সংখ্যা তার আর্গুমেন্ট হিসাবে দেওয়া।

সাধারণ মোডে এটি যা করে তা হ'ল copy . এই লাইনটির ঠিক নীচে অনুলিপি করা

এবং চাক্ষুষ মোডে তা সক্রিয় '<,'> copy '> নির্বাচন নির্বাচন শেষে নিচের লাইন নির্বাচন শেষে শুরু থেকে কপি


1
↑↑ সেরা উত্তর এখানে!

2

যারা ভিআই শিখতে শুরু করেন তাদের জন্য, টিপিক্যাল উইন্ডোজ জিইউআই এডিটর কার্সার মুভমেন্ট এবং শর্টকাট কীগুলিতে পাশাপাশি বাই কমান্ডের তালিকাভুক্ত করে vi এর একটি ভাল পরিচয় দেওয়া হয়েছে। এটি yy(অনুলিপি লাইন) এবং p(পরে পেস্ট করুন) বা P(আগে পেস্ট করুন ) সহ সমস্ত বুনিয়াদি কমান্ড তালিকাভুক্ত করে ।

vi (Vim) উইন্ডোজ ব্যবহারকারীদের জন্য


1

আপনি যদি একটি লাইন সদৃশ করতে চান এবং এটি এখনকার মতো নীচে সরাসরি পেস্ট করতে চান, যেমন sublime Ctrl+ Shift+ এর মতো D, তবে আপনি এটি আপনার .vimrcফাইলে যুক্ত করতে পারেন ।

nmap <S-C-d> <Esc>Yp

বা, সন্নিবেশ মোডের জন্য:

imap <S-C-d> <Esc>Ypa


এটি সন্নিবেশ মোডটি ছেড়ে দেয়, এবং কেবল এটি iপুনরায় প্রবেশের জন্য শেষটি যুক্ত করে ব্রেক হয়ে যায় undo, সুতরাং সন্নিবেশ মোডে লুপগুলি নকল করার সমাধানটি যেমন মনে হয় তত তুচ্ছ নয়।
DarkWiiPlayer

এটি আমার পক্ষে পুরোপুরি সূক্ষ্মভাবে কাজ করে: imap <S-C-d> <Esc>Ypi সন্নিবেশ মোডে এবং nmap <S-C-d> <Esc>Ypসাধারণ মোডে
jedi

0

আমি এই ম্যাপিংটি ব্যবহার করতে চাই:

:nnoremap yp Yp

কারণ এটি স্থানীয় YPকমান্ডের পাশাপাশি ব্যবহার করতে সামঞ্জস্যপূর্ণ করে তোলে ।

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