我开始觉得圆括号/方括号自动完成功能很烦人。光标停留在括号内,我必须用右手小指触及右箭头才能跳出括号并继续输入。
另一方面,我认识到,不用亲自关闭它可以节省时间。
IDE 中是否存在任何常见的功能,可以让我保留两个词的优点,即保留自动完成功能,同时拥有比右箭头更快的快捷方式来跳出它们?
我目前正在使用带有 Vim 模式的 VS Code,但我也想听听其他文本编辑器/IDE 的通用解决方案。
答案1
在 VS Code 的 vim 模式下,你可以选择以下选项
- Esc进入正常模式并使用右箭头(或者使用 vim 方式L:)
- Esc进入正常模式并使用A (附加到行尾)
- 保持插入模式并输入结束分隔符。VS Code 会自动跳过自动完成功能开始的分隔符,您可以继续输入。
答案2
自动关闭功能的目的是,如果输入的文本末尾有括号,它可以节省您的时间,因此您可以在输入括号之前离开插入模式,而不需要输入它们。此外,您不需要计算以获得正确数量的结束括号。
如果你需要搬家超过一些括号,功能的大部分承诺都会丢失(您可以自己输入结束括号)。插件应确保效率不受影响;也就是说,移动括号应该很容易。→许多插件支持只输入括号字符本身,而不是使用 (我使用这个 Vim 插件,并且它有这个),它会将光标右侧的相同字符移到该字符上,而不是插入新字符。这比离开光标键的主行更快、更容易。
答案3
小延迟我的解决方案:我已将以下内容包含在 settings.json 文件中。它跳转到行尾,但在插入模式下跳转到右侧“) ] ... 时工作正常
{
"vim.insertModeKeyBindings": [
{
"before": ["<C-j>"],
"after": ["<ESC>", "A"]
}
]
}
Improved it a bit (analogue to vim-latex).
My "setting.json" file :
{
"vim.insertModeKeyBindings": [
{
"before": ["<C-j>"],
"after": ["<ESC>", "/","<","+","+",">","<CR>","i","<DEL>","<DEL>","<DEL>","<DEL>"]
},
{
"before": ["("],
"after": ["(",")","<","+","+",">","<ESC>","4","h","i"]
},
{
"before": ["["],
"after": ["[","]","<","+","+",">","<ESC>","4","h","i"]
},
{
"before": ["{"],
"after": ["{","}","<","+","+",">","<ESC>","4","h","i"]
},
{
"before": ["'"],
"after": ["\"","\"","<","+","+",">","<ESC>","4","h","i"]
}
],
// "terminal.integrated.defaultProfile.linux": "zsh",
// "terminal.external.linuxExec": "gnome-terminal",
"editor.autoClosingBrackets": "never",
"editor.autoClosingQuotes": "never"
}