我在vim中长期使用这个非常有用的快捷方式:
nmap <space> i <esc>r
Run Code Online (Sandbox Code Playgroud)
这意味着,如果我按下spacef,例如,它将f在给定位置插入一个字符.
然而,不幸的是,这不是原子的,即,如果我按下spacef然后导航到其他地方,然后按.,我得到相当于rf,而不是spacef.
所有这些都是有道理的,但问题是:有没有办法制作这个原子,这样.就会重复'插入字符'操作,所以撤消等都将它视为一个操作呢?
too*_*php 11
真棒!迈克尔的回答向我指出了我需要完成插件的插件,它现在可以做你想要的 - 我一直在试图弄清楚如何做多年!
1)安装Tim Pope的插件
2)安装我的插件
3)添加映射到您的.vimrc:
nnoremap <space> :<C-U>call InsertChar#insert(v:count1)<CR>
Run Code Online (Sandbox Code Playgroud)
这对你有用吗?
noremap <silent> <space> :exe "normal i".nr2char(getchar())<CR>
Run Code Online (Sandbox Code Playgroud)