使用 DelimitMate,它会自动生成右括号。当我在括号内完成输入后,我按什么键可以快速转到右括号的右侧?(现在我必须手动按 ESC 然后按 'a')
8 回答
这些自动关闭插件的想法(就像 Eclipse 等 IDE 中的原始功能实现)是您只需键入关闭字符即可查看它。插件应该检测到这种情况,而不是插入字符会跳过现有的自动插入的字符。
如果这对您不起作用,可以提供多种插件替代方案。Vim Tips Wiki有一个列表。
使用delimitMate,Shift-tab
将跳出当前分隔符并Control-G g
让您摆脱嵌套分隔符。无需重新映射任何东西。
你可以试试自动配对的飞行模式
例如:
( hello| world )
press ) at |
( hello world )|
如果跳转不正确,用<M-b>
做后插。
例如:
(hello| world()
press ) at |
(hello world()|
press <M-b>
(hello)| world()
仓库:https ://github.com/jiangmiao/auto-pairs
插件:http ://www.vim.org/scripts/script.php?script_id=3599
添加
let g:AutoPairsFlyMode=1
到 .vimrc 打开飞行模式
你可以做一个自定义地图。我猜你想在insert
模式下转到右括号的右边。只需添加到您的.vimrc
此映射中:
:inoremap <F8> <ESC>f)a
这样,当你在insert mode
括号内写完的时候,F8会将你的光标移到右括号的右边。如果您愿意,您可以更改映射键,使用另一个键而不是F8.
正如肯特在评论中所说,一个更通用的解决方案是:
:inoremap <F8> <ESC>%%a
这将适用于[
和{
括号。
如果您在新行上键入内容,请尝试A
在行尾附加文本。
我已经安装了自动关闭。我目前正在做的是(“我”是光标)
- (xxxxI)
- ( xxxxI )
- ( xxxxIxx )
- text (xxxxI) other text
- text ( xxxxI ) other text
- text ( xxxxIxx ) other text
我只是做了一个映射,<esc>%%a
然后在上述情况下,光标将移动到(...)I..whatever
它不适用于报价。
派对有点晚了,但请注意,无需任何自定义映射即可轻松完成。在插入模式下,您可以按<C-O>
(默认映射)进入“一次性”正常模式,您可以在其中输入单个正常模式命令。
因此,要回答您的问题,您可以做的是<C-O>a
.