-
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
{
config,
pkgs,
...
}: {
programs = {
zsh = {
enable = true;
# The default base keymap to use.
defaultKeymap = "viins";
# Enable zsh completion. Don’t forget to add
enableCompletion = true;
# Options related to commands history configuration.
history = {
# Do not enter command lines into the history list if they are duplicates of the previous event.
ignoreDups = true;
# Save timestamp into the history file.
extended = true;
# Number of history lines to keep.
size = 1000;
};
initExtra = ''
# Activate colors module in order to colourise prompt
autoload -Uz colors
colors
# Branch character (for readability)
CH_BRANCH=$'\ue0a0'
function custom-prompt() {
echo -e "
%f%k%b''${1}%1d ''${vcs_info_msg_0_}%k%f%b
%{$fg[black]%}%# %{$fg_no_bold[white]%}"
}
# VCS
autoload -Uz vcs_info
precmd () { vcs_info }
zstyle ":vcs_info:git:*" check-for-changes true
zstyle ":vcs_info:git:*" stagedstr "%{$fg[green]%}*"
zstyle ":vcs_info:git:*" unstagedstr "%{$fg[red]%}*"
zstyle ":vcs_info:*" formats "%{$fg[white]%}''${CH_BRANCH} %b%c%u%{$fg[white]%}"
zstyle ":vcs_info:*" actionformats "[%b|%a]"
function zle-line-init zle-keymap-select {
case $KEYMAP in
vicmd)
PROMPT=$(custom-prompt "%{$fg[green]%}")
;;
main|viins)
PROMPT=$(custom-prompt "%{$fg[blue]%}")
;;
esac
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
'';
};
};
}