আমি কীভাবে সহজেই একটি লাইন স্থানান্তর করতে পারি?


47

ভিমে একটি লাইন উপরে বা নীচে সরানোর আদেশ (বা শর্টকাট) কী? আমার বর্তমান কর্মপ্রবাহটি লাইনটি ইয়াঙ্ক করা (অনুলিপি করা) এবং সেই লাইনটি মুছে ফেলা এবং সেই লাইনটি (পেস্ট) করা ਨਾਲੋਂ বেশি।


8
আসলে মধ্যেও মোছার পর থেকে আপনি Yank এড়িয়ে যেতে পারেন: ddkP, নিচে চলন্ত সহজ: ddp
মুরু

উত্তর:


52

প্রথমত, আপনার ইয়েঙ্ক এবং মুছে ফেলার দরকার নেই; দ্বিতীয়টি মুছে ফেলা বিষয়বস্তুগুলিকে (ডিফল্ট বা নির্দিষ্ট) নিবন্ধেও রাখবে। সুতরাং, ddp/ ddkPলাইন এক / নিচে সরানো সাধারণ কমান্ড।

বিকল্পভাবে, আপনি :moveকমান্ডটি ব্যবহার করতে পারেন , অর্থাৎ :move +1/ :move -2; এটি নিবন্ধকে আঁটসাঁট করে না এবং আপনি পুরো ব্যাপ্তিগুলিও সরাতে পারেন। এটি ছোট করার জন্য আপনি কী কী ম্যাপিংগুলি সহজেই সংজ্ঞায়িত করতে পারেন।

আপনি প্লাগিন কিছু মনে না করেন (এবং অতিরিক্ত আরাম যে প্রায়ই তাদের দিয়ে আসে), উভয় টিম পোপের অটুট প্লাগইন এবং আমার LineJuggler প্লাগইন প্রদান ]e/ [eম্যাপিং লাইন (এবং আরো কয়েকটি সরাতে; টিম এর ব্যবহার সম্পর্কে বিভিন্ন আমার হ্যান্ডলিং উপর দৃষ্টি নিবদ্ধ করা লাইন (গুলি))।


36

সবচেয়ে সহজ: :m+বা :m-2যা :moveইনগো প্রস্তাবিত হিসাবে সংক্ষেপে হয় ।

অথবা ভিজ্যুয়াল মোড ( V) ব্যবহার করে লাইনটি কেটে ( d/ x) তারপরে এটি পেস্ট করুন ( p- কার্সারের নীচে, কার্সারের Pউপরে) আপনি পেস্ট করার আগে আপনার কার্সারটিকে সঠিক জায়গায় নিয়ে যান (সুতরাং সংক্ষেপে এটি Vxp/ Vdp)।

ভিজ্যুয়াল মোডে একাধিক রেখাগুলি সরিয়ে নেওয়ার পরে, আপনাকে :m '>+1(এক লাইন নীচে :m '<-2সরানোর জন্য ) বা (একটি লাইন উপরে সরানোর জন্য ) ব্যবহার করতে হবে ।


এখানে নমুনা দরকারী ম্যাপিং ( Shift+ ↑/ Shift+↓):

nnoremap <S-Up> :m-2<CR>
nnoremap <S-Down> :m+<CR>
inoremap <S-Up> <Esc>:m-2<CR>
inoremap <S-Down> <Esc>:m+<CR>

যা সাব্লাইম টেক্সটের অনুরূপ ( উইন / ওএসএক্স )।

এখানে উইম উইকিয়ায় কিছু পরামর্শ দেওয়া হয়েছে :

nnoremap <A-j> :m .+1<CR>==
nnoremap <A-k> :m .-2<CR>==
inoremap <A-j> <Esc>:m .+1<CR>==gi
inoremap <A-k> <Esc>:m .-2<CR>==gi
vnoremap <A-j> :m '>+1<CR>gv=gv
vnoremap <A-k> :m '<-2<CR>gv=gv

সাধারণ মোডে বা সন্নিবেশ মোডে, বর্তমান লাইনটি নীচে সরাতে Alt-j টিপুন বা বর্তমান লাইনটি উপরে সরিয়ে নিতে Alt-k টিপুন।

দৃশ্যমানভাবে রেখার একটি ব্লক নির্বাচন করার পরে (উদাহরণস্বরূপ, ভি টিপে টিপে কার্সারটি নীচে নিয়ে যাওয়া), পুরো ব্লকটি নীচে সরাতে Alt-j টিপুন বা ব্লকটি উপরে সরাতে Alt-k চাপুন।

আরো দেখুন:


2
ভিম উইকিয়া লিঙ্কের জন্য +1। সেখানে কয়েকটি জিনিস শিখেছি।
গোনালো রিবেইরো

কেন জানি না, কিন্তু তারা Gvim খুব ভাল কাজ করে, কিন্তু কাজ করে না টার্মিনাল তেজ মধ্যে আশানুরূপ (এটা মনে হয় এটা tmux সমস্যা হয়)।
CodyChan

11

আমি যদি উপরে লাইনটির সাথে একটি লাইন অদলবদল করতে চাই তবে আমি সাধারণত নিম্নলিখিতটি করি

ddkP

ব্যাখ্যা

  • ডিডি লাইনটি মুছে ফেলবে এবং এটি ডিফল্ট রেজিস্টারে যুক্ত করবে।
  • k একটি লাইন উপরে যাবে (j একটি রেখা নীচে সরবে)
  • পি বর্তমান লাইনের উপরে পেস্ট করবে

3
বর্তমান লাইনটি নিচে নামাতে, ব্যবহার করুনddp
কিঞ্জি

4

এফডাব্লুআইডাব্লু, আমি বছরের পর বছর ধরে এটি ব্যবহার করেছি। এটি স্বয়ংক্রিয়ভাবে ইনডেন্টেশন সামঞ্জস্য করার সময় এটি বর্তমান রেখাকে স্বাভাবিক মোডে বা ভিজ্যুয়াল মোডে নির্বাচনকে উপরে এবং নীচে নিয়ে যায়।

nnoremap ,<Up>   :<C-u>silent! move-2<CR>==
nnoremap ,<Down> :<C-u>silent! move+<CR>==
xnoremap ,<Up>   :<C-u>silent! '<,'>move-2<CR>gv=gv
xnoremap ,<Down> :<C-u>silent! '<,'>move'>+<CR>gv=gv
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.