.vimrc
কোনও ফাইল সংরক্ষণের সময় স্বয়ংক্রিয়ভাবে ট্রেলিং হোয়াইটস্পেস সরিয়ে দেওয়ার কোনও সেটিংস আছে কি ?
আদর্শভাবে (নিরাপদ থাকতে) আমি কেবল নির্দিষ্ট ফাইলগুলির জন্য এই কার্যকারিতাটি রাখতে চাই eg *.rb
.vimrc
কোনও ফাইল সংরক্ষণের সময় স্বয়ংক্রিয়ভাবে ট্রেলিং হোয়াইটস্পেস সরিয়ে দেওয়ার কোনও সেটিংস আছে কি ?
আদর্শভাবে (নিরাপদ থাকতে) আমি কেবল নির্দিষ্ট ফাইলগুলির জন্য এই কার্যকারিতাটি রাখতে চাই eg *.rb
উত্তর:
এটি সমস্ত ফাইলের জন্য (.vimrc ফাইলে) কাজ করে:
autocmd BufWritePre * :%s/\s\+$//e
এটি কেবল রুবি (.rb) ফাইলের জন্য (.vimrc ফাইলে) কাজ করে:
autocmd BufWritePre *.rb :%s/\s\+$//e
e
ব্যবহার করে?
কার্সার অবস্থান ধরে রাখতে এমন কিছু ব্যবহার করুন:
function! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
অন্যথায় কার্সারটি সংরক্ষণের পরে শেষ প্রতিস্থাপনের লাইনের শুরুতে শেষ হবে।
উদাহরণ : আপনার লাইনের শেষে একটি স্থান রয়েছে 122
, আপনি লাইনে আছেন 982
এবং প্রবেশ করুন :w
। অবস্থান পুনরুদ্ধার না করে, কার্সারটি লাইনের শুরুতে শেষ হবে ফলে 122
কাজের প্রবাহকে হত্যা করবে।
autocmd
কিছু উদাহরণ ব্যবহার করে ফাংশন করার জন্য কল সেট আপ করুন :
" Using file extension
autocmd BufWritePre *.h,*.c,*.java :call <SID>StripTrailingWhitespaces()
" Often files are not necessarily identified by extension, if so use e.g.:
autocmd BufWritePre * if &ft =~ 'sh\|perl\|python' | :call <SID>StripTrailingWhitespaces() | endif
" Or if you want it to be called when file-type i set
autocmd FileType sh,perl,python :call <SID>StripTrailingWhitespaces()
" etc.
একটি ব্যবহার করতে পারে, তবে এই ক্ষেত্রে দরকার নেই, গেটপোস () দ্বারা:
let save_cursor = getpos(".")
" Some replace command
call setpos('.', save_cursor)
" To list values to variables use:
let [bufnum, lnum, col, off] = getpos(".")
আমার ডিলিটট্রাইলিংয়েটস স্পেস প্লাগইনটি এটি করে এবং :autocmds
চারপাশে থাকা বিভিন্ন সাধারণ ভাসমানের বিপরীতে , বিশেষ কেসগুলি পরিচালনা করে, ব্যবহারকারীকে জিজ্ঞাসা করতে পারে, বা পরিত্যক্ত সাদা স্থানের সাথে অ্যাওর্ট লিখেছেন।
প্লাগইন পৃষ্ঠায় বিকল্পগুলির লিঙ্ক রয়েছে; উইম টিপস উইকিতে একটি বিশাল আলোচনাও রয়েছে ।