patch 9.1.0899: default for 'backspace' can be set in C code
Problem: default for 'backspace' can be set in C code
Solution: promote the default for 'backspace' from defaults.vim to the C
code (Luca Saccarola)
closes: #16143
Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/defaults.vim b/runtime/defaults.vim
index 82f3358..38b03da 100644
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
-" Last Change: 2024 Nov 14
+" Last Change: 2024 Dec 01
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
"
" This is loaded if no vimrc file was found.
@@ -33,9 +33,6 @@
set nocompatible
silent! endwhile
-" Allow backspacing over everything in insert mode.
-set backspace=indent,eol,start
-
set ruler " show the cursor position all the time
set showcmd " display incomplete commands
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 05c2d9d..764b4ab 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1069,8 +1069,7 @@
done with ":syntax on".
*'backspace'* *'bs'*
-'backspace' 'bs' string (default "", set to "indent,eol,start"
- in |defaults.vim|)
+'backspace' 'bs' string (Vim default: "indent,eol,start", Vi default: "")
global
Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
mode. This is a list of items, separated by commas. Each item allows
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index b9977a9..2aadcd3 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -41611,6 +41611,8 @@
- 'rulerformat' now supports the |stl-%!| item
- the default 'history' option value has been increased to 200 and removed
from |defaults.vim|
+- the default 'backspace' option for Vim has been set to "indent,eol,start"
+ and removed from |defaults.vim|
*added-9.2*
Added ~
diff --git a/src/optiondefs.h b/src/optiondefs.h
index ca085d4..2959232 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -414,9 +414,9 @@
(char_u *)"light",
#endif
(char_u *)0L} SCTX_INIT},
- {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP,
+ {"backspace", "bs", P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
(char_u *)&p_bs, PV_NONE, did_set_backspace, expand_set_backspace,
- {(char_u *)"", (char_u *)0L} SCTX_INIT},
+ {(char_u *)"", (char_u *)"indent,eol,start"} SCTX_INIT},
{"backup", "bk", P_BOOL|P_VI_DEF|P_VIM,
(char_u *)&p_bk, PV_NONE, NULL, NULL,
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 531aa6b..d6f8ef4 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1279,8 +1279,8 @@
call assert_equal(g:opt[0], g:opt[1])
" 14: Setting option backspace through :let"
- let g:options = [['backspace', '', '', '', 'eol,indent,start', 'global', 'set']]
- let &bs = "eol,indent,start"
+ let g:options = [['backspace', 'indent,eol,start', 'indent,eol,start', 'indent,eol,start', '', 'global', 'set']]
+ let &bs = ''
call assert_equal([], g:options)
call assert_equal(g:opt[0], g:opt[1])
diff --git a/src/testdir/test_digraph.vim b/src/testdir/test_digraph.vim
index 3312faf..16eb0b1 100644
--- a/src/testdir/test_digraph.vim
+++ b/src/testdir/test_digraph.vim
@@ -250,9 +250,12 @@
call Put_Dig_BS("P","=")
call assert_equal(['Р']+repeat(["₽"],2)+['П'], getline(line('.')-3,line('.')))
" Not a digraph: this is different from <c-k>!
+ let _bs = &bs
+ set bs=
call Put_Dig_BS("a","\<bs>")
call Put_Dig_BS("\<bs>","a")
call assert_equal(['','a'], getline(line('.')-1,line('.')))
+ let &bs = _bs
" Grave
call Put_Dig_BS("a","!")
call Put_Dig_BS("!","e")
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index fd4c7cd..7829f79 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -1431,7 +1431,7 @@
set completefunc=Tcomplete
exe "normal! iup\<C-X>\<C-U>\<BS>\<BS>\<BS>\<BS>\<BS>"
call assert_equal('up', getline(1))
- call assert_equal(2, g:CallCount)
+ call assert_equal(6, g:CallCount)
set completeopt&
set completefunc&
bw!
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index fa75204..cd66cdf 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -486,7 +486,7 @@
" but don't exhaustively validate their results.
call assert_equal('single', getcompletion('set ambw=', 'cmdline')[0])
call assert_match('light\|dark', getcompletion('set bg=', 'cmdline')[1])
- call assert_equal('indent', getcompletion('set backspace=', 'cmdline')[0])
+ call assert_equal('indent,eol,start', getcompletion('set backspace=', 'cmdline')[0])
call assert_equal('yes', getcompletion('set backupcopy=', 'cmdline')[1])
call assert_equal('backspace', getcompletion('set belloff=', 'cmdline')[1])
call assert_equal('min:', getcompletion('set briopt=', 'cmdline')[1])
diff --git a/src/version.c b/src/version.c
index f83e597..7558bdc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 899,
+/**/
898,
/**/
897,