author | Mikael Berthe <mikael@lilotux.net> |
Sat, 14 Jul 2012 23:13:35 +0200 | |
changeset 6 | 7671e95ab8b0 |
parent 5 | 5dbc9ebf690c |
permissions | -rw-r--r-- |
0
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
1 |
|
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
2 |
# Customized version from Frank Terbeck' scripts |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
3 |
# http://bewatermyfriend.org/p/2011/013/ |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
4 |
# "." will display the current working directory |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
5 |
# ".." will get you 1 directory up, |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
6 |
# "..." will get you 2 directories up, etc. |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
7 |
function ft_accept_line_cd_up() { |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
8 |
setopt local_options extended_glob |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
9 |
local -a cmdline |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
10 |
cmdline=( ${(z)BUFFER} ) |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
11 |
if (( ${#cmdline} == 1 )) && [[ ${cmdline[1]} == "." ]] ; then |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
12 |
BUFFER="pwd" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
13 |
zle ".$WIDGET" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
14 |
return |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
15 |
fi |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
16 |
if (( ${#cmdline} == 1 )) && [[ ${cmdline[1]} == ..## ]] ; then |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
17 |
BUFFER='cd ' |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
18 |
for (( i = 2; i <= ${#${cmdline[1]}}; i++ )); do |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
19 |
BUFFER="${BUFFER}../" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
20 |
done |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
21 |
BUFFER=${BUFFER%/} |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
22 |
fi |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
23 |
zle ".$WIDGET" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
24 |
} |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
25 |
zle -N accept-line ft_accept_line_cd_up |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
26 |
|
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
27 |
# 2nd part, completion support... |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
28 |
function ft_complete_with_dots() { |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
29 |
setopt local_options extended_glob |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
30 |
local -a cmdline |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
31 |
cmdline=( ${(z)BUFFER} ) |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
32 |
if (( ${#cmdline} == 1 )) && [[ ${cmdline[1]} == ..## ]] ; then |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
33 |
BUFFER='cd ' |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
34 |
for (( i = 2; i <= ${#${cmdline[1]}}; i++ )); do |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
35 |
BUFFER="${BUFFER}../" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
36 |
done |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
37 |
CURSOR=${#BUFFER} |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
38 |
fi |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
39 |
zle ".$WIDGET" |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
40 |
} |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
41 |
# Disabling for now as I don't know how to fallback to automatic correction... |
7215ca490221
Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff
changeset
|
42 |
#zle -N expand-or-complete ft_complete_with_dots |