bry*_*edy 1 vim numbers editor
我经常在Vim中编辑CSS,需要更改一个值,如:
width: 300px;
Run Code Online (Sandbox Code Playgroud)
对于其他类似的东西:
width: 178px;
Run Code Online (Sandbox Code Playgroud)
通常我所做的是导航到300中的3并键入cw以更改单词.但如果我这样做,我必须px再次输入该位.有没有简短快捷的说法change in digits.
在我的搜索中,我发现Ctrl-a和Ctrl-x在这种情况下增加和减少数字.是否可以重新输入数字?
我应该澄清,理想的解决方案是在操作时需要最少的击键,并支持对不同长度数字的修改.就像我想将300px改为17px一样.
我不知道"数字变化"命令,但你可以使用t,这就像f你在寻找之前去找角色; 也就是说,如果你键入tp,它会将光标移动到你行中"p"之前的字符.它结合c,如果你的光标是在3,ctp178 Esc将与178取代300.
或者,您可以3s用来替换接下来的三个字符:3s178 Esc.当被替换的字符串易于扫描长度时,这很容易.如果替换文本的长度与替换文本的长度相同,则可以使用R替换:R178 Esc.
这是in一个自定义文本对象,允许您对数值(包括浮点数)进行操作:
" custom text-object for numerical values
function! Numbers()
call search('\d\([^0-9\.]\|$\)', 'cW')
normal v
call search('\(^\|[^0-9\.]\d\)', 'becW')
endfunction
xnoremap in :<C-u>call Numbers()<CR>
onoremap in :normal vin<CR>
Run Code Online (Sandbox Code Playgroud)
实际搜索是在一个函数中执行的,以避免破坏搜索寄存器和搜索突出显示.
您可以将该文本对象添加到vimrc"原样"并像其他文本对象一样使用它:
vin
cin
yin
din
Run Code Online (Sandbox Code Playgroud)

---编辑---
这个新版本:
欢迎评论.
---编辑---