আমি ভিমকে না রেখে কীভাবে আমার ভিএমআরসি পুনরায় লোড করব?


50

আমি যখন আমার পরিবর্তন করি তখন আমি .vimrcসাধারণত ভিম থেকে প্রস্থান করি এবং আবার এটি খুলি। নতুন .vimrcপরিবর্তনগুলি আবার লোড করার সহজ উপায় কি আছে ?

উত্তর:


47

চালান:

:source $MYVIMRC

vimrcফাইলটি পুনরায় লোড করতে ভিমের ভিতরে । বা, একটি সংক্ষিপ্ত সংস্করণ:

:so $MYVIMRC

কেনারব দ্বারা একটি মন্তব্যে উল্লিখিত ।

আপনি এই ফর্মগুলির কোনওটিকে একটি কীতে মানচিত্র করাও দরকারী বলে মনে করতে পারেন। উদাহরণ স্বরূপ:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
সংক্ষিপ্ত: :so $MYVIMRC
কেনারব

@ টেনরব: আমি এই সম্ভাবনা যুক্ত করেছি; এটি উল্লেখ করার জন্য ধন্যবাদ!
পল গেসলার 21'15

:so $m<ট্যাব> ← অতিরিক্ত শর্ট-কাট
অ্যারন থোমা

3
এর সাথে আরও দুটি কীস্ট্রোক সংরক্ষণ করুন :so %%এই ক্ষেত্রে আপনি যে বাফারটি সম্পাদনা করছেন তার বর্তমান ফাইলের $MYVIMRC
নামটিতে

1
এটি করার সহজতম উপায় হ'ল স্বয়ংক্রিয়ভাবে সংরক্ষণের পরে ভিআমসিআরটি পুনরায় লোড করা - অন্যান্য উত্তরগুলি পরীক্ষা করে দেখুন।
টম হেল

20

আপনি যদি কেবল একবারে ফাইলটি পুনরায় লোড করতে চান

:source $MYVIMRC

পল লিখেছেন হিসাবে সঠিক। যদি আপনি প্রায়শই আপনার ভিএমআরসি পরিবর্তন করেন তবে আপনি নিজের ভিএমআরসি ফাইলটিতে এরকম কিছু যুক্ত করতে পারেন:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

আপনি যখন এটি লিখবেন তখন এটি পুনরায় লোড করবে (সেই ভিএম সেশনের মধ্যে থেকে)


1
johannes: ফাইলটি স্বয়ংক্রিয়ভাবে উত্স করার জন্য আমাদের কি এই কমান্ডের জন্য .vimrc দ্বারা সম্পাদনা করতে হবে?
সাঁই মনোজ কুমার ইয়াদলপতি

5
নোট করুন একটি ভিএমআরসি ফাইলকে অন্যান্য জিনিসও বলা যেতে পারে: উদাহরণস্বরূপ vimrc (যদি এটি ~ / .vim এর মধ্যে থাকে)।
ব্যবহারকারী 50136

1
@ সাইমনোজকুমার ইয়াদলাপতি হ্যাঁ, এএস বলেছিলেন এটি একই বম সেশন হতে হবে। Bufwritepost সূত্রপাত হয় যখন vom লেখে কী করে
জোহানেস

এটির সাথে সমস্যাগুলি: (1) এর সাথে কাজ করে না .vim/vimrc, (২) সদৃশ autocmdটি তৈরি করবে যাতে প্রতিটি পরবর্তী সংরক্ষণাগুলি ধীর হয়ে যায় কারণ একাধিকবার ফাইল পুনরায় লোড হবে, (3) ভিআইএম-ক্ষুদ্রের সাথে আচরণ করে না যা অটোকিমডি রয়েছে এবং এখনও কিছু লিনাক্স বিতরণে ডিফল্ট। এই সমস্যাগুলি সমাধান করার জন্য আমার উত্তর দেখুন।
টম হেল

2
" 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ভিমে সম্পাদনা করেন।

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