public void something () {
将光标移至下一行,自动缩进,例如
public void something () {
[cursor]
虽然我可以在新行中按几次Tab键以使其对齐,但是有没有更好的方法(可以自动执行)?
#1 楼
可以结合使用autoindent
选项和filetype
插件来实现。autoindent
选项将在创建新行时复制当前缩进。因此,如果在开始新行时当前缩进级别为4,则光标将移至下一行的相同缩进级别。 set autoindent
还可以使用
~/.vimrc
插件根据文件类型自动确定下一个缩进级别。您可以通过以下方式即时启用该功能:
:filetype indent on
或者,在您的
filetype
文件中,您可以放置filetype plugin indent on
哪个将自动确定基于缩进的在文件类型上。
#2 楼
使用:set cindent
(简称:set cin
)或:set smartindent
(简称:set si
)。如果您的行以大括号结尾,并且您按Enter键,则下一行将自动缩进一个级别。 (这比:set autoindent
更好,后者只是缩进同一级的下一行。)cindent
更适合于C语言,而smartindent
更通用,可与其他编程语言一起使用。压痕的数量和类型由
:set shiftwidth=…
,:set tabstop=…
和:set expandtab
控制。#3 楼
在文件底部,我使用的是:# vim: ts=2 sw=2 sts=2 sr noet st ai si
例如
Dockerfile
:FROM centos-7
RUN ...
CMD ...
# vim: ts=2 sw=2 sts=2 sr noet st ai si
如果您只想保留缩进,请使用
# vim: st ai si
评论
不建议使用“ smartindent”,因此这不是最佳选择。对于类似C的语言,它已被'cindent'和'cinoptions'取代。通常,文件类型缩进是解决之道,而“自动缩进”作为后备。
–詹姆斯
2015年2月4日在5:25
@jamessan smartindent尚未弃用,但cindent值得注意。我已经更新了答案。 (谢谢!)
– 200_success
15年2月4日在7:15
我还建议您看一下editorconfig.org。当然,有一个vim插件(和许多其他编辑器),这是在VCS上保持编辑器默认设置的好方法
–网络Oliveira
15年2月4日在8:50