在使用 Jinja 模板和 YAML 进行 Ansible 配置时,我经常复制并粘贴一个变量名(例如nginx_root
),然后需要将其包裹在双花括号中:{{ nginx_root }}
. 手动操作会很麻烦,所以我希望能够键入一个 Vim 键绑定来将光标下的当前单词包裹在双花括号中。
使用vim-surround 插件,我可以通过 将所需的花括号添加到光标下的单词中ysiw}lysiw{
,但这比我想要的要多得多。我尝试了以下 Vim 键绑定,但在正常模式下调用它根本没有明显效果:
" Wrap text under cursor with double curly braces (e.g., for Jinja variables)
nnoremap <C-J> ysiw}lysiw{
因此,我的问题是:
使用现有的 Vim 功能、vim-surround 插件和/或任何其他工具组合,如何绑定一个键,该键将用空格填充的双花括号将光标下的当前单词包裹起来?例如,
nginx_root
→{{ nginx_root }}
有没有办法在插入模式下也实现这一点,光标就在单词的右边?(
nginx_root*
,*
光标位置在哪里)如何绑定一个键(最好在正常模式和插入模式下都可用)以
{{ * }}
在当前光标位置插入,插入后光标*
的位置在哪里?(这将有助于输入新的 Jinja 变量,而不是如上所述对复制+粘贴变量进行操作。)