在neovim中设置空格自动缩进?

2ul0zpep  于 2022-11-11  发布在  其他
关注(0)|答案(3)|浏览(324)

我想知道如何在启动neovim时将自动缩进设置为四个空格,因为我使用空格进行缩进。
先谢谢你。

6yjfywim

6yjfywim1#

我不知道Neovim的具体情况,但是(从我读到的there)我猜它在这个主题上与Vim兼容。所以下面的解释适用于纯Vim。
您正在寻找的选项是'expandtab'。但是,为了清楚起见,我在进入此选项之前解释了缩进宽度。

缩进宽度

缩进的 * 宽度 * 由几个选项控制。这里的“缩进”是指例如在插入模式下按<Tab>(或者按<BS>,退格键,取消现有的缩进),或者自动增加缩进级别(取决于语言)。

:help tabstop
:help softtabstop
:help shiftwidth

整数选项**'tabstop'规定了用于显示实际制表字符(\t)的宽度(不是您直接感兴趣的内容,但请参阅下文)。
整数选项
'softtabstop'表示缩进的宽度。特殊值0表示复制'tabstop'的值(或者更准确地说,禁用“软制表位”功能),特殊值-1表示复制'shiftwidth'的值。
整数选项
'shiftwidth'**给出了用于移位命令的宽度,例如<<>>==。特殊值0表示复制'tabstop'的值。

缩进空格

当设置**'expandtab'**时,总是只使用空格字符进行缩进。否则,按<Tab>插入尽可能多的制表字符,并使用空格字符完成缩进宽度。

:help expandtab

一幅插图
例如,如果tabstop=8softtabstop=3,则在插入模式下:
1.在空行上按<Tab>将插入3个空格,因此总缩进为3列宽;
1.再次按<Tab>将再插入3个空格,因此总缩进为6列宽;
1.按<Tab>将使总缩进宽度为9列;如果设置了'expandtab',则将使用总共9个空间来写入它;否则,将使用制表字符(替换以前的空格)后跟空格字符来写入;
1.按下<BS>将撤销步骤3;
1.按下<BS>将撤销步骤2;
1.按下<BS>将撤消步骤1。

配置示例

大多数情况下,你希望它简单一些,并且让三个宽度选项的值相同。下面是一个示例配置,它标识了所有三个选项,所以你只需要根据自己的喜好更改'tabstop'的值。它还根据你的要求设置'expandtab'。最后,因为你调用了自动缩进,我添加了相关的选项:三种化合物的分子量分别为:但是您应该使用特定于语言的插件。

" length of an actual \t character:
set tabstop=4
" length to use when editing text (eg. TAB and BS keys)
" (0 for ‘tabstop’, -1 for ‘shiftwidth’):
set softtabstop=-1
" length to use when shifting text (eg. <<, >> and == commands)
" (0 for ‘tabstop’):
set shiftwidth=0
" round indentation to multiples of 'shiftwidth' when shifting text
" (so that it behaves like Ctrl-D / Ctrl-T):
set shiftround

" if set, only insert spaces; otherwise insert \t and complete with spaces:
set expandtab

" reproduce the indentation of the previous line:
set autoindent
" keep indentation produced by 'autoindent' if leaving the line blank:
"set cpoptions+=I
" try to be smart (increase the indenting level after ‘{’,
" decrease it after ‘}’, and so on):
"set smartindent
" a stricter alternative which works better for the C language:
"set cindent
" use language‐specific plugins for indenting (better):
filetype plugin indent on

您可以调整这些设置,并将其记录在.vimrc.nvimrc文件中。
当然,另外,您可以根据文件类型为每个缓冲区选择特定的设置。例如:

" do NOT expand tabulations in Makefiles:
autocmd FileType make setlocal noexpandtab

" for the C language, indent using 4‐column wide tabulation characters,
" but make <Tab> insert half‐indentations as 2 spaces (useful for labels):
autocmd FileType c setlocal noexpandtab shiftwidth=2

" use shorter indentation for Bash scripts:
autocmd FileType sh setlocal tabstop=2
qnakjoqk

qnakjoqk2#

如果你想使用2个空格的缩进,在你的配置中输入:

set tabstop=2
set shiftwidth=2
set expandtab
set smartindent
cygmwpex

cygmwpex3#

如果使用nvim/lua/settings.lua

local o = vim.o

o.expandtab = true
o.smartindent = true
o.tabstop = 2
o.shiftwidth = 2

相关问题