একটি দ্রুত এবং নোংরা সমাধান (খাঁটি ভিমস্ক্রিপ্টে)
এটি পটভূমিতে একটি প্রক্রিয়া শুরু করতে পারে:
:!slow_command_here > /tmp/output 2>&1 &
প্রক্রিয়াটি কখন শেষ হবে এবং কীভাবে, তার জন্য ভিমের একটি উপায় প্রয়োজন এবং সুতরাং কীভাবে একটি চিহ্নিতকারী ফাইল ব্যবহার করুন:
:!(rm -f /tmp/finished; slow_command_here > /tmp/output 2>&1; echo "$?" > /tmp/finished) &
প্রক্রিয়াটি সম্পন্ন হয়েছে কিনা তা এখন আমরা ভিমকে যতবার ঘন ঘন পরীক্ষা করতে বলি:
:augroup WaitForCompletion
:autocmd!
:autocmd CursorHold * if filereadable('/tmp/finished') | exec "augroup WaitForCompletion" | exec "au!" | exec "augroup END" | echo "Process completed with exit code ".readfile('/tmp/finished')[0] | end
:augroup END
আরে এটি সুন্দর নয়, তবে এটি কাজ অনুসারে!
অসুবিধেও
দুর্ভাগ্যক্রমে উপরের অটোমডিটি কার্সারটি না সরানো পর্যন্ত ট্রিগার করবে না। এবং যদি আপনি একবারে একাধিক ব্যাকগ্রাউন্ড প্রক্রিয়া চালাতে চান, আপনাকে সেই ফাইলগুলিতে এবং স্বতঃআরএমডি গ্রুপের নামের সাথে অনন্য আইডি যুক্ত করতে হবে।
সুতরাং আপনি যদি কোনও অতিরিক্ত নির্ভরতা পরিচালনা করতে পারেন তবে আপনি অন্য উত্তরে উল্লিখিত ভিআইএম-প্রেরণ প্লাগইনের মতো একটি পরীক্ষিত-পরীক্ষিত সমাধানটি ব্যবহার করতে পারেন।
আউটপুট প্রদর্শিত হচ্ছে
আপনি যদি কেবল প্রস্থান কোডের পরিবর্তে প্রক্রিয়াটির আউটপুট দেখতে চান তবে উপরের চূড়ান্ত প্রতিস্থাপন করুন :echo
silent botright pedit /tmp/output
এটি পূর্বরূপ উইন্ডো খুলবে। পরিবর্তে কুইকফিক্স ত্রুটি তালিকাটি ব্যবহার করতে:
silent cget /tmp/output | copen
কুইকফিক্স তালিকা আপনাকে ত্রুটিগুলি ব্যবহার করে সহজেই নেভিগেট করতে দেয় :cnext
। তবে copen
আপনার কার্সারটি খোলার সাথে সাথে কিক্সফিক্স উইন্ডোতে সরানো হয়েছে, যা সম্ভবত অবাক / বিরক্তিকর হবে।
(এর জন্য একটি :copen
কার্যপ্রণালী হ'ল প্রারম্ভিকভাবে প্রক্রিয়া শুরু করার সাথে কিউএফ উইন্ডোটি খুলতে হবে, সুতরাং আপনাকে শেষে এটি কল করার প্রয়োজন হবে না ))