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”。)