summaryrefslogtreecommitdiff
path: root/20_Options.zsh
blob: e90ddf6fab8dc71f424b3ed5308eac3a921f580b (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() {
	SetOPTifExists $1 on
}
function UnsetOPT() {
	SetOPTifExists $1 off
}

function SetOPTifExists() {
	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