আমার .vimrc ফাইলটি কেন ভিম করবে না


9

আজ, আমি আমার .vimrcকার্যকর হয়নি পাওয়া গেছে । ঠিক কয়েক ঘন্টা আগে ঠিক ছিল।

যখন আমি সঙ্গে তেজ চালু $vim --plugin, :scriptnamesপ্রতিধ্বনিত কিছুই: .vimrcফাইল sourced হয় নি। (দ্রষ্টব্য: /etc/vimrcএই সমস্যাটি ডিবাগ করার জন্য সরানো হয়েছে))

তারপরে আমি গুগল করার চেষ্টা করেছি এবং $VIMINITভেরিয়েবলকে সন্দেহজনক বলে মনে করেছি।

এখানে এর মান $VIMINIT:

$ echo $VIMINIT
set number

Vim নথিপত্র সম্পর্কে VIMINIT:

 c. Four places are searched for initializations.  The first that exists
    is used, the others are ignored.  The $MYVIMRC environment variable is
    set to the file that was first found, unless $MYVIMRC was already set.
    -  The environment variable VIMINIT (see also |compatible-default|) (*)
       The value of $VIMINIT is used as an Ex command line.
    -  The user vimrc file(s):
                "$HOME/.vimrc"      (for Unix and OS/2) (*)
                "s:.vimrc"          (for Amiga) (*)
                "home:.vimrc"       (for Amiga) (*)
                "$VIM/.vimrc"       (for OS/2 and Amiga) (*)
                "$HOME/_vimrc"      (for MS-DOS and Win32) (*)
                "$VIM/_vimrc"       (for MS-DOS and Win32) (*)
            Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
            "_vimrc" is also tried, in case an MS-DOS compatible file
            system is used.  For MS-DOS and Win32 ".vimrc" is checked
            after "_vimrc", in case long file names are used.
            Note: For MS-DOS and Win32, "$HOME" is checked first.  If no
            "_vimrc" or ".vimrc" is found there, "$VIM" is tried.
            See |$VIM| for when $VIM is not set.
    -  The environment variable EXINIT.
       The value of $EXINIT is used as an Ex command line.
    -  The user exrc file(s).  Same as for the user vimrc file, but with
       "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
       used, depending on the system.  And without the (*)!

আমি ভিম ডকুমেন্টেশন পুরোপুরি বুঝতে পারি না। মনে হচ্ছে এটি $VIMINITভিএম-এর প্রারম্ভকালে গোলমাল করতে পারে।

পরিষ্কার $VIMINIT:

$ VIMINIT=
$ echo $VIMINIT

সমস্যা এখনও আছে।


2
"যে বিদ্যমানটি প্রথমে ব্যবহার করা হবে, অন্যরা তা অগ্রাহ্য করবেন।" $VIMINITযে কোনও .vimrcফাইলের নজির রয়েছে । এবং এটি প্রথম আসা প্রথম পরিবেশন নিয়ম সন্তুষ্ট করে। তাই হ্যাঁ .vimrcউপেক্ষা করা হয়।
সুকীমা

উত্তর:


10

@ এম মন্টুর উত্তরটি প্রসারিত করা; ভিম সেই তালিকার ক্রম সূচনা করার জন্য শিকার করে যতক্ষণ না এটি খুঁজে পায়। যেহেতু $VIMINITভেরিয়েবলটি .vimrcফাইলটির নজির রাখে তাই অনুসন্ধান এবং এটি উপেক্ষা করার পরে অন্য কোনও বিকল্পকে সন্তুষ্ট করে ।

এর পরে এটি কার্যকর না হওয়ার কারণ:

$ VIMINIT=
$ echo $VIMINIT

(1) আপনি একটি স্থানীয় ভেরিয়েবল স্থাপন করছেন পরিবেশ পরিবর্তনশীল নয়। এটি রফতানি করা প্রয়োজন:

$ export VIMINIT=

(২) এটি এখনও কাজ করবে না কারণ VIMINITএখনও সংজ্ঞায়িত:

$ printenv | grep VIMINIT
VIMINIT=

যা হওয়ার দরকার তা হ'ল পরিবেশ থেকে সমস্ত একসাথে অপসারণ:

$ unset VIMINIT
$ printenv | grep VIMINIT || echo "Gone"
Gone

(এই আদেশগুলি বাশ নির্দিষ্ট।


তবে এটি কেবল একটি সেশনের জন্যই কাজ করে, এটি অবশ্যই আনসেট করার বিষয়ে কী? অথবা ভেরিয়েবল সেটটি কোথায় সন্ধান করছে, তাই আপনি গিয়ে এটি মুছতে পারেন?
ফেং ইউ

8

আপনি সম্ভবত ডকুমেন্টেশন ভুল বুঝেছেন:

 c. Four places are searched for initializations.  The first that exists
    is used, the others are ignored.

সুতরাং আপনি যদি ভিআইএমআইএনআইটি ব্যবহার করেন, তবে ভিআমআরসিটি লোড হবে না।

-  The environment variable VIMINIT (see also |compatible-default|) (*)
   The value of $VIMINIT is used as an Ex command line.

আপনি প্রাক্তন কমান্ডে IM VIMINIT সেট করছেন set number, যা ডক্স অনুসারে ঠিক আছে। তবে যদি কোনও ভিএমআরসি পছন্দ করে তবে আপনার set numberfile ভিআইএমআইএনআইটি ব্যবহার না করে সেই ফাইলটিতে অন্তর্ভুক্ত করা উচিত । আপনি উল্লেখ করেছেন যে আপনি এটিকে খালি সেট করেছেন এবং আপনার ভিআরসিআরিকে এখনও লোড করা হয়নি, তবে আপনাকে অবশ্যই ভেরিয়েবলটি আনসেট করা উচিত ।

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