有这样的事情,但我在文档中遗漏了它,或者有没有办法将这个功能添加到我的.vimrc?
如果有一种方法可以使用它,如ci“我可以在行的开头并使用”更改内部“命令跳转到AND更改下一个整数.
如果我可以做简单的算术,可以获得更多奖励我希望能够发出一个简短的命令,这个命令是“Add too,internal,integer,5”的缩写,并且当前行上的下一个整数是五格,然后就是我开始的时候.
编辑:
一些非常好的建议每个人,一些伟大的想法肯定会改善我的工作.谢谢! Hassek的回答可能最有可能在我的工作流程中结束,但其他人似乎都没有(完全)回答我的初始问题:一个对整数有效的动作.由romainl追踪的提案似乎有这个目标,但我无法让它可靠地运作.
对于我自己(或许其他人),我将在下面澄清我的需求:
一个在w方面起作用的键,但是在整数上,我可以简单地将它添加到我的mental vim词汇表中并无缝地使用它.这包括以下方案. (我将使用d作为我的示例键):
>正常模式d:跳转到下一个整数
>正常模式cd:更改为光标下整数的结尾(注意,cw是一个特殊情况,应该更改为NEXT字.cw实际上就像ce一样.)我希望这个特殊情况可以用整数实现好
>可视模式ID:选择[count]整数.
>可视模式广告:选择[计数]整数.包括前导或尾随空白区域.
我是否遗漏了任何可能出现在新议案中的行为?在普通和视觉模式下是否还有一个键?
编辑
确实这个很不错.这让我觉得我习惯做/< number>< Esc>是不是非常有效,所以我添加了这些映射(并稍微修改了上面的映射以保持一致性)到我的〜/ .vimrc.让我们看看它们从长远来看是否有用:
nnoremap è /\v\d+<CR> nnoremap é ?\v\d+<CR>
乍一看,èciè132< Esc>似乎略微优于/ 2< Esc> {count} s132< Esc>在按键方面,但如果它允许我跳过一个更好.检查我想要改变的值的第一个数字和b.计算要替换的字符.
时间会证明.
重新编辑
以下是函数及其映射:
onoremap N :<c-u>call <SID>NumberTextObject(0)<cr> xnoremap N :<c-u>call <SID>NumberTextObject(0)<cr> onoremap aN :<c-u>call <SID>NumberTextObject(1)<cr> xnoremap aN :<c-u>call <SID>NumberTextObject(1)<cr> onoremap iN :<c-u>call <SID>NumberTextObject(1)<cr> xnoremap iN :<c-u>call <SID>NumberTextObject(1)<cr> function! s:NumberTextObject(whole) normal! v while getline('.')[col('.')] =~# '\v[0-9]' normal! l endwhile if a:whole normal! o while col('.') > 1 && getline('.')[col('.') - 2] =~# '\v[0-9]' normal! h endwhile endif endfunction
有了这个,我可以:
> vcdy从光标到结尾的数字的一部分,其中< command> N.某种程度上类似于< command> e或< command> w.
Here are some random numbers: 24 7635 1000018 ^--->
如果光标不在数字上并且不向后,则它不起作用.
>使用< command> iN vcdy整数.
Here are some random numbers: 24 7635 1000018 <-^--->
同样,如果光标不在数字上,它也不起作用.
当然,整个事情可以改进,但这是一个开始!
EndEdit中
我也用CSS工作了很多.
我使用两种策略来改变数值:
> {count}< C-a>和{count}< C-x>,就像在Hassek的回答中一样,当我知道我想要增加/减少数量时.假设我想将20px变成25px,一个简单的5< C-a>不需要我将光标移动到数字就行了.这非常酷.
> /< number>< CR> {count} s< new number>当新值与当前值非常不同时,我觉得懒得计算delta. / 2′; CR> 2s67< ESC>将允许我将23px更改为67px. / 2′; CR> R67< ESC>是另一种方式,但只有新值与当前值的长度相同才有效.使用f< number>如果你在同一条线上.
请注意,您可以使用< C-r> = 137-42< CR>插入表达式的结果.我经常使用它.