আমি কীভাবে একটি বাহ্যিক ফাইল থেকে .vimrc পড়তে পারি?


24

আমি কোনও .vimrcবাহ্যিক ফাইল থেকে ভেরিয়েবলের মান পড়তে আমার পরিবর্তন করতে চাই । কিভাবে আমি এটি করতে পারব?

বিশেষত, একটি বন্ধু এবং আমি আমাদের .vimফাইলগুলির সাথে একটি গিট রেপো ভাগ করি , তবে আমাদের কনফিগগুলিতে আমরা যা চাই তার মধ্যে কয়েকটি ছোট পার্থক্য রয়েছে। সুতরাং বেশিরভাগ ফাইল সাধারণ, তবে আমরা ব্যবহারকারী-নির্দিষ্ট বিভাগগুলি লোড করতে হবে কিনা তা নির্ধারণ করতে যদি বিবৃতি ব্যবহার করে:

let whoami = "user2"
if whoami == "user1"
...

.vimrcউত্স নিয়ন্ত্রণের বাইরে আমাদের সাধারণ পরীক্ষা করার পরে , আমাদের প্রত্যেককে let whoamiঅ্যাসাইনমেন্টটি পরিবর্তন করতে হবে যাতে আমাদের নিজস্ব বিভাগটি লোড হবে। পরিবর্তে, আমি একটি পৃথক ফাইল রাখতে চাই, যা আমাদের প্রত্যেকের জন্য আলাদা হতে পারে এবং যেটি থেকে ভিআইএম সেই পরিবর্তনশীল মানটি লোড করবে।

সম্ভবত এর অন্য একটি কোণ হ'ল: আমার .vimডিরেক্টরিতে থাকা সমস্ত ফাইল স্বয়ংক্রিয়ভাবে উইম পড়বে ? যদি তা হয় তবে আমরা প্রত্যেকে সেখানে ইউজারনেম.ভিম নামে একটি সিমিলিংক রাখতে পারি এবং এটি আমাদের বাহিরের জন্য আলাদা হতে পারে এমন একটি বাহ্যিক ফাইলের সাথে লিঙ্ক করতে পারি।

উত্তর:


35

আপনার মূল .vimrc ফাইলে:

source otherVimScriptFilePath.vim

তারপরে সেই ফাইলটিতে আপনার পরিবর্তনশীল বিবৃতিটি রেখে দিন:

" otherVimScriptFilePath.vim
let whoami = "user1"

2
এফওয়াইআই - আমার পরিস্থিতিতে লাইনের let whoami = ""ঠিক আগে কাজটি করা সহায়ক sourceছিল, যাতে এটি যদি বাহ্যিক ফাইলটি লোড করতে ব্যর্থ হয় তবে ভেরিয়েবলটি উপস্থিত থাকে এবং ভেরিয়েবলটি সেট না হওয়ার জন্য আমরা পূর্ববর্তী যে ত্রুটি বার্তাটি সেট করেছি তা পেয়েছি get
নাথান লং

2
@ গরিলাস্যান্ডউইচ: আমি উইন্ডোজ মেশিনে আমার ভিমির্ক উত্স হিসাবে ব্যবহার করি যেহেতু উইন্ডোজগুলির প্রতীকী লিঙ্ক নেই। আমার কাছে একটি এসভিএন ফোল্ডার রয়েছে যাতে এটি এবং আমার সমস্ত অন্যান্য ডট-ফাইল রয়েছে। সুতরাং আমার কাছে কেবল একটি _ ভিআইএমআরসি রয়েছে যা এসএনএন ফোল্ডারে আসলটি উত্স করে।
রবার্ট এস সিয়াসিও

@GorillaSandwich: আমার উত্তর দেখার silent! sourceঅংশ
আকিরা

6

একটি চেষ্টা / ধরা ব্যবহার করে

এই প্রশ্নটি জিজ্ঞাসা করার পরে, আমি একটি বাহ্যিক ফাইল লোড করার জন্য আরেকটি ব্যবহারের মামলা নিয়ে এসেছি: মেশিন-নির্দিষ্ট টুইটগুলি।

যেহেতু কোনও প্রদত্ত মেশিনে আমার টুইট করতে বা প্রয়োজন হতে পারে না, তাই আমি try/catchবাহ্যিক ফাইলটি লোড করতে একটি ব্যবহার করছি ; যদি এরকম কোনও ফাইল না থাকে তবে আমি এটিকে নিঃশব্দে ব্যর্থ হতে দিই।

" If there are any machine-specific tweaks for Vim, load them from the following file.
try 
  source ~/.vimrc_machine_specific
catch
  " No such file? No problem; just ignore it.
endtry 

5

শেষ প্রশ্নের উত্তর দেওয়ার জন্য, ফাইলগুলি ~/.vimস্বয়ংক্রিয়ভাবে লোড হয় না তবে সমস্ত ফাইল ~/.vim/pluginরয়েছে।


2
এবং other / .vim ( after, autoload) এর নীচে কিছু অন্যান্য স্থান
আকিরা

4

:sourceকমান্ডটি ব্যবহার করে আপনার ~ / .vimrc অন্য কোনও ফাইল লোড করতে পারে । উদাহরণস্বরূপ, আপনি প্রত্যেকে আপনার অনন্য কমান্ডগুলি ~ / .myvimrc এ রাখতে এবং সেই আদেশগুলি দিয়ে লোড করতে পারতেন

source ~/.myvimrc

অথবা, আপনি যেমন ভেবেছিলেন, আপনি প্রত্যেকে নিজেরাই এই ফাইলটিতে নিজের নাম লিখতে পারেন:

let user = "user1"

এবং তারপরে এটি আপনার ~ / .vimrc এ রাখুন:

source ~/.myvimrc
if user == "user1"
    " do this
elseif user == "user2"
    " do that
else
    echo "Invalid user"
endif

আপনার নামগুলি ফাইলে রাখার পরিবর্তে, আপনি ira ব্যবহারকারীকে আকিরের প্রস্তাবিত হিসাবে ব্যবহার করতে পারেন, বা এটি userব্যবহার করে সেট করতে whoamiপারেন:

let user = substitute(system('whoami'), '\n', '', '')

বিকল্প () ফাংশনটি প্রয়োজন কারণ সিস্টেমের আউটপুটটিতে সাধারণত '\ n' থাকে has


whoamiউইন্ডোতে কাজ করে না
আকির

@ কীরা: সত্য, তবে গরিলা স্যান্ডউইচ উইন্ডোজ নয়, ইউনিক্স ব্যবহার করছে। $ ব্যবহারকারী উইন্ডোজের সাথে কমপক্ষে উইন্ডোজ এক্সপি না দিয়ে কাজ করে না।
গ্যারিজহান

শুধু বলছি, উইন্ডোতে এটির $ USERNAME। মূল বক্তব্যটি হ'ল: whoamiএকটি নতুন প্রক্রিয়া তৈরি হয়েছে, আপনি যখন আপনার সম্পাদকটি খোলেন এটি দ্রুত হওয়া উচিত এবং (অকেজো) আবার বেশ কয়েকবার কাজ করা উচিত নয়।
আকির

2

লগ-ইন করা ব্যবহারকারীর নাম environment USER পরিবেশে পরিবর্তনশীল is আপনি সহজেই এই পরিবর্তনশীল অ্যাক্সেস করতে পারেন:

:echo $USER

সুতরাং, শুধু ব্যবহার করুন

execute "silent! source vimrc." . $USER

আপনার ভিএমআরসিতে এবং আপনার ব্যবহারকারীর নির্দিষ্ট সেটিংস এ

vimrc.joe

বা আপনার লগইন-নাম যাই হোক না কেন


0

আমি নিশ্চিত না যে আপনার ভিআইএমআরসি দেখতে কেমন তাই এটি সম্ভবত ব্যবহার্য হবে না তবে আপনি এবং আপনার বন্ধুরা ভাগ করে নেওয়া এমন বড় অংশ থাকলে আপনি সেগুলি পৃথক প্লাগইনগুলিতে বিভক্ত করতে চাইতে পারেন। ~/.vim/pluginপ্রারম্ভকালে লোড হওয়ার জন্য আপনি ডিরেক্টরিটিতে ফাইল যুক্ত করতে পারেন। (এগুলি বর্ণানুক্রমিক ক্রমে লোড করা হয়েছে - :scriptnamesচেক করতে ব্যবহার করুন ))

এইভাবে আপনার প্রত্যেকটির কাছে একটি ভিএমআরসি থাকতে পারে যা সম্পূর্ণ অনন্য, তবে আপনার সমস্ত সাধারণ কনফিগারেশন প্লাগইনগুলিতে রয়েছে। যদি আপনি এগুলি যুক্তিযুক্তভাবে ভাঙেন, তবে অন্যদের সাথেও ভাগ করে নেওয়া সহজ করে তোলে।

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