ayamir / nvimdots

A well configured and structured Neovim.
BSD 3-Clause "New" or "Revised" License
2.94k stars 465 forks source link

How to configure the tab key to convert to 4 spacebars? #1344

Closed ahrime closed 2 months ago

ahrime commented 2 months ago

Version confirmation

Following prerequisites

Neovim version

NVIM v0.10.1 Build type: Release LuaJIT 2.1.1713484068

Branch info

main (Default/Latest)

Minimal (user) folder structure required to reproduce the issue

.
├── flake.lock
├── flake.nix
├── init.lua
├── lazy-lock.json
├── LICENSE
├── lua
│   ├── core
│   │   ├── event.lua
│   │   ├── global.lua
│   │   ├── init.lua
│   │   ├── mapping.lua
│   │   ├── options.lua
│   │   ├── pack.lua
│   │   └── settings.lua
│   ├── keymap
│   │   ├── bind.lua
│   │   ├── completion.lua
│   │   ├── editor.lua
│   │   ├── helpers.lua
│   │   ├── init.lua
│   │   ├── lang.lua
│   │   ├── tool.lua
│   │   └── ui.lua
│   ├── modules
│   │   ├── configs
│   │   │   ├── completion
│   │   │   │   ├── aerial.lua
│   │   │   │   ├── cmp.lua
│   │   │   │   ├── codeium.lua
│   │   │   │   ├── copilot-cmp.lua
│   │   │   │   ├── copilot.lua
│   │   │   │   ├── formatters
│   │   │   │   │   └── clang_format.lua
│   │   │   │   ├── formatting.lua
│   │   │   │   ├── glance.lua
│   │   │   │   ├── lsp.lua
│   │   │   │   ├── lspsaga.lua
│   │   │   │   ├── lsp-signature.lua
│   │   │   │   ├── luasnip.lua
│   │   │   │   ├── mason-lspconfig.lua
│   │   │   │   ├── mason.lua
│   │   │   │   ├── mason-null-ls.lua
│   │   │   │   ├── neoconf.lua
│   │   │   │   ├── null-ls.lua
│   │   │   │   ├── servers
│   │   │   │   │   ├── bashls.lua
│   │   │   │   │   ├── clangd.lua
│   │   │   │   │   ├── dartls.lua
│   │   │   │   │   ├── gopls.lua
│   │   │   │   │   ├── html.lua
│   │   │   │   │   ├── jsonls.lua
│   │   │   │   │   ├── lua_ls.lua
│   │   │   │   │   └── pylsp.lua
│   │   │   │   └── tabnine.lua
│   │   │   ├── editor
│   │   │   │   ├── align.lua
│   │   │   │   ├── autoclose.lua
│   │   │   │   ├── autotag.lua
│   │   │   │   ├── bigfile.lua
│   │   │   │   ├── comment.lua
│   │   │   │   ├── diffview.lua
│   │   │   │   ├── flash.lua
│   │   │   │   ├── highlight-colors.lua
│   │   │   │   ├── hop.lua
│   │   │   │   ├── local-highlight.lua
│   │   │   │   ├── persisted.lua
│   │   │   │   ├── rainbow_delims.lua
│   │   │   │   ├── splits.lua
│   │   │   │   ├── suda.lua
│   │   │   │   ├── treesitter.lua
│   │   │   │   ├── ts-context-commentstring.lua
│   │   │   │   └── ts-context.lua
│   │   │   ├── lang
│   │   │   │   ├── bqf.lua
│   │   │   │   ├── crates-keymap.lua
│   │   │   │   ├── crates.lua
│   │   │   │   ├── go.lua
│   │   │   │   ├── render-markdown.lua
│   │   │   │   └── rust.lua
│   │   │   ├── tool
│   │   │   │   ├── dap
│   │   │   │   │   ├── clients
│   │   │   │   │   │   ├── codelldb.lua
│   │   │   │   │   │   ├── delve.lua
│   │   │   │   │   │   ├── lldb.lua
│   │   │   │   │   │   └── python.lua
│   │   │   │   │   ├── dap-keymap.lua
│   │   │   │   │   ├── dapui.lua
│   │   │   │   │   └── init.lua
│   │   │   │   ├── dropbar.lua
│   │   │   │   ├── fcitx5.lua
│   │   │   │   ├── nvim-tree.lua
│   │   │   │   ├── project.lua
│   │   │   │   ├── search.lua
│   │   │   │   ├── smartyank.lua
│   │   │   │   ├── sniprun.lua
│   │   │   │   ├── telescope.lua
│   │   │   │   ├── toggleterm.lua
│   │   │   │   ├── trouble.lua
│   │   │   │   ├── which-key.lua
│   │   │   │   └── wilder.lua
│   │   │   └── ui
│   │   │       ├── alpha.lua
│   │   │       ├── bufferline.lua
│   │   │       ├── catppuccin.lua
│   │   │       ├── fidget.lua
│   │   │       ├── gitsigns.lua
│   │   │       ├── indent-blankline.lua
│   │   │       ├── lualine.lua
│   │   │       ├── neodim.lua
│   │   │       ├── neoscroll.lua
│   │   │       ├── notify.lua
│   │   │       ├── paint.lua
│   │   │       ├── scrollview.lua
│   │   │       └── todo.lua
│   │   ├── plugins
│   │   │   ├── completion.lua
│   │   │   ├── editor.lua
│   │   │   ├── lang.lua
│   │   │   ├── tool.lua
│   │   │   └── ui.lua
│   │   └── utils
│   │       ├── dap.lua
│   │       ├── icons.lua
│   │       ├── init.lua
│   │       └── keymap.lua
│   ├── user
│   │   ├── codeium.lua
│   │   ├── configs
│   │   │   ├── cmp.lua
│   │   │   ├── dap-clients
│   │   │   ├── formatters
│   │   │   ├── lsp-servers
│   │   │   └── nvim-tree.lua
│   │   ├── event.lua
│   │   ├── keymap
│   │   │   ├── completion.lua
│   │   │   ├── core.lua
│   │   │   ├── editor.lua
│   │   │   ├── init.lua
│   │   │   ├── lang.lua
│   │   │   ├── tool.lua
│   │   │   └── ui.lua
│   │   ├── options.lua
│   │   ├── plugins
│   │   │   └── codeium.lua
│   │   └── settings.lua
│   └── user_template
│       ├── configs
│       │   ├── dap-clients
│       │   ├── formatters
│       │   └── lsp-servers
│       ├── event.lua
│       ├── keymap
│       │   ├── completion.lua
│       │   ├── core.lua
│       │   ├── editor.lua
│       │   ├── init.lua
│       │   ├── lang.lua
│       │   ├── tool.lua
│       │   └── ui.lua
│       ├── options.lua
│       ├── plugins
│       └── settings.lua
├── nixos
│   ├── default.nix
│   ├── dotnet
│   │   └── default.nix
│   ├── neovim
│   │   └── default.nix
│   └── testEnv.nix
├── README.md
├── scripts
│   ├── install.ps1
│   └── install.sh
├── snips
│   ├── package.json
│   └── snippets
│       ├── c.json
│       ├── cpp.json
│       └── go.json
├── stylua.toml
└── tutor
    └── dots.tutor

Minimal config with steps on how to reproduce the issue

none

Expected behavior

none

Additional information

I couldn't find the corresponding configuration item in the options.lua file? There is a smarttab item, but I don't know its purpose.

There is no expandtab and softtabstop item in the options.lua file.

ayamir commented 2 months ago

The tab width your tapped is determined by the whole file's tab size, we use https://github.com/tpope/vim-sleuth.

ahrime commented 2 months ago

thx, The following configuration has solved my problem。

cat .editorconfig 
# http://editorconfig.org

root = true

[*]
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true

[*.{h, hxx, c, cpp, cc, cxx}]
indent_style = space
indent_size = 4

[{cmakelist.txt, CMakeLists.txt}]
indent_style = tab
indent_size = 4