একটি .vimrc ফাইলের একটি ভেরিয়েবলের শেল কমান্ডের ফলাফলটি সরান?


22

আমার .vimrc ফাইলে, আমি আমার ক্ষেত্রে একটি বহিরাগত কমান্ডের ফলাফলের পরিবর্তনশীলতে সঞ্চয় করতে চাই:

$ echo $LANG

যাতে আমার vimrcফাইলটি থাকে:

let language = output(!echo $LANG)
if language == 'en'
   nnoremap <somekey> <ohanotherkey!>
end if

এখন পর্যন্ত আমি কীভাবে এটি করব তা খুঁজে পেলাম না। আমি খুঁজে পেয়েছি যে কমান্ড মোডে, :read !echo $LANGআমার বর্তমান ফাইলটিতে আমার সন্ধান করা সামগ্রীটি প্রবেশ করানো হবে। তবে আমি কীভাবে এটি কোনও ভিএমআরসি ফাইলটিতে লিখতে জানি না।

উত্তর:


22

আপনি systemফাংশন দিয়ে এটি করতে পারেন :

let language = system('echo $LANG')

বোনাস পয়েন্ট: যদি আপনার আউটপুট একটি তালিকা হয় তবে আপনি systemlistতালিকাটি ফিরে পেতে তার পরিবর্তে ব্যবহার করতে পারেন । যেমন

let files = systemlist('ls')
" ['bin', 'dev', ... ]

সুত্র: :h system


13

যদি LANGপরিবেশের পরিবর্তনশীল হয় তবে আপনি কেবল এটি করতে পারেন:

let language = $LANG

বা, এমনকি সহজ:

if $LANG == 'en'
…
endif

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