vim-patch:d6c9ac9: runtime(doc): clarify the effect of 'smarttab'

closes: vim/vim#17426

d6c9ac97a0

Co-authored-by: Damien Lejay <damien@lejay.be>
This commit is contained in:
zeertzjq
2025-06-05 06:28:16 +08:00
parent 5e4700152b
commit 038fb30ece
5 changed files with 24 additions and 39 deletions

View File

@@ -510,7 +510,7 @@ paragraph, no matter where the cursor currently is. Or you can use Visual
mode: hit "v", move to the end of the block, and type "gq". See also |gq|. mode: hit "v", move to the end of the block, and type "gq". See also |gq|.
============================================================================== ==============================================================================
4. 'expandtab', 'smarttab' and 'softtabstop' options *ins-expandtab* 4. 'expandtab', 'softtabstop' and 'smarttab' options *ins-expandtab*
If the 'expandtab' option is on, spaces will be used to fill the amount of If the 'expandtab' option is on, spaces will be used to fill the amount of
whitespace of the tab. If you want to enter a real <Tab>, type CTRL-V first whitespace of the tab. If you want to enter a real <Tab>, type CTRL-V first
@@ -521,13 +521,6 @@ number of characters in the line increases. Backspacing will delete one
space at a time. The original character will be put back for only one space space at a time. The original character will be put back for only one space
that you backspace over (the last one). that you backspace over (the last one).
*ins-smarttab*
When the 'smarttab' option is on, a <Tab> inserts 'shiftwidth' positions at
the beginning of a line and 'tabstop' positions in other places. This means
that often spaces instead of a <Tab> character are inserted. When 'smarttab'
is off, a <Tab> always inserts 'tabstop' positions, and 'shiftwidth' is only
used for ">>" and the like.
*ins-softtabstop* *ins-softtabstop*
When the 'softtabstop' option is non-zero, a <Tab> inserts 'softtabstop' When the 'softtabstop' option is non-zero, a <Tab> inserts 'softtabstop'
positions, and a <BS> used to delete white space, will delete 'softtabstop' positions, and a <BS> used to delete white space, will delete 'softtabstop'
@@ -542,6 +535,13 @@ the cursor. Otherwise you cannot always delete a single character before the
cursor. You will have to delete 'softtabstop' characters first, and then type cursor. You will have to delete 'softtabstop' characters first, and then type
extra spaces to get where you want to be. extra spaces to get where you want to be.
*ins-smarttab*
When the 'smarttab' option is on, the <Tab> key indents by 'shiftwidth' if the
cursor is in leading whitespace. The <BS> key has the opposite effect. This
behaves as if 'softtabstop' were set to the value of 'shiftwidth'. This option
allows the user to set 'softtabstop' to a value other than 'shiftwidth' and
still use the <Tab> key for indentation.
============================================================================== ==============================================================================
5. Replace mode *Replace* *Replace-mode* *mode-replace* 5. Replace mode *Replace* *Replace-mode* *mode-replace*

View File

@@ -5791,16 +5791,11 @@ A jump table for the options with a short description can be found at |Q_op|.
*'smarttab'* *'sta'* *'nosmarttab'* *'nosta'* *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
'smarttab' 'sta' boolean (default on) 'smarttab' 'sta' boolean (default on)
global global
When on, a <Tab> in front of a line inserts blanks according to When enabled, the <Tab> key will indent by 'shiftwidth' if the cursor
'shiftwidth'. 'tabstop' or 'softtabstop' is used in other places. A is in leading whitespace. The <BS> key has the opposite effect.
<BS> will delete a 'shiftwidth' worth of space at the start of the This behaves as if 'softtabstop' is set to the value of 'shiftwidth'.
line. Have a look at section |30.5| of the user guide for detailed
When off, a <Tab> always inserts blanks according to 'tabstop' or explanations on how Vim works with tabs and spaces.
'softtabstop'. 'shiftwidth' is only used for shifting text left or
right |shift-left-right|.
What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s.
*'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'* *'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'*
'smoothscroll' 'sms' boolean (default off) 'smoothscroll' 'sms' boolean (default off)

View File

@@ -869,7 +869,7 @@ Short explanation of each option: *option-list*
'signcolumn' 'scl' when and how to display the sign column 'signcolumn' 'scl' when and how to display the sign column
'smartcase' 'scs' no ignore case when pattern has uppercase 'smartcase' 'scs' no ignore case when pattern has uppercase
'smartindent' 'si' smart autoindenting for C programs 'smartindent' 'si' smart autoindenting for C programs
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab> 'smarttab' 'sta' <Tab> in leading whitespace indents by 'shiftwidth'
'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set 'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set
'softtabstop' 'sts' number of spaces that <Tab> uses while editing 'softtabstop' 'sts' number of spaces that <Tab> uses while editing
'spell' enable spell checking 'spell' enable spell checking

View File

@@ -6168,16 +6168,11 @@ vim.o.si = vim.o.smartindent
vim.bo.smartindent = vim.o.smartindent vim.bo.smartindent = vim.o.smartindent
vim.bo.si = vim.bo.smartindent vim.bo.si = vim.bo.smartindent
--- When on, a <Tab> in front of a line inserts blanks according to --- When enabled, the <Tab> key will indent by 'shiftwidth' if the cursor
--- 'shiftwidth'. 'tabstop' or 'softtabstop' is used in other places. A --- is in leading whitespace. The <BS> key has the opposite effect.
--- <BS> will delete a 'shiftwidth' worth of space at the start of the --- This behaves as if 'softtabstop' is set to the value of 'shiftwidth'.
--- line. --- Have a look at section `30.5` of the user guide for detailed
--- When off, a <Tab> always inserts blanks according to 'tabstop' or --- explanations on how Vim works with tabs and spaces.
--- 'softtabstop'. 'shiftwidth' is only used for shifting text left or
--- right `shift-left-right`.
--- What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
--- option. Also see `ins-expandtab`. When 'expandtab' is not set, the
--- number of spaces is minimized by using <Tab>s.
--- ---
--- @type boolean --- @type boolean
vim.o.smarttab = true vim.o.smarttab = true

View File

@@ -8182,16 +8182,11 @@ local options = {
abbreviation = 'sta', abbreviation = 'sta',
defaults = true, defaults = true,
desc = [=[ desc = [=[
When on, a <Tab> in front of a line inserts blanks according to When enabled, the <Tab> key will indent by 'shiftwidth' if the cursor
'shiftwidth'. 'tabstop' or 'softtabstop' is used in other places. A is in leading whitespace. The <BS> key has the opposite effect.
<BS> will delete a 'shiftwidth' worth of space at the start of the This behaves as if 'softtabstop' is set to the value of 'shiftwidth'.
line. Have a look at section |30.5| of the user guide for detailed
When off, a <Tab> always inserts blanks according to 'tabstop' or explanations on how Vim works with tabs and spaces.
'softtabstop'. 'shiftwidth' is only used for shifting text left or
right |shift-left-right|.
What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s.
]=], ]=],
full_name = 'smarttab', full_name = 'smarttab',
scope = { 'global' }, scope = { 'global' },