আমি কার্সারটিকে কীভাবে বর্তমান লাইনের কেন্দ্রে নিয়ে যেতে পারি?


17

আমি আমার কার্সারটিকে বর্তমান লাইনের মাঝখানে নিয়ে যেতে পারি কি এমন কোনও উপায় আছে? (পাঠ্য রেখার মাঝখানে - পর্দার প্রস্থের মাঝখানে নয়)

আমি ভাবছিলাম Mযে স্ক্রিনের মাঝখানে কার্সার চালিত করার মতো শর্টকাট আছে কিনা was

সম্পাদনা : বন্ধনীগুলির মধ্যে স্পষ্টতা যুক্ত করা হয়েছে


2
তাহলে কি পুরো লাইনটির মাঝখানে বা পর্দার প্রস্থের মাঝখানে?
মারু

@ মুরু পুরো লাইনের মাঝামাঝি ভাবছিলেন
থমির

2
আপনি কি এই প্রশ্নটি যুক্ত করতে পারেন? এবং মোড়ক দিয়ে কী হবে বলে আপনি আশা করছেন?
মুরু

উত্তর:


16

এটি করার কোনও বিল্টিন উপায় আমি জানি না, তবে এটি করার জন্য আপনার কাছে সহজেই একটি মানচিত্র থাকতে পারে:

nnoremap µ :exe 'normal! '.(virtcol('$')/2).'\|'<cr>

@ ইঙ্গো কারকাত নিম্নলিখিত রূপটির প্রস্তাব করেছিলেন যা ভিসুয়াল মোডেও কাজ করে।

noremap <expr> gM (virtcol('$') / 2) . '<Bar>'

দুর্ভাগ্যক্রমে, এটি নির্বাচন-মোডেও ট্রিগার হয়েছে। ফলস্বরূপ, আমি দম্পতি পছন্দ:

nnoremap <expr> gM (virtcol('$') / 2) . '<Bar>'
xnoremap <expr> gM (virtcol('$') / 2) . '<Bar>'

3
এই রূপটি ভিজ্যুয়াল মোডের জন্যও সঠিকভাবে কাজ করবে:noremap <expr> gM (virtcol('$') / 2) . '<Bar>'
ইনগো কারকাত

15

বিল্ট-ইন gmঠিক এটি করে।


7
নোট করুন যে এটি আপনাকে কনসোল প্রস্থের সাথে রেখার মধ্যবর্তী স্থানে নিয়ে গেছে , রেখার দৈর্ঘ্যের সাথে নয় । সুতরাং, আপনার যদি 10 টি অক্ষরের একটি লাইন এবং 80 টি অক্ষর প্রস্থের একটি কনসোল থাকে তবে কার্সারটি 10 ​​তম অক্ষরে লাইনটিতে শেষ হবে (কারণ এটি 40 তম পেতে "চেষ্টা করছে", 5 তম নয়)।
এফনার্টন

3
হাঁ। প্রশ্ন থেকে, এটি আমরা পরিষ্কার করতে পারি না যে আমরা রেখার মাঝখানে বা পর্দার মাঝখানে খুঁজছি। সাথে সাদৃশ্যটির ভিত্তিতে M, আমি স্ক্রিন ধরে নিয়েছি।
tommcdo

1
আসলে আমি এটি 80-চরিত্রের পাঠ্য সহ একটি প্রশস্ত (প্রায় 180 টি অক্ষর) পর্দায় চেষ্টা করেছি tried কার্সারটি লাইনের শেষ প্রান্তে চলে গেল । খুব দরকারী কমান্ড বলে মনে হচ্ছে না।
বেন

@ বেন এটি লাইনটির শেষ প্রান্তে গিয়েছিল, না এটি পর্দার প্রস্থের কেন্দ্রের কাছাকাছি যেতে পারে? পর্দার চেয়ে 50% এরও বেশি প্রশস্ত লাইনের সাথে এটি ব্যবহার করে দেখুন বা এটি দিয়ে দেখুন :set virtualedit=all
বিট্রি

হ্যাঁ তবে ওপি স্ক্রিনের মাঝখানে নয়, রেখার পাঠ্যের মাঝখানে যাওয়ার জন্য একটি আদেশ চেয়েছিল। সুতরাং এটি প্রশ্নের উত্তর দেয় না।
বেন

3

লুসের উত্তর যুক্ত করতে, ইজিমোশন প্লাগইনও রয়েছে , যা দ্রুত একটি নির্দিষ্ট অবস্থানে দ্রুত বাতাসকে বাতাস তৈরি করে তোলে। টিপে <Leader><Leader>wআপনি কোনও কীতে কী শব্দটি সুনির্দিষ্ট শব্দটিতে যেতে চান তা হাইলাইট করবে। আপনি সহজেই বর্তমান লাইনের মাঝখানে কোনও শব্দের দিকে যেতে পারেন।


1

আপনি যদি পাঠ্যের মাঝখানে যেতে চান (লাইনের শুরুতে শ্বেত স্থানটি বিবেচনা না করে), এটি কাজ করবে:

function! s:Gm()
  execute 'normal! ^'
  let first_col = virtcol('.')
  execute 'normal! g_'
  let last_col  = virtcol('.')
  execute 'normal! ' . (first_col + last_col) / 2 . '|'
endfunction
nnoremap <silent> gm :call <SID>Gm()<CR>

তবে ভিজ্যুয়াল মোডে এটি কাজ করবে বলে আমি মনে করি না।


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