vim - 如何在 Vim 中将左花括号移动到新行?

标签 vim

我是一名 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/

相关文章:

python - VIM + netrw : open multiple files/buffers in the same window

vim - 如何在 VIM 7.3 OSX 中打开语法高亮

vim - 为什么我所有的 MacVim 配色方案看起来都不对?

windows - 阻止 vim 在 Windows 中闪烁命令提示符?

vim - 在 vim 中删除文本 *after* 光标(留下光标下的内容)

vim - 我不知道 vim 脚本中的 $delete

vim:计算函数缓冲区中的字符数

vim - NERDTree 无法将书签写入文件

vim - ~/.vimrc 如何覆盖 filetype.vim 对语法高亮的错误猜测?

Vim - 以当前文件作为参数运行 ant 命令