我是一名 C# 开发人员,我是使用 Vim 的新手。我很好奇,你会在你的 .vimrc
里放什么?文件,以便在您键入花括号并按 Enter 键时,如下所示:
public void Foo() {<Enter>
那个大括号被放在一个新行上,插入符号移动到大括号的内部,如下所示:
public void Foo()
{
|
}
任何帮助将不胜感激,谢谢!
最佳答案
你的问题很接近auto-close plugin issuse with curly brackets在哪里
inoremap <expr> <cr> getline(".")[col(".")-2:col(".")-1]=="{}" ? "<cr><esc>O" : "<cr>"
回答这个问题——这有点像我在 lh-brackets 中使用的.
在这里,您似乎没有使用任何括号插件。要搜索的文本变为
'\S\s*{$'
,你可以插入:<BS><cr>{<cr>}<esc>O
,或只是 {<cr>}<esc>O
如果只有 {
在线上。如果光标在 {}
内,您还应该集成之前的测试。这变成:
inoremap <expr> <cr>
\ getline(".") =~ '\S\s*{$' ? "<bs><cr>{<cr>}<esc>O"
\ : getline('.') =~ '^\s*{$' ? "<cr>}<esc>O"
\ : getline(".")[col(".")-2:col(".")-1]=="{}" ? "<cr><esc>O"
\ : "<cr>"
关于vim - 如何在 Vim 中将左花括号移动到新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708395/