আপনি কীভাবে আপনার .vimrc ফাইলটি পুনরায় লোড করবেন না ভিআইএম পুনরায় চালু না করে?


534

আপনি কি আপনার .vimrcফাইল সম্পাদনা করতে এবং ভিম পুনরায় আরম্ভ না করে পুনরায় লোড করতে পারেন?

উত্তর:


661

আপনি যদি এটি সম্পাদনা করেন তবে আপনি এটিকে আবার লোড করতে পারেন:

:so %

%বর্তমান ফাইলের নাম বোঝায় (দেখুন :h current-file) এবং এর :soজন্য সংক্ষিপ্ত :source, যা নির্দিষ্ট ফাইলটির বিষয়বস্তু পড়ে এবং এটি ভিম কোড হিসাবে বিবেচনা করে।

সাধারণভাবে, বর্তমানে সক্রিয় .vimrc পুনরায় লোড করতে নিম্নলিখিত ব্যবহার করুন ( ডেইলি ভিম দেখুন ):

:so $MYVIMRC

2
কটাক্ষপাত আছে stackoverflow.com/questions/803464/...
mrucci

36
এবং :so ~/.vimrcইউনিক্সে খুব বেশি কাজ করা উচিত
ইয়াব

3
: সুতরাং উইন্ডোতে ~ / _vimrc কাজ করে। অবশ্যই, আমি আমার উইন্ডোজ হোম ডিরেক্টরিতে আমার _vimrc রাখি, অন্যথায় এটি কাজ করবে না। ভিম আপনার হোম ডিরেক্টরিটি কী বিবেচনা করে তা দেখতে, ব্যবহার করুন :echo expand("~")
ড্যানিয়েল মিলাদিনোভ

3
মনে রাখবেন যে যদি কীবোর্ড ম্যাপিংগুলি ইতিমধ্যে স্থানে থাকে তবে নতুন ভিআরসিআরসি থেকে মুছে ফেলা হলেও তারা মুছে ফেলা হবে না
ফানি

বা :so ~/.vim/gvimrcবা যেখানেই আপনি এটি অবশ্যই
রেখেছেন

79

আরও ভাল, আপনি নিজের পরিবর্তনগুলির জন্য ভিমকে কনফিগার করেন এবং কনফিগারটি .vimrcস্বয়ংক্রিয়ভাবে পুনরায় লোড করুন।

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

সূত্র: এসও-তে এই উত্তর

দ্রষ্টব্য: এই নির্দিষ্ট পদ্ধতিটি ভিআইএম কনফিগার ফাইলের বিভিন্ন পরিবর্তনের জন্য নজর রাখে যাতে এটি জিইউআই ভিম, উইন্ডোজ ভিম ইত্যাদির সাথে সামঞ্জস্য হয় etc.


2
এই পদ্ধতিটি কতটা পারফরম্যান্ট?
আলেকজ মাগুরা

আমি দেখতে পেয়েছি যে এই ধরণের কমান্ডটি কখনও কখনও আমার এনভিমকে কয়েক সেকেন্ড বা তার বেশি সময় ধরে স্তব্ধ করে দেয়।
jdhao

11

কী ম্যাপিংস

" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

সম্পূর্ণ স্বয়ংক্রিয় সমাধান

সংরক্ষণের পরে স্বয়ংক্রিয়ভাবে পুনরায় লোড করতে , আপনারটিতে নিম্নলিখিতগুলি যুক্ত করুন $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions
 augroup vimrc     " Source vim configuration upon save
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

এবং তারপরে শেষ বারের জন্য টাইপ করুন:

:so %

পরের বার আপনি নিজের সংরক্ষণ করুন vimrc, এটি স্বয়ংক্রিয়ভাবে পুনরায় লোড হবে।

বৈশিষ্ট্য:

  • ব্যবহারকারীকে কী ঘটেছে তা জানায় (লগ ইনও করে :messages)
  • কনফিগারেশন ফাইলগুলির জন্য বিভিন্ন নাম পরিচালনা করে
  • নিশ্চিত করে যে এটি কেবল আসল কনফিগারেশন ফাইলের সাথেই মেলে (অন্যান্য ডিরেক্টরিতে অনুলিপিগুলি বা অন্যকে উপেক্ষা করে fugitive://)
  • ব্যবহার করা হলে ত্রুটি উত্পন্ন করবে না vim-tiny

অবশ্যই, স্বয়ংক্রিয় পুনরায় লোড কেবল তখনই ঘটবে যদি আপনি নিজের vimrcভিমে সম্পাদনা করেন।


5

মনে রাখার / টাইপ করার একটি বিকল্প :so $MYVIMRCহ'ল এই ম্যাপিং। এটি আপনাকে vimrc ( ev) বা উত্স vimrc ( sv) সম্পাদনা করতে দেয় ।

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.