একটি .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.