जब मुझे बहुत अधिक पाठ लिखना होता है तो मैं अक्सर अपनी उंगली दबाकर रखता हूं shiftजब मैं एक वाक्य का पहला अक्षर लिखता हूं जो अक्सर होता है:
[...]end of sentence. NEw sentence[...]
यहाँ E
के NEw
छोटे अक्षर में होना चाहिए। मैं तब एक फंक्शन बनाने की कोशिश कर रहा हूं, जो यह पता लगाएगा कि अगर मैं जो वाक्य लिख रहा हूं उसके पहले अक्षर का दूसरा अक्षर ऊपरी मामला है और जो इसे कम करेगा। महत्वपूर्ण हिस्सा यह होगा कि मेरी सजा समाप्त होने के बाद सुधार स्वचालित रूप से किया जाना चाहिए।
अब तक मैंने यह InsertCharPre
महसूस करने से पहले ऑटोकॉमंड इवेंट के साथ खेलने की कोशिश की है कि इस इवेंट द्वारा ट्रिगर किए गए फ़ंक्शन द्वारा टेक्स्ट को संशोधित नहीं किया जा सकता है।
इससे अच्छा उपाय और क्या होगा?
ध्यान दें कि अब तक मुझे समकाल जैसे किनारों के मामलों पर ध्यान केंद्रित करने की आवश्यकता नहीं है जो ऊपरी मामले या इस तरह की चीजों में होना चाहिए।
EDIT मैंने इसे बनाया है, जो एक परफेक्ट वर्कअराउंड है:
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
यह एक समस्या है क्योंकि मैं पहले मोड में प्रवेश करता हूं लाइन के अंत में प्रवेश किया जाता है, लेकिन मुझे लगता है कि इसे ठीक किया जा सकता है।
मुझे लगता है कि अब मेरा प्रश्न एक कोड समीक्षा प्रश्न बन गया है :
- मैं साइड इफेक्ट से छुटकारा कैसे पा सकता हूं जो पहले वर्ण को सम्मिलित करता है?
- क्या यह सर्वोत्तम विधि संभव है?
- यह विधि विम को धीमा करने के लिए लगता है: इसे कैसे सुधार किया जा सकता है?
<Space>
बहुत दिलचस्प लगता है क्योंकि यह कार्यों के चालान की संख्या को कम करता है। मैं इस तरह से भी काम करने की कोशिश करूँगा!