मुझे लगता है कि संयोजन + और + के साथ कोड में तेजी से स्वैप trueऔर falseमूल्यों की संभावना होना उपयोगी होगा । क्या इसके लिए कुछ प्लगइन है या कुछ और है?ctrlactrlx
मुझे लगता है कि संयोजन + और + के साथ कोड में तेजी से स्वैप trueऔर falseमूल्यों की संभावना होना उपयोगी होगा । क्या इसके लिए कुछ प्लगइन है या कुछ और है?ctrlactrlx
जवाबों:
मैंने बूलियन मूल्यों को टॉगल करने के लिए एक प्लगइन ( टॉगल-बूल ) लिखा था जिसे आप आजमा सकते हैं। यह निम्नलिखित बूलियन मूल्यों का समर्थन करता है:
true <-> falseyes <-> noon <-> off0 <-> 1वहाँ switch.vim है , और यह अनुकूलन योग्य है।
प्लगइन का मुख्य प्रवेश बिंदु, एक भी आदेश है
:Switch। जब कमांड निष्पादित किया जाता है, तो प्लगइन कर्सर के नीचे कुछ विशिष्ट पैटर्नों में से एक को देखता है और पैटर्न के आधार पर एक सबस्टेशन करता है।
उदाहरण के लिए यदि कर्सर trueनिम्नलिखित कोड में है:
flag = true
तब क्रियान्वित होने पर :Switch, में trueबदल जाएगा false।
कई प्लगइन लेखकों द्वारा टोगलिंग true/ falseऔर समान लागू किया गया है। उनमें से दो का उल्लेख पहले ही किया जा चुका है:
अन्य लोग कर रहे हैं टॉगल टीमो Teifel (द्वारा # 895 ), सोमवार स्टीफन कार्लसन (द्वारा # 1046 ), toggle_words विन्सेंट वांग (द्वारा # 1676 ), toggle_word एलेक्ज़ेंड्रु Ungur (द्वारा # 1748 ), incbool.vim दिमित्री पेत्रोव द्वारा ( # 4361 , GitHub ) , nextval माइकल Arlt (द्वारा # 4536 , GitHub )।
बस अगर आप कस्टम श्रृंखला के अनुसार संख्या बढ़ाना चाहते हैं, उदाहरण के लिए फाइबोनैचि श्रृंखला, बैरी आर्थर ( गीथूब ) द्वारा नेक्सस की जाँच करें ।
Ctrl-A/Xहालांकि, उनमें से सभी डिफ़ॉल्ट रूप से विस्तार करने के लिए विचार का पालन नहीं करते हैं, Ctrl-A/Xलेकिन एक नई कमांड और / या एक नई मैपिंग को परिभाषित करते हैं (incl। Switch.vim और टॉगल-बूल )। मैं उन प्लगइन्स को उजागर करना चाहता हूं जो 'सुपरचार्ज' Ctrl-A/Xबॉक्स से बाहर हैं और इसलिए, डिफ़ॉल्ट रूप से प्रदान करें कि ओपी ने क्या पूछा है:
जो भी फैली हुई है इससे संबंधित एक प्लगइन Ctrl-A/Xहै SpeedDating टिम पोप (द्वारा # 2120 , GitHub ) जो आप वेतन वृद्धि दिनांक के लिए अनुमति देता है।
कुछ प्लगइन्स एक दूसरे Ctrl-A/Xइंक्रीमेंटर प्लगइन को कमबैक के रूप में संयोजित करने की अनुमति देते हैं , जैसे
माइकल ब्राउन द्वारा स्वैप :
nmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
nmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
vmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
vmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
बूटलेक द्वारा चक्र :
map <silent> <Plug>CycleFallbackNext <Plug>SpeedDatingUp
map <silent> <Plug>CycleFallbackPrev <Plug>SpeedDatingDown
switch.vim द्वारा एंड्रयू Radev:
nnoremap <c-a> :if !switch#Switch()<bar>call speeddating#increment()<bar>endif<cr>
nnoremap <c-x> :if !switch#Switch({'reverse': 1})<bar>call speeddating#decrement()<bar>endif<cr>
नोट
यदि आप बिलिन के खोज व्यवहार का उपयोग करते हैं Ctrl-A/X(वेतन वृद्धि के अनुसार अगली संभावित कीमत पाते हैं), तो उन्हें सुपरचार्ज करना हस्तक्षेप कर सकता है।
मैपिंग को आप जो उपयोग करना चाहते हैं उसे बदल दें
यदि आप इसे किसी स्थान के शीर्ष पर उपयोग करते हैं, तो चूंकि शब्द के बजाय civ स्थान को संपादित करेगा (और सही शब्द को विश्वसनीय तरीके से प्राप्त करने का कोई आसान तरीका नहीं है)
function SwapBool ()
let s:w = expand("<cword>")
if s:w == "false"
normal ciwtrue
if expand("<cword>") != "true"
normal u
endif
elseif s:w == "true"
normal ciwfalse
if expand("<cword>") != "false"
normal u
endif
endif
endfunction
noremap <C-F> :call SwapBool()^M
यह भी ध्यान दें कि ^ M की आवश्यकता है <C-V><Enter>, शाब्दिक रूप से ^ M की आवश्यकता नहीं है
<C-a>और <C-x>जब वर्तमान शब्द बूलियन नहीं होगा, तो इस तरह से ओपी वास्तव में इन मैपिंग का उपयोग करने में सक्षम होगा। इसके अलावा, आप अपनी मैपिंग के <CR>बजाय उपयोग कर सकते हैं ^M, और यह आमतौर पर अपने mapकमांड को एक मोड प्रदान करने के लिए सबसे अच्छा अभ्यास है , यहां nnoremapसे अधिक उपयुक्त होगा noremap।