আমি সম্প্রতি যে ফাইলগুলিতে খুলেছি সেখানে অবস্থানগুলিতে ঝাঁপ দিতে আমি কীভাবে চিহ্নগুলি ব্যবহার করতে পারি, তবে পরিবর্তন হয়নি?


11

প্রায়শই আমি কোনও ফাইল সম্পাদনা করি - আমার কাজটি মনে হয় - তারপরে ফাইলটি বন্ধ করুন এবং পরবর্তী জিনিসটিতে এগিয়ে যান। তবে আমি বুঝতে পেরেছিলাম যে আমাকে সেই কোডটিতে ফিরে যেতে হবে এবং আরও কিছুটা টুইট করতে হবে।
যদি আমি আবার ফাইলটি খুলি, আমি .চিহ্নটি ব্যবহার করতে পারি এবং শেষ সম্পাদনাটির অবস্থানে যেতে পারি '.
আমি সম্প্রতি আমি যে ফাইলগুলিতে দেখেছি সেখানে লোকেশনগুলিতে ঝাঁপিয়ে পড়ার জন্য ভিএম এর চিহ্নগুলি ব্যবহার করার একটি উপায় অনুসন্ধান করার চেষ্টা করছি, তবে পরিবর্তন হয়নি changed
আমি জানি আমি নিজেই একটি চিহ্ন সেট করতে পারি তবে বেশিরভাগ সময় আমি ফিরে আসার প্রত্যাশা করি না এবং তাই আমি কোনও চিহ্ন সেট করি না এবং ভিম স্বয়ংক্রিয়ভাবে উত্পন্ন হওয়া চিহ্নটি ব্যবহার করার প্রয়োজন হয় না। চিহ্ন দেখে মনে হচ্ছে এই একটি উপায় থেকে এই অর্জন হতে পারে ।
":h motion

" কার্সার অবস্থানে সর্বশেষ বর্তমান বাফারটি প্রস্থান করার সময়। প্রথম লাইনের প্রথম চরিত্রের ডিফল্ট। দেখুন | শেষ অবস্থান-লাফ | প্রতিটি খোলা ফাইলের জন্য এটি কীভাবে ব্যবহার করতে হয় তার জন্য। প্রতিটি উইন্ডোর জন্য একটি নয়, বাফার প্রতি কেবল একটি পজিশন মনে রাখা হয়। যতক্ষণ না কোনও উইন্ডোতে বাফার দৃশ্যমান হয় ততক্ষণ অবস্থানটি পরিবর্তন করা হবে না। Vi ভি তে নয়}

তবে আমি যদি

  • একটি বাফার দেখাচ্ছে সমস্ত উইন্ডো বন্ধ করুন (তবে বাফার এখনও বাফার তালিকায় উপস্থিত রয়েছে)। বা:
  • বাফার সমস্ত দৃষ্টান্ত হত্যা

চিহ্নটি আপডেট হতে পারে বলে মনে হচ্ছে না, আমি বাফার / ফাইলের সর্বশেষ কার্সারের অবস্থানে গিয়ে কোনও চিহ্নটি কীভাবে ব্যবহার করতে পারি?


2
আমি মনে করি আপনি খুঁজছেন Ctrl+oএবং Ctrl+i... :h jump-motionsআরও তথ্যের জন্য
Sundeep

@ স্প্যাসিক কোনও খারাপ পরামর্শ নয়, তবে একবার আপনি কয়েক ডজন লাফিয়ে উঠলে একটি বিশাল জাম্পের তালিকায় অবস্থানটি হারিয়ে যাবে। বাফারের সাথে চিহ্নগুলি
স্কোপ করে

আপনি যদি এটি ইতিমধ্যে না পড়ে থাকেন তবে আমার ধারণা এই টিপটি আকর্ষণীয় হবে। হতে পারে আপনি আপনারviminfo
স্ট্যাটক্স

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

উত্তর:


6

এখানে একটি ক্লাসিক সমাধান: ব্যবহার

`H

শেষ এইচটিএমএল ফাইলে ঝাঁপিয়ে পড়া এবং আরও কিছু…

augroup VIMRC
  autocmd!

  autocmd BufLeave *.css  normal! mC
  autocmd BufLeave *.html normal! mH
  autocmd BufLeave *.js   normal! mJ
  autocmd BufLeave *.php  normal! mP
augroup END

2
ধন্যবাদ, মনে হচ্ছে এটি সত্যিই দরকারী হতে পারে। এটি চেষ্টা করার জন্য আমি এটি আমার ভিআরসিআর-এ লোড করেছি। আমি অটোকোমডে পরিবর্তিত হয়েছি WinLeaveযেহেতু আমি লক্ষ্য করেছি BufLeaveযে আপনি বিভাজন বন্ধ করলে এবং বাফারটি অন্য কোথাও খোলা থাকলে আগুন জ্বলবে বলে মনে হচ্ছে না। আমি এটিকে কিছুটা কিন্ত জানি, তবে WinLeave"ফাইল
ক্লোজারিং

3

আমি এই vimscript বিবৃতি লিখেছিলাম যা মনে হয় কাজ করে

autocmd BufLeave * :normal ml

ব্যাখ্যা

  • BufLeave স্বয়ংক্রিয় কমান্ড: আপনি যখন এটি ট্রিগার বলে মনে হচ্ছে
    • অন্য উইন্ডোতে সরান
    • আপনি যখন বাফারটি প্রদর্শন করে শেষ উইন্ডোটি বন্ধ করেন
    • আপনি যখন বাফারটি নিজেই বন্ধ করেন bd
  • :normal- এটি ডিফল্টরূপে মনে হয়, commandঅটোকিমডির অংশটি একটি প্রাক্তন কমান্ড। সুতরাং একটি সাধারণ মোড কমান্ড চালানোর জন্য ভিএমকে বলতে, আপনাকে যুক্ত করতে হবে:normal
  • ml- একটি চিহ্ন সেট করুন l(স্মৃতিবিহীন: শেষ )

ব্যবহার

আপনি যখন বাফারে চলেছিলেন তখন শেষবারের থেকে কার্সারের অবস্থানটি স্মরণ করতে

'l

অথবা

`l

0

আপনি যদি নিজের কার্সারটি ভিমনফোর সাথে পরিচিত সর্বশেষ অবস্থানটি পুনরুদ্ধার করতে চান তবে আপনি এটি ব্যবহার করতে পারেন

autocmd BufReadPost * call setpos(".", getpos("'\""))

রোমেনেলের উত্তরটি আমার পক্ষে বিশেষভাবে কার্যকর হয়েছে এবং আমি এটি প্রচুর ব্যবহার করছি (যেহেতু আমি একটি ওয়েব দেব):

augroup VIMRC
    autocmd!
    autocmd BufLeave,WinLeave *.html normal! mH
    autocmd BufLeave,WinLeave *.css normal! mC
    autocmd BufLeave,WinLeave *.js normal! mJ
augroup end

nnoremap <space>h `Hzz
nnoremap <space>c `Czz
nnoremap <space>j `Jzz

চূড়ান্ত সম্ভাব্য দরকারী জিনিস হ'ল বিকল্প :help 'nostartofline:

               *'startofline'* *'sol'* *'nostartofline'* *'nosol'*
'startofline' 'sol' boolean (default on)
            global
            {not in Vi}
    When "on" the commands listed below move the cursor to the first
    non-blank of the line.  When off the cursor is kept in the same column
    (if possible).  This applies to the commands: CTRL-D, CTRL-U, CTRL-B,
    CTRL-F, "G", "H", "M", "L", gg, and to the commands "d", "<<" and ">>"
    with a linewise operator, with "%" with a count and to buffer changing
    commands (CTRL-^, :bnext, :bNext, etc.).  Also for an Ex command that
    only has a line number, e.g., ":25" or ":+".
    In case of buffer changing commands the cursor is placed at the column
    where it was the last time the buffer was edited.
    NOTE: This option is set when 'compatible' is set.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.