যখন আমাকে প্রচুর পাঠ্য টাইপ করতে হয় তখন আমি প্রায়শই আমার আঙ্গুলটি টিপতে shiftথাকি যখন আমি প্রায়শই একটি বাক্যটির প্রথম অক্ষরটি লিখি:
[...]end of sentence. NEw sentence[...]
এখানে E
এর NEw
ছোট হাতের হওয়া উচিত। আমি তখন একটি ফাংশন তৈরির চেষ্টা করছি যা সনাক্ত করতে পারে যে আমি যে বাক্যটি টাইপ করছি তার প্রথম শব্দের দ্বিতীয় অক্ষরটি যদি বড় হাতের অক্ষর হয় এবং এটির ক্ষেত্রে এটি কম হয়। গুরুত্বপূর্ণ অংশটি হ'ল সংশোধনটি স্বয়ংক্রিয়ভাবে করা উচিত যখন আমি আমার বাক্যের সমাপ্তি টাইপ করব।
InsertCharPre
এই ইভেন্টটি দ্বারা চালিত কোনও ক্রিয়াকলাপের মাধ্যমে পাঠ্যটি সংশোধন করা যায় না তা বুঝতে পেরে আমি এখনও পর্যন্ত অটোকম্যান্ড ইভেন্টের সাথে খেলার চেষ্টা করেছি ।
একটি ভাল সমাধান কি হবে?
দ্রষ্টব্য যে এখনও পর্যন্ত আমার প্রান্তের ক্ষেত্রে যেমন সংক্ষিপ্ত শব্দগুলি উপরের ক্ষেত্রে বা এই ধরণের জিনিসগুলিতে হওয়া উচিত সেদিকে মনোযোগ দেওয়ার দরকার নেই।
সম্পাদনা আমি করেছি তৈরি, যা একটি না নিখুঁত কার্যসংক্রান্ত নেই:
autocmd CursorMovedI * call RemoveUnwantedUpper()
function! RemoveUnwantedUpper()
" Get the current sentence
" Based on http://stackoverflow.com/a/23315227/4194289
let l:save_clipboard = &clipboard
set clipboard= " Avoid clobbering the selection and clipboard registers.
let l:save_reg = getreg('"')
let l:save_regmode = getregtype('"')
normal! y(
normal! ``
let l:sentence =getreg('"')
call setreg('"', l:save_reg, l:save_regmode)
let &clipboard = l:save_clipboard
" Check that we entered a new word (space inserted)
if l:sentence[len(l:sentence)-1] != " "
return
endif
" Check if the word is the first one of the sentence
let l:size = len(split(l:sentence, " "))
if l:size > 1
return
endif
" If the last char entered is a space (new word) remove the unwanted Upper case
normal! bl
normal! vu
normal! ``
endfunction
সন্নিবেশ মোডে প্রবেশ করা প্রথম চরিত্রটি লাইনের শেষ প্রান্তে স্থানান্তরিত হওয়ার পরে এটির একটি সমস্যা রয়েছে তবে আমি মনে করি এটি সংশোধন করা যেতে পারে।
আমার ধারণা এখন আমার প্রশ্ন একটি কোড পর্যালোচনা প্রশ্নে পরিণত হয়েছে :
- প্রথম চরিত্রটি inোকানো পার্শ্ব প্রতিক্রিয়া থেকে আমি কীভাবে মুক্তি পাব?
- এটা কি সবচেয়ে ভাল পদ্ধতি সম্ভব?
- এই পদ্ধতিটি ভিমকে কমিয়ে দিচ্ছে বলে মনে হচ্ছে: কীভাবে এটি উন্নতি করা যায়?
<Space>
বেশ আকর্ষণীয় বলে মনে হচ্ছে যেহেতু এটি কার্যগুলির আমন্ত্রণের সংখ্যা হ্রাস করে। আমিও এভাবে কাজ করার চেষ্টা করব!