如何在光标下直接增加**?

Dur*_*and 37 vim keyboard-shortcuts

在vim等人中,您可以使用CTRLA和增加或减少光标所在的数字CTRLX.但是,这会增加整数,但我想直接在光标下增加数字.这有点难以描述所以这就是我的意思:

Ctrl+A usage, cursor is over the "6":
[6]5 -> 66

What I need:
[6]5 -> 75

or:
3[8]90 -> 3990
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的.

我已经google了一下,但我不确定是否存在这样的快捷方式,所以任何提示都非常感谢!

rom*_*inl 40

<C-a><C-x>处理整数(1位或更多位数)但不处理数字的"部分".然而,它采用"计数",所以10<C-a>变成[6]575.

另一种选择,因为你只需要改变一个数字,是做r7[6]575.

  • 亲爱的...现在,我可以列出一个数字和“。”的列表。一路增加。 (2认同)

Xav*_* T. 38

在这种情况下,我通常键入r然后输入我想要的数字.


Luc*_*tte 8

我猜3 [9] 42将变为4042(否则,Xavier的解决方案几乎是完美的(*)),我将使用以下内容:

s/\d*\%#\d/\=(submatch(0)+1)
Run Code Online (Sandbox Code Playgroud)

哪个可以映射到:

nnoremap <silent> µ :<c-u>s/\d*\%#\d/\=(submatch(0)+v:count1)<cr>``
Run Code Online (Sandbox Code Playgroud)

为了接受计数.我看到的唯一一个问题就是它无法支持重复(如:h .)

(*)在某种意义上说,重复命令不会帮助我们以相同的数量增加一系列不同的数字.


gpo*_*ojd 5

可能有更好的方法,但你可以创建一个宏或映射到这个的东西:

noremap <LEADER>a a <ESC>h<C-a>lxh
noremap <LEADER>z a <ESC>h<C-z>lxh
Run Code Online (Sandbox Code Playgroud)

它基本上使"65""6 5",增加6并移除空间.可能有一个较短的版本也可以工作.