summaryrefslogtreecommitdiff
path: root/20_Options.zsh
blob: 00a0453d65cb03449891b9f45bfd992f2ab4fe4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
##
## Part of configuration files for Zsh 4
## by Hugues Hiegel <hugues@hiegel.fr>
## 
## NO WARRANTY PROVIDED, USE AT YOUR OWN RISKS
##
## You are encouraged to use, modify, and redistribute
## these files with or without this notice.
## 

## Zsh options
#
# see man zshoptions(1) for more details ;-)
#

function _setopt() {
	_test_and_set $1 on
}
function _unsetopt() {
	_test_and_set $1 off
}

function _test_and_set() {
	local option=${(L)1//_/} # lowercase and no '_'

	case "$option" in
		"no"*)
			option=${option/no/}
			# resets $1 and $2
			set $option off
			;;
	esac

	if ( echo ${(k)options} | grep $option >/dev/null )
	then
		# option exists, set it.
		case "$2" in
			on)
				[ "$DEBUG" = "yes" ] && echo "setopt $option" >&2
				setopt $option
				;;
			off)
				[ "$DEBUG" = "yes" ] && echo "unsetopt $option" >&2
				unsetopt $option
				;;
		esac
	else
		[ "$DEBUG" = "yes" ] && echo "$option not supported by this version of zsh !" >&2
	fi
}



# J'ai pas très bien compris mais en gros ça va me permettre
# d'être sûr de retrouver ma commande dans tous les cas...
_setopt Always_Last_Prompt

_setopt Always_to_End

# Je préfère nettement faire un "export" sur les variables qui
# m'intéressent plutôt qu'utiliser cette option, car ça fait un
# peu porkasse quand même...
_unsetopt All_Export

## ``cd'' automatique
# Si la commande n'existe pas et qu'elle correspond à
# un dossier, zsh fait automatiquement un ``cd'' dessus.
# Pour les fainéants qui ont la flemme de taper "cd " :-)
_setopt Auto_Cd

## Envoie le signal CONT aux jobs passés en arrière-plan. 
_setopt Auto_Continue

## Complétion automatique
_setopt Auto_List
_setopt Auto_Menu
# Ces trucs sont pénibles car ils n'autorisent pas une
# complétion "petit à petit".
_unsetopt Menu_Complete
_unsetopt Rec_Exact

_setopt Auto_Param_Keys
_unsetopt Auto_Param_Slash
_unsetopt Cd_Able_Vars
_setopt Complete_Aliases
_setopt Complete_in_Word
_unsetopt Correct
_setopt Correct_All
_unsetopt Equals
_setopt Extended_Glob
_setopt Hash_Cmds
_setopt Hash_Dirs

_setopt BraceCCL # Expansion des classes de caractères, comme {a-z} au même titre que {00..99}

## Gestion de l'historique
_setopt Extended_History
_setopt Hist_Expire_Dups_First
_setopt Hist_Ignore_All_Dups
_setopt Hist_Ignore_Space
_unsetopt Hist_No_Functions
_unsetopt Hist_No_Store
_setopt Hist_Reduce_Blanks
_setopt Inc_Append_History


_setopt Magic_Equal_Subst
_setopt Mail_Warning
_setopt Mark_Dirs
_setopt No_Bg_Nice
_setopt No_Hup
_setopt No_Prompt_Cr
_setopt Numeric_Glob_Sort
_unsetopt Prompt_Cr
_setopt Auto_Pushd
_setopt Pushd_Ignore_Dups
_setopt Glob

## Gestion de l'UTF-8 !!
_setopt MultiByte