在 Vim (7.2) 中,有一个普通模式命令r可以用另一个字符替换单个字符。例如,键入rX会将光标下的一个字符替换为X,然后返回到正常模式。
是否有正常模式命令可以插入单个字符然后返回正常模式?
Mat*_*t C 10
感谢约翰尼在下面的评论中给了我们这个了不起的答案:
":nmap <C-i> i_<Esc>r"
Run Code Online (Sandbox Code Playgroud)
这映射 Control + i 以插入单个字符,并且非常简洁。
在您的 vimrc 文件中,这将如下所示:
nnoremap <C-i> i_<Esc>r
Run Code Online (Sandbox Code Playgroud)
我更改了我的映射以使用空间,您可以将您的映射更改为您的首选键:
nnoremap <Space> i_<Esc>r
Run Code Online (Sandbox Code Playgroud)
MelBurslan 是正确的,此功能本身并不存在,但创建用户定义的命令并不是真正的创建方式。我琢磨了几分钟,想出了这个:
:nmap <silent> ,s "=nr2char(getchar())<cr>P
Run Code Online (Sandbox Code Playgroud)
它使用了一些 Vim 技巧,涉及从寄存器“放置”文本,在这种情况下是“表达式”寄存器。插入寄存器的表达式是“ nr2char(getchar())”,它将返回单个字符串。
我以这种方式构建映射的原因是,在映射“中途”获取用户输入很棘手,而且行为可能无法预测;即使这种映射也会在等待用户输入字符时将光标下拉到状态区域。
| 归档时间: |
|
| 查看次数: |
20455 次 |
| 最近记录: |