+ Veya + kombinasyonu ile koddaki değerleri trueve falsedeğerleri hızlı bir şekilde değiştirme imkanına sahip olmanın yararlı olacağını düşünüyorum . Bunun için başka bir eklenti var mı?ctrlactrlx
+ Veya + kombinasyonu ile koddaki değerleri trueve falsedeğerleri hızlı bir şekilde değiştirme imkanına sahip olmanın yararlı olacağını düşünüyorum . Bunun için başka bir eklenti var mı?ctrlactrlx
Yanıtlar:
Deneyebileceğiniz boole değerlerini değiştirmek için bir eklenti ( toggle-bool ) yazdım . Aşağıdaki boole değerlerini destekler:
true <-> falseyes <-> noon <-> off0 <-> 1Switch.vim var ve özelleştirilebilir.
Eklentinin ana giriş noktası tek bir komuttur
:Switch,. Komut yürütüldüğünde, eklenti imlecin altındaki birkaç belirli desenden birini arar ve desene bağlı olarak bir alt bölüm gerçekleştirir.
Örneğin, imleç trueaşağıdaki kodda ise:
flag = true
Daha sonra yürütme üzerine :Switch, truedönüşecek false.
Geçiş true/ falseve benzeri birçok eklenti yazarı tarafından uygulanmıştır. İkisinden daha önce bahsedilmişti:
Diğerleri şunlardır geçiş Timo Teifel (tarafından # 895 ), pazartesi Stefan Karlsson (tarafından # 1046 ), toggle_words Vincent Wang (tarafından # 1676 ), toggle_word Alexandru Ungur (tarafından # 1748 ), incbool.vim Dmitry Petrov tarafından ( # 4361 , github ) , nextval tarafından Michael Arlt ( # 4536 , github ).
Her ihtimale karşı özel bir dizi göre sayıları artırmak isteyen, örneğin Fibonacci serisi, kontrol nexus Barry Arthur (tarafından github ).
Ctrl-A/XBununla birlikte, hepsi varsayılan olarak Ctrl-A/Xyeni bir komut ve / veya yeni bir eşleme ( ancak switch.vim ve toggle-bool dahil) genişletme ancak tanımlama fikrini takip etmez . Ctrl-A/XKutudan 'supercharge' olan bu eklentileri vurgulamak ve bu nedenle OP'nin sorduğu varsayılanı sağlamak istiyorum:
Ayrıca uzanır İlgili bir eklenti Ctrl-A/Xolduğunu speeddating Tim Pope (tarafından # 2120 , github artım tarihleri yapmanızı sağlar).
Bazı eklentiler, ikinci bir Ctrl-A/Xartım eklentisini yedek olarak birleştirmeye izin verir , ör.
Michael Brown tarafından SwapIt :
nmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
nmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
vmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
vmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
bootleq ile döngü :
map <silent> <Plug>CycleFallbackNext <Plug>SpeedDatingUp
map <silent> <Plug>CycleFallbackPrev <Plug>SpeedDatingDown
Andrew Radev tarafından switch.vim :
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>
Not
Yerleşikin arama davranışını kullanırsanız Ctrl-A/X(artışa göre bir sonraki olası değeri bulun), bunların aşırı yüklenmesi engellenebilir.
eşlemeyi kullanmak istediğinizle değiştirin
geri alma, onu bir alanın üstünde kullanmanız durumundadır, çünkü ciw kelime yerine alanı düzenleyecektir (ve doğru kelimeye güvenilir bir şekilde ulaşmanın kolay bir yolu yoktur)
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
Ayrıca ^ M'nin <C-V><Enter>tam anlamıyla değil , olması gerektiğini unutmayın ^ M
<C-a>ve <C-x>cari kelime değil bir boolean olduğunda, bu şekilde OP gerçekten bu eşleştirmeleri kullanmak mümkün olacaktır. Ayrıca eşlemenizde kullanmak <CR>yerine kullanabilirsiniz ^Mve genellikle mapkomutunuza bir mod sağlamak için en iyi uygulamadır , burada nnoremapdaha uygun olacaktır noremap.