我的答案中的这些命令在vim中工作。大多数认为他们正在使用vi的人正在使用vim。要确定你的’vi’是否真的是’vim’,打开vi并键入:version – 如果是vim,它会这样说。否则,您可能只看到没有程序名称的版本号。此外,当您第一次打开vim时,您通常会看到一些“VIM – VI iMproved”的启动屏幕。
自动缩进
要打开自动缩进功能,请确保vim知道您正在编辑的文件类型(它通常会从文件扩展名自动检测到,但可能无法使用某些文件类型)。您可以使用菜单对其进行语法突出显示。然后,这样做:
:filetype indent on
您可以禁用自动缩进
:filetype indent off
自动调整/修正缩进
一般来说,= {motion}将代码缩进到缩进级别。
> ==对齐当前行
> = i {对齐内部块
> =%对齐到光标下的匹配括号/括号
> = 14j或14 ==对齐接下来的14行
> = G对齐到文件的末尾
> vG =相同的东西,对齐到最后
文件(但使用可视化模式)
> vjjj =对齐四行(使用可视化模式)
手动缩进
如果vim没有正确地猜测缩进级别,可以通过两种方法来改变它:
>如果您处于正常模式(其中所有内容都是命令),请执行<>>将其右移一个选项卡。您可以通过使用上面显示的相同的运动命令(例如> i {缩进当前的内部代码块),通过几行执行此操作。
>如果您处于插入模式,则可以通过执行Ctrl-T进一步缩进行(不移动光标),或者使用Ctrl-D取消缩进一个选项卡
对齐等于标志等
调整缩进/标签尺寸
如果您希望vim在缩进时使用空格而不是制表符,请运行此命令(或者考虑将其添加到您的vimrc文件)
:set expandtab
要设置多少空格等于一个选项卡,我通常这样做:
:set expandtab softtabstop=3 tabstop=3 shiftwidth=3
> tabstop – 选项卡计数的列数(影响现有制表符字符的显示)
> shiftwidth – 使用<,以及其他命令。
> softtabstop – 按Tab键可插入多少空间
> expandtab – 将选项卡键扩展到空格
但是,如果您必须使用不同数量的选项卡,您还可以使用此功能和键盘绑定:
function! Ktabs(tabsize)
execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize
"set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize
endfunction
noremap :call Ktabs(3)
如果要使用选项卡和空格的混合编辑文件,则可能需要在设置选项卡大小后使用此命令:
:retab