+ Veya + kombinasyonu ile koddaki değerleri true
ve false
değ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 true
ve false
değ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
<-> false
yes
<-> no
on
<-> off
0
<-> 1
Switch.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ç true
aşağıdaki kodda ise:
flag = true
Daha sonra yürütme üzerine :Switch
, true
dönüşecek false
.
Geçiş true
/ false
ve 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/X
Bununla birlikte, hepsi varsayılan olarak Ctrl-A/X
yeni 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/X
Kutudan '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/X
olduğunu speeddating Tim Pope (tarafından # 2120 , github artım tarihleri yapmanızı sağlar).
Bazı eklentiler, ikinci bir Ctrl-A/X
artı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 ^M
ve genellikle map
komutunuza bir mod sağlamak için en iyi uygulamadır , burada nnoremap
daha uygun olacaktır noremap
.