আমি আমার .vimrc এ বর্তমান অপারেটিং সিস্টেমকে কীভাবে আলাদা করতে পারি?


20

আমি প্রায় একই ধরণের কনফিগারেশন সহ উভয় ওএস এক্স এবং উইন্ডোতে ভিম ব্যবহার করি।

আমি .vimrcদুটি অপারেটিং সিস্টেমে একই ব্যবহার করতে সক্ষম হতে চাই , তবে কয়েকটি কনফিগার করার দরকার আছে যা আমি আলাদাভাবে তৈরি করতে পারি।

আমি আমার .vimrcফাইলে যা যুক্ত করতে চাই তা হ'ল:

:if <windows>
  "some windows-specific settings here
:elseif <os x>
  "some os x-specific settings here
:endif

কিন্তু আমি কি জন্য ব্যবহার করতে জানি না <windows>এবং <os x>

এটা কি সম্ভব?

উত্তর:


30

এনবি যদিও পূর্ববর্তী দুটি উত্তরই সমস্যার সমাধান করতে পারে তা নির্ধারণ করার জন্য আমাকে যথেষ্ট তথ্য দিয়েছিল (এবং আমার কাছ থেকে প্রাপ্ত অগ্রগতি অর্জন করেছিল), তবে উভয়ই পুরোপুরি উত্তর দেয়নি। যাতে একই প্রশ্নযুক্ত অন্যদের গবেষণা না করতে হয়, আমি নিজের উত্তর যুক্ত করছি। তবে, @googletorp বা @Az এই তথ্য অন্তর্ভুক্ত করার জন্য যদি তাদের উত্তরগুলি সম্পাদনা করে তবে আমি আমার উত্তরটি সরিয়ে দেব এবং সেগুলি গ্রহণ করব।

আউটপুটটি আপনাকে :h feature-listব্যবহার করতে সক্ষম হতে হবে has("win32")এবং has("macunix")এটির পরামর্শ দেয় তবে ওএস এক্স অন্তর্ভুক্ত থাকা ভিমের সংস্করণে কোনও কাজ করে না ((এটি অবশ্য ম্যাকভিমে কাজ করে))

এখানে আমি ব্যবহার করে শেষ করেছি:

if has("win32")
  "Windows options here
else
  if has("unix")
    let s:uname = system("uname")
    if s:uname == "Darwin\n"
      "Mac options here
    endif
  endif
endif

নোট যেটি has("win32")আমার পক্ষে কাজ করেছে, এমনকি 64৪ বিট উইন্ডোতে bit৪ বিট ভিমে।

আপনি ইউনিক্সের অন্যান্য স্বাদগুলি আলাদা unameকরতে if has("unix")ব্লকের মধ্যে একই রকম পরীক্ষাগুলি ব্যবহার করতে পারেন । আপনার সাথে কী তুলনা করতে হবে তা দেখতে কেবল চালনা করুন unameবা uname -aকমান্ড-লাইন থেকে s:uname:h matchstr()আপনার unameআউটপুটটির মাত্র একটি অংশের তুলনা করতে হবে কিনা তাও দেখুন ।


1
রেকর্ডের জন্য: এমএসওয়াইএস 2 এর ভিমে ("ইউনিক্স") 1 টি, ("উইন 32") 0 এবং রয়েছে ("উইন 32 ইউনিক্স") 1। সুতরাং এটির পার্থক্য করতে হ্যাজ ("win32unix") ব্যবহার করুন।
user31389

4

আপনি এখানে একবার দেখে নিতে পারেন

মূলত, আপনি হয় ব্যবহার করতে পারেন has(), system():

let os = substitute(system('uname'), "\n", "", "")
if os == "SunOS"
  ..
endif  

2

এটি আপনার পরে যা বলে মনে হচ্ছে, আমি এটি পুরোপুরি বুঝতে পারি না তাই আমি আপনাকে কেবল লিঙ্ক করব।

/programming/2842078/how-do-i-detect-os-x-in-my-vimrc-file-so-certain-configurations-will-only-apply


স্ট্রেঞ্জ। এটি স্ট্যাকওভারফ্লো.com
ধনী

1
@ রিচ: সমস্ত এসইউ ডেটা ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন শেয়ারঅ্যালাকের অধীনে লাইসেন্স করা হয়েছে, যা তারা মনে করে।
ড্যানিয়েল বেক

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