जवाबों:
आपको क्या करना चाहिए, कमांड की एक श्रृंखला के लिए एक निश्चित कुंजी का एक अंदाज़ा लगाना है, इस मामले में कमांड आपको सामान्य मोड में छोड़ देंगे, वर्तमान शब्द को हटा देंगे और फिर आपको वापस डालने में डाल देंगे:
:imap <C-d> <C-[>diwi
imap <C-d> <C-o>diwकाम भी करता है। यह एक पूर्ववत बिंदु भी नहीं बनाता है, जो <Esc> बहुत अधिक हमेशा करता है।
सामान्य स्थिति:
daw : delete the word under the cursor
caw : delete the word under the cursor and put you in insert mode
da)और ci)लेकिन यह कभी नहीं सोचा!
.vimrcफ़ाइल पर इस तरह मैप किया : nmap <Leader>d daw औरnmap <Leader>c caw
awवस्तु चयन का एक उदाहरण है। आप दृश्य विधा में वस्तु चयन का प्रयास कर सकते हैं कि उनका क्या प्रभाव है: vimdoc.sourceforge.net/htmldoc/motion.html#object-select
मुझे लगता है कि यह सिर्फ है daw
daw - delete a word
aलिए एक कमांड है Append text after the cursor [count] times.लेकिन dawकाम कैसे करता है ?
dतय करता है कि आप 'डिलीट' होंगे। 'क' एक प्रकार का पैरामीटर है, जो यह निर्दिष्ट करता है कि विलोपन में एक सीमांकक शामिल है। अंत में 'w', एक और parameter-if आप करेंगे- निर्दिष्ट करता है कि एक wordइकाई हटा दी जाएगी।
dwऔर daw?
dwतो कर्सर से शब्द के अंत तक dawहटा देगा , जबकि एक स्थान के साथ पूरे शब्द को हटा देगा। diwइसके चारों ओर व्हॉट्सएप को छूने के बिना पूरे शब्द को हटा देगा।
नीचे सामान्य मोड के लिए काम किया गया है: मैं डैन ओल्सन के इस जवाब से सहमत हूं कि आपको अधिकतर विलोपन के लिए सामान्य मोड में होना चाहिए। अधिक विवरण नीचे।
यदि कर्सर शब्द के अंदर है:
diwशब्द के
dawचारों ओर हटाने के लिए शब्द ( रिक्त स्थान शामिल नहीं करता है) (अगले शब्द से पहले रिक्त स्थान शामिल है)।
यदि कर्सर शब्द की शुरुआत में है, तो बस दबाएं dw।
यह आंदोलन के लिए सामान्य संख्याओं को जोड़कर गुणा किया जा सकता है, जैसे 2w आगे बढ़ने के लिए 2 शब्द, इसलिए d2w दो शब्द हटाता है।
विधा डालें ^ w
विम में आंदोलन के लिए hjkl का उपयोग करने का विचार यह है कि होम रो पर अपने हाथों को रखने के लिए यह अधिक उत्पादक है। किसी शब्द के अंत में ^ w शब्द को जल्दी से हटाने के लिए बहुत अच्छा काम करता है। यदि आप इंसर्ट मोड में चले गए हैं, तो कुछ टेक्स्ट में प्रवेश किया है और आपने घर-पंक्ति के दर्शन के खिलाफ जाने वाले शब्द के बीच में तीर कुंजियों का उपयोग किया है।
यदि आप सामान्य मोड में हैं और आप जिस शब्द को बदलना चाहते हैं, उसे (डिलीट) के cबजाय बस (परिवर्तन) का उपयोग कर सकते हैं, dयदि आप शब्द को पूरी तरह से बदलना चाहते हैं, और iवापस लाने के लिए बिना प्रेस किए इन्सर्ट मोड को फिर से डालें। टाइपिंग के लिए।
क्या आपका मतलब है?
dw
dwपिछले एक हाइफ़न या अन्य विराम चिह्न को नहीं हटाएगा।
ऐसा नहीं लगता है कि इसे सम्मिलित करने के तरीके में कोई अंतर्निहित तरीका है, जो सवाल था। कुछ अन्य उत्तर सामान्य मोड के लिए सही हैं, साथ ही यह इंगित करते हैं कि सम्मिलित मोड में कार्यक्षमता जोड़ने के लिए एक कस्टम मानचित्रण बनाया जा सकता है।
ईमानदारी से, आपको अपना अधिकतर काम सामान्य मोड में करना चाहिए। ^ डब्ल्यू के बारे में जानना आसान है, लेकिन मुझे यकीन नहीं है कि मैं ऐसी स्थिति के बारे में सोच सकता हूं जहां मैं इसे सामान्य मोड में जाने के लिए esc की तुलना में करूंगा और मेरे निपटान में अधिक शक्तिशाली विलोपन कमांड है।
विम इस तरह से कई अन्य संपादकों (TextMate सहित) से बहुत अलग है। यदि आप इसे उत्पादक रूप से उपयोग कर रहे हैं, तो आप संभवतः पाएंगे कि आप सम्मिलित मोड में बहुत अधिक समय नहीं बिताते हैं।
यदि आपके कर्सर का उपयोग हो रहा है diw
, तो पूरे शब्द को हटाने के लिए, आपके कर्सर पर पूरे शब्द को हटाने के लिए और आपको डालने के मोड में उपयोग करने के लिए ciw
यदि आप संपूर्ण शब्द को हटाना नहीं चाहते हैं, लेकिन जहां से आप हैं, वहां से हटा देंdw/cw
चूँकि किसी शब्द को हटाने के बहुत सारे तरीके हैं, तो आइए हम उन्हें स्पष्ट करते हैं।
मान लें कि आप संपादित करते हैं:
foo-bar quux
और कर्सर को 'बार' में 'ए' पर होने पर एक कमांड दें:
foo-bquux # dw: letters then spaces right of cursor
foo-quux # daw: letters on both sides of cursor then spaces on the right
foo- quux # diw: letters on both sides of cursor
foo-bquux # dW: non-whitespace then spaces right of cursor
quux # daW: non-whitespace on both sides of cursor then spaces on the right
quux # diW: non-whitespace on both sides of cursor
स्वीकार किए गए शब्दों को हटाने के शब्दों को दोहराने की कोशिश करते समय स्वीकार किए गए उत्तर विफल हो जाते हैं, इस समाधान को इसके बजाय आज़माएं:
" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw
यह सीटीआरएल-बैकस्पेस को मैप करता है, जो सामान्य मोड में भी काम कर रहा है।
कर्सर से पहले वर्णों की एक निश्चित राशि को हटाने के लिए, आप X का उपयोग कर सकते हैं । कर्सर के बाद कुछ निश्चित शब्दों को हटाने के लिए , आप dw का उपयोग कर सकते हैं (उदाहरण के लिए 3 शब्दों के लिए 3dw का उपयोग करके कई शब्द हटाए जा सकते हैं)। सामान्य रूप से कर्सर को हटाने के लिए, आप daw का उपयोग कर सकते हैं।
पुराने vi में, bकर्सर को कर्सर से पहले शब्द की शुरुआत में wले जाता है, कर्सर को कर्सर के बाद शब्द की शुरुआत में ले जाता है, कर्सर को कर्सर के बाद शब्द eके अंत में ले जाता है और कर्सर को शब्द के अंत में dwहटा देता है।
यदि आप टाइप करते हैं wbdw, तो आप कर्सर के चारों ओर शब्द हटाते हैं, भले ही कर्सर शुरुआत में हो या शब्द के अंत में हो। ध्यान दें कि एक शब्द के बाद व्हॉट्सएप हटाए जाने वाले शब्द का हिस्सा होने के लिए विचारक हैं।
मैं न केवल कर्सर से पहले शब्द को हटाना चाहता हूं, बल्कि कर्सर के बाद या उसके आसपास का शब्द भी।
उस स्थिति में ओपी द्वारा प्रस्तावित समाधान (अर्थात उपयोग करके <c-w>) देने के लिए स्वीकृत उत्तर के साथ जोड़ा जा सकता है:
inoremap <c-d> <c-o>daw<c-w>
वैकल्पिक रूप से (छोटा समाधान):
inoremap <c-d> <c-o>vawobd
नमूना इनपुट:
word1 word2 word3 word4
^------------- Cursor location
आउटपुट:
word1 word4