vim - 有没有办法让 Vim 函数为你创建映射?
问题描述
我正在尝试在 Vim 中创建一个能够为我创建映射的函数(因此我不必在我的配置中一遍又一遍地输入非常相似的命令)。
以这些映射为例:
onoremap <buffer> in( :<c-u>execute "normal! /(\r:noh\rvi("<cr>
onoremap <buffer> in[ :<c-u>execute "normal! /[\r:noh\rvi["<cr>
onoremap <buffer> in{ :<c-u>execute "normal! /{\r:noh\rvi{"<cr>
我希望能够做类似的事情:
CreateNextIn('(')
CreateNextIn('[')
CreateNextIn('{')
解决方案
是的你可以。它应该是这样的:
function! CreateNextIn(foo) abort
execute 'onoremap <buffer> in'.a:foo.' :<c-u>execute "normal! /[\r:noh\rvi'.a:foo.'"<cr>'
endfunction
然后你用它创建你的映射,比如:
call CreateNextIn('(')
call CreateNextIn('[')
call CreateNextIn('{')
推荐阅读
- mongodb - 如何匹配由连字符和空格等特殊字符组成的字符串
- html - 如何在 servicenow 中设计表格
- excel - 如何将图表从一张表复制到另一张表或设置图表的目的地?
- javascript - 链接使用javascript加载内容的子链接的问题
- vaadin7 - vaadin7 右边有两个 HorizontalLayout 一个
- python - 模型需要很长时间才能加载到 GCP 应用引擎和工作人员重新启动
- handlebars.js - 如何在nestjs中呈现页眉页脚和主要包含分开
- prolog - Prolog 概念 - 使用递归替换原子
- php - SQL,PHP在sqlsrv_fetch_array之前获取总计数
- javascript - 替代/替代 queryCommandState('bold')