提问人:xyz 提问时间:11/9/2023 更新时间:11/10/2023 访问量:29
检测 Vim 中光标后是否有用于自动关闭的括号
Detect if There is A Bracket After Cursor in Vim For Autoclosing
问:
我设置了 vim,所以当我放置一个打开的括号时,它会自动完成它并将我的光标放在它们之间,我很难找到在放置“]”时如何转到括号的末尾,目前它只是“[]]”,但我希望它像代码编辑器一样将我的光标移出右括号。
我目前的代码:
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap " ""<Left>
inoremap ' ''<Left>
inoremap ` ``<Left>
答:
1赞
xyz
11/10/2023
#1
这似乎只有在空的时候才有效,但我不能 100% 确定这是否正确,我只是自己发现的。
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap " ""<Left>
inoremap ' ''<Left>
inoremap ` ``<Left>
inoremap <expr> ) search('(\%#)', 'n') ? "\<Right>" : ")"
inoremap <expr> ] search('\[\%#\]', 'n') ? "\<Right>" : "]"
inoremap <expr> } search('{\%#}', 'n') ? "\<Right>" : "}"
希望其他人能有比我更有用的答案。
评论
0赞
Friedrich
11/10/2023
你如何定义正确性?你是你自己的客户。如果它适用于您和您的用例,那么它是正确的。
评论
]
[