Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH v2 1/1] Increase default HISTSIZE to 1000



If the default is sensible then it's not necessary for the user to
change it.

Moreover, the FAQ is wrong: it says it's necessary to set HISTSIZE for
the history to saved, but it isn't. HISTSIZE by default is 30 and that's
enough to save the history, although not very useful. Therefore only
*two* variables need to be set.

This is even more clear after we remove HISTSIZE from the example, but
then the text "The simplest possibility is to set it to the same as
tt($HISTSIZE) as above" becomes problematic as the value of HISTSIZE is
not readily available.

The user doesn't need to know the value of HISTSIZE though, she can
simply use $HISTSIZE instead.

This has the advantage that if HISTSIZE is increased again in the future
(as it probably should because most modern computers can easily afford
orders of magnitude more), nobody needs to worry about SAVEHIST (neither
in the FAQ, zsh-newuser-install, or existing zshrc files).

Also, semantically makes more sense and carries less cognitive load.

Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
---
 Etc/FAQ.yo                            | 17 +++++++----------
 Functions/Newuser/zsh-newuser-install |  3 +--
 StartupFiles/zshrc                    |  2 +-
 configure.ac                          |  2 +-
 4 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo
index 8c795685a..4c058c363 100644
--- a/Etc/FAQ.yo
+++ b/Etc/FAQ.yo
@@ -1626,19 +1626,16 @@ work?)
 sect(Why is my history not being saved?)
 label(321)
 
-  In zsh, you need to set three variables to make sure your history is
+  In zsh, you need to set two variables to make sure your history is
   written out when the shell exits.  For example,
   verb(
-    HISTSIZE=200
     HISTFILE=~/.zsh_history
-    SAVEHIST=200
-  )
-  tt($HISTSIZE) tells the shell how many lines to keep internally,
-  tt($HISTFILE) tells it where to write the history, and tt($SAVEHIST),
-  the easiest one to forget, tells it how many to write out.  The
-  simplest possibility is to set it to the same as tt($HISTSIZE) as
-  above.  There are also various options affecting history; see the
-  manual.
+    SAVEHIST=$HISTSIZE
+  )
+  tt($HISTFILE) tells the shell where to write the history, and tt($SAVEHIST)
+  tells it how many lines to write out.  The simplest possibility is to set it
+  to the same as tt($HISTSIZE) as above.  There are also various options
+  affecting history; see the manual.
 
 sect(How do I get a variable's value to be evaluated as another variable?)
 
diff --git a/Functions/Newuser/zsh-newuser-install b/Functions/Newuser/zsh-newuser-install
index 9e911d07c..46b1639c5 100644
--- a/Functions/Newuser/zsh-newuser-install
+++ b/Functions/Newuser/zsh-newuser-install
@@ -790,9 +790,8 @@ ${(F)unparsed}
 
 __zni_history_config() {
   __zni_apply_defaults -p \
-    HISTSIZE 1000 "Number of lines of history kept within the shell." \
     HISTFILE $zdmsg/.histfile "File where history is saved." \
-    SAVEHIST 1000 "Number of lines of history to save to \$HISTFILE."
+    SAVEHIST \$HISTSIZE "Number of lines of history to save to \$HISTFILE."
 
   if __zni_display_and_edit "History configuration"; then
     install_state[history]="Unsaved changes"
diff --git a/StartupFiles/zshrc b/StartupFiles/zshrc
index d4e1d03cc..f8a0233bf 100644
--- a/StartupFiles/zshrc
+++ b/StartupFiles/zshrc
@@ -79,7 +79,7 @@ export HELPDIR=/usr/share/zsh/$ZSH_VERSION/help  # directory for run-help functi
 unalias run-help && autoload -Uz run-help
 
 MAILCHECK=300
-HISTSIZE=200
+HISTSIZE=1000
 DIRSTACKSIZE=20
 
 # Watch for my friends
diff --git a/configure.ac b/configure.ac
index 890ef8dd2..6ca5c9189 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3213,7 +3213,7 @@ AH_TOP([/***** begin user configuration section *****/
 #define USE_SUSPENDED 1
  
 /* The default history buffer size in lines */
-#define DEFAULT_HISTSIZE 30
+#define DEFAULT_HISTSIZE 1000
 
 /* The default editor for the fc builtin */
 #define DEFAULT_FCEDIT "vi"
-- 
2.37.2.351.g9bf691b78c.dirty





Messages sorted by: Reverse Date, Date, Thread, Author