我是一名 C# 开发人员,我是使用 Vim 的新手。我很好奇,你会在你的.vimrc文件中放什么,这样当你输入花括号并按 Enter 时,就像这样:
public void Foo() {<Enter>
Run Code Online (Sandbox Code Playgroud)
那个大括号被放在一个新行上,插入符号移动到大括号的内部,如下所示:
public void Foo()
{
|
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢!
您的问题非常接近带有大括号的自动关闭插件问题,其中
inoremap <expr> <cr> getline(".")[col(".")-2:col(".")-1]=="{}" ? "<cr><esc>O" : "<cr>"
Run Code Online (Sandbox Code Playgroud)
回答这个问题——这有点像我在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>"
Run Code Online (Sandbox Code Playgroud)