Vim 相当于 Emacs Ci 吗?

Vim 相当于 Emacs Ci 吗?

Vim 是否有与 Emacs 的 Ctrl-I 等效的命令?

Emacs 有一个非常有用的快捷方式“CI”,它可以修复当前行(或选定的行)的缩进。

例如,假设你在 Emacs 上写了这段小代码:

    def foo
  print "boo"
end

并且你选中了全部 3 行。按下“CI”,代码将变成

def foo
  print "boo"
end

我可以在安静模式下使用它,即忽略。Emacs 也是如此。有人知道如何在 Vim 上做到这一点吗?

答案1

在插入模式下,Ctrl+F 重新缩进当前行。可以通过设置更改键绑定cinkeys

答案2

也许还有其他方法,但请尝试:

=

答案3

这个问题的答案:https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi提供多种缩进方法。

您可能正在寻找={缩进当前的代码块。

答案4

感谢你们的帮助。我真的很感激。但实际上我找到了一个解决方案:

vimrc,你会在 L37-39 附近看到下面的代码:

"if has("autocmd")
"  filetype plugin indent on
"endif

因此删除"每行开头的 以启用此设置。现在自动缩进和缩进修复工作了!

正如 Casual Coder 所说,当您想要修复当前行的缩进时,请按=(在 Emacs Ch 中)。您还可以将它与选择命令gg=G(如在 Emacs 中,Cx h Ci)结合起来用于整个代码,而 Cv(Visual Block Mode)会很方便。

(我在问题中写的示例代码是红宝石。我从 Ubuntu 存储库下载的 Vim 附带了 Ruby 的缩进配置文件(/usr/share/vim/vim72/indent/ruby.vim),因此您不必获取“vim-ruby”。)

相关内容