নীরবে একটি ভিম ফাংশন কল করুন


25

আমি একটি সামান্য Vim ফাংশন লিখেছিলাম যা কার্সারটিকে বর্তমান লাইনের প্রথম চরিত্রে নিয়ে যায়। যদি কার্সারটি ইতিমধ্যে প্রথম অক্ষরে থাকে তবে কার্সার পরিবর্তে প্রথম কলামে সরানো হবে।

" Jump to first character or column
noremap H :call FirstCharOrFirstCol()<cr>

:function! FirstCharOrFirstCol()
:  let current_col = virtcol('.')
:  normal ^
:  let first_char = virtcol('.')
:  if current_col == first_char
:    normal 0
:  endif
:endfunction

আমি এই ফাংশনটি কীভাবে চুপ করে বলব? আমি বরং ': ফার্স্টচরআরফারস্টকল ()' কল করুন স্ট্যাটাস লাইনে প্রদর্শিত হয়নি। কেবল পরিবর্তন noremap H :silent call…করা যথেষ্ট বলে মনে হচ্ছে না।


7
কেবলমাত্র একটি ছোট নোট: একটি ভিমস্ক্রিপ্ট ফাইলে (যেমন *.vim), আপনার কখনই শীর্ষস্থানীয় :অক্ষরগুলির প্রয়োজন নেই।
tommcdo

উত্তর:


34

আপনি নীরব মানচিত্রটি সংজ্ঞায়িত করে নীরবে ফাংশনটি কল করতে পারেন:

noremap <silent> H :call FirstCharOrFirstCol()<cr>

আরও তথ্যের জন্য, দেখুন :h :map-<silent>। বিশেষত নোট করুন যে ম্যাপিংটি সম্পাদন করা হলে এটি কেবল কমান্ডটি স্ক্রিনে প্রতিধ্বনিত হবে না তা নিশ্চিত করবে। :silentকমান্ড ফাংশন নিজেই থেকে আউটপুট নীরবতা করতে ব্যবহৃত হয় (দেখুন :h :silent)।


1
ভাল এক, :silentআমি কি পরে ছিল। এটি লক্ষণীয় যে আপনার যদি আপনার ফাংশনে ত্রুটি থাকে তবে আপনি ব্যবহার না করা অবধি বার্তাগুলি পাবেন !। আমি বুঝতে পারি না যে আমি কোডটি একটি অবৈধ অবস্থায় রেখেছি এবং তাই ভেবেছিলাম যে আমি :silentসঠিকভাবে ব্যবহার করছি না কারণ এটি প্রতিধ্বনি নিঃশব্দ করছে না এবং আমি আউটপুটে একটি ত্রুটি দেখতে পাচ্ছি !!
JonnyRaa
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.