mirror of
https://github.com/dcarrillo/prezto.git
synced 2025-07-01 15:09:25 +00:00
Compare commits
41 Commits
pull/552-g
...
pull/638-e
Author | SHA1 | Date | |
---|---|---|---|
729fd07ab0 | |||
9d97ee57a3 | |||
8de68a9bda | |||
8f711d64b5 | |||
c4b50ec1a0 | |||
62198b0326 | |||
b4884d4d45 | |||
abfc4ab6e5 | |||
657e8a16f4 | |||
ea25ccf62c | |||
3e88b8bcdc | |||
e892d7f3c7 | |||
4e4a6fcc63 | |||
3e8349ddde | |||
fdb406f917 | |||
493bf302f6 | |||
a217af99f3 | |||
06cc5088aa | |||
5088ca4839 | |||
0f696fc206 | |||
96bcf813b7 | |||
fe8f9a9b5b | |||
bf9dbfd5b9 | |||
ff0dfa424d | |||
fedad8e9cf | |||
478653fab2 | |||
10cf701864 | |||
7722dd4400 | |||
240eecaddf | |||
415e4bff3d | |||
e5a0e33f1c | |||
8189577772 | |||
c74cf4b5e0 | |||
72782528aa | |||
02717cb4c1 | |||
bccfca8c10 | |||
b8bb51d7b5 | |||
00e12b7a98 | |||
232313e2a0 | |||
e48dac79f3 | |||
dbeb6d4e1a |
@ -8,8 +8,8 @@ and prompt themes.
|
|||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Prezto will work with any recent release of Zsh, but the minimum recommended
|
Prezto will work with any recent release of Zsh, but the minimum required
|
||||||
version is 4.3.11.
|
version is 4.3.17.
|
||||||
|
|
||||||
1. Launch Zsh:
|
1. Launch Zsh:
|
||||||
|
|
||||||
|
2
init.zsh
2
init.zsh
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Check for the minimum supported version.
|
# Check for the minimum supported version.
|
||||||
min_zsh_version='4.3.11'
|
min_zsh_version='4.3.17'
|
||||||
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
|
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
|
||||||
print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
|
print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
|
||||||
return 1
|
return 1
|
||||||
|
@ -102,10 +102,10 @@ Node.js
|
|||||||
|
|
||||||
Provides utility functions for Node.js and loads npm completion.
|
Provides utility functions for Node.js and loads npm completion.
|
||||||
|
|
||||||
Ocaml
|
OCaml
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Initializes Ocaml package management.
|
Initializes OCaml package management.
|
||||||
|
|
||||||
OSX
|
OSX
|
||||||
---
|
---
|
||||||
|
@ -54,8 +54,8 @@ while (( $# > 0 )); do
|
|||||||
(*.Z) uncompress "$1" ;;
|
(*.Z) uncompress "$1" ;;
|
||||||
(*.zip) unzip "$1" -d $extract_dir ;;
|
(*.zip) unzip "$1" -d $extract_dir ;;
|
||||||
(*.rar) unrar &> /dev/null \
|
(*.rar) unrar &> /dev/null \
|
||||||
&& unrar e -ad "$1" \
|
&& unrar x -ad "$1" \
|
||||||
|| rar e -ad "$1" ;;
|
|| rar x -ad "$1" ;;
|
||||||
(*.7z) 7za x "$1" ;;
|
(*.7z) 7za x "$1" ;;
|
||||||
(*.deb)
|
(*.deb)
|
||||||
mkdir -p "$extract_dir/control"
|
mkdir -p "$extract_dir/control"
|
||||||
|
Submodule modules/completion/external updated: 1d6a2aa024...08afea0e23
@ -116,7 +116,7 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
|
|||||||
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
|
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
|
||||||
|
|
||||||
# Kill
|
# Kill
|
||||||
zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm -w'
|
zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,command -w'
|
||||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
|
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
|
||||||
zstyle ':completion:*:*:kill:*' menu yes select
|
zstyle ':completion:*:*:kill:*' menu yes select
|
||||||
zstyle ':completion:*:*:kill:*' force-list always
|
zstyle ':completion:*:*:kill:*' force-list always
|
||||||
|
@ -49,8 +49,7 @@ To indicate when the editor is completing, add the following to your
|
|||||||
zstyle ':prezto:module:editor:info:completing' format '...'
|
zstyle ':prezto:module:editor:info:completing' format '...'
|
||||||
|
|
||||||
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
|
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
|
||||||
*overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the
|
*overwrite*, to `$PROMPT` or `$RPROMPT`.
|
||||||
`prompt_name_preexec` hook function.
|
|
||||||
|
|
||||||
Authors
|
Authors
|
||||||
-------
|
-------
|
||||||
|
@ -61,7 +61,7 @@ key_info=(
|
|||||||
# bindkey failure.
|
# bindkey failure.
|
||||||
for key in "${(k)key_info[@]}"; do
|
for key in "${(k)key_info[@]}"; do
|
||||||
if [[ -z "$key_info[$key]" ]]; then
|
if [[ -z "$key_info[$key]" ]]; then
|
||||||
key_info["$key"]='<27>'
|
key_info[$key]='<27>'
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ _arguments -C -s -S \
|
|||||||
|
|
||||||
case "$state" in
|
case "$state" in
|
||||||
(remote)
|
(remote)
|
||||||
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
||||||
|
|
||||||
_describe -t branch 'remotes' remotes && ret=0
|
_describe -t branch 'remotes' remotes && ret=0
|
||||||
;;
|
;;
|
||||||
@ -29,7 +29,7 @@ case "$state" in
|
|||||||
remote="$words[(($CURRENT - 1))]"
|
remote="$words[(($CURRENT - 1))]"
|
||||||
|
|
||||||
branches_or_tags=($(
|
branches_or_tags=($(
|
||||||
git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2
|
command git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2
|
||||||
))
|
))
|
||||||
|
|
||||||
branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
|
branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
|
||||||
@ -39,7 +39,7 @@ case "$state" in
|
|||||||
_describe -t tag 'tags' tags && ret=0
|
_describe -t tag 'tags' tags && ret=0
|
||||||
;;
|
;;
|
||||||
(file)
|
(file)
|
||||||
files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"})
|
files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2>/dev/null)"})
|
||||||
_wanted file expl 'file' _multi_parts - / files && ret=0
|
_wanted file expl 'file' _multi_parts - / files && ret=0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ case "$state" in
|
|||||||
while IFS=$'\n' read submodule; do
|
while IFS=$'\n' read submodule; do
|
||||||
submodules+=("$submodule")
|
submodules+=("$submodule")
|
||||||
done < <(
|
done < <(
|
||||||
git config --file "$(git-root)/.gitmodules" --list \
|
command git config --file "$(git-root)/.gitmodules" --list \
|
||||||
| grep '.path=' \
|
| grep '.path=' \
|
||||||
| cut -d= -f2-
|
| cut -d= -f2-
|
||||||
)
|
)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ local submodule
|
|||||||
while IFS=$'\n' read submodule; do
|
while IFS=$'\n' read submodule; do
|
||||||
submodules+=("$submodule")
|
submodules+=("$submodule")
|
||||||
done < <(
|
done < <(
|
||||||
git config --file "$(git-root)/.gitmodules" --list \
|
command git config --file "$(git-root)/.gitmodules" --list \
|
||||||
| grep '.path=' \
|
| grep '.path=' \
|
||||||
| cut -d= -f2-
|
| cut -d= -f2-
|
||||||
)
|
)
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! git rev-parse 2> /dev/null; then
|
if ! command git rev-parse 2> /dev/null; then
|
||||||
print "$0: not a repository: $PWD" >&2
|
print "$0: not a repository: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local ref="$(git symbolic-ref HEAD 2> /dev/null)"
|
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
|
||||||
|
|
||||||
if [[ -n "$ref" ]]; then
|
if [[ -n "$ref" ]]; then
|
||||||
print "${ref#refs/heads/}"
|
print "${ref#refs/heads/}"
|
||||||
|
@ -5,15 +5,15 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git fsck 2> /dev/null \
|
command git fsck 2> /dev/null \
|
||||||
| grep "^dangling commit" \
|
| grep "^dangling commit" \
|
||||||
| awk '{print $3}' \
|
| awk '{print $3}' \
|
||||||
| git log \
|
| command git log \
|
||||||
--date-order \
|
--date-order \
|
||||||
--no-walk \
|
--no-walk \
|
||||||
--stdin \
|
--stdin \
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
local git_dir="${$(git rev-parse --git-dir):A}"
|
local git_dir="${$(command git rev-parse --git-dir):A}"
|
||||||
|
|
||||||
if [[ -n "$git_dir" ]]; then
|
if [[ -n "$git_dir" ]]; then
|
||||||
print "$git_dir"
|
print "$git_dir"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -13,7 +13,7 @@ fi
|
|||||||
local remotes remote references reference file url
|
local remotes remote references reference file url
|
||||||
|
|
||||||
remote="${1:-origin}"
|
remote="${1:-origin}"
|
||||||
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
||||||
|
|
||||||
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
|
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
|
||||||
print "$0: remote not found: $remote" >&2
|
print "$0: remote not found: $remote" >&2
|
||||||
@ -21,14 +21,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
url=$(
|
url=$(
|
||||||
git config --get "remote.${remote}.url" \
|
command git config --get "remote.${remote}.url" \
|
||||||
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
|
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
|
||||||
)
|
)
|
||||||
|
|
||||||
reference="${${2:-$(git-branch-current)}:-HEAD}"
|
reference="${${2:-$(git-branch-current)}:-HEAD}"
|
||||||
references=(
|
references=(
|
||||||
HEAD
|
HEAD
|
||||||
${$(git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
|
${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (( $references[(i)$reference] == $#references + 1 )); then
|
if (( $references[(i)$reference] == $#references + 1 )); then
|
||||||
@ -37,7 +37,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$reference" == 'HEAD' ]]; then
|
if [[ "$reference" == 'HEAD' ]]; then
|
||||||
reference="$(git rev-parse HEAD 2>/dev/null)"
|
reference="$(command git rev-parse HEAD 2>/dev/null)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
file="$3"
|
file="$3"
|
||||||
|
@ -164,15 +164,15 @@ function git-info {
|
|||||||
typeset -gA git_info
|
typeset -gA git_info
|
||||||
|
|
||||||
# Return if not inside a Git repository work tree.
|
# Return if not inside a Git repository work tree.
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $# > 0 )); then
|
if (( $# > 0 )); then
|
||||||
if [[ "$1" == [Oo][Nn] ]]; then
|
if [[ "$1" == [Oo][Nn] ]]; then
|
||||||
git config --bool prompt.showinfo true
|
command git config --bool prompt.showinfo true
|
||||||
elif [[ "$1" == [Oo][Ff][Ff] ]]; then
|
elif [[ "$1" == [Oo][Ff][Ff] ]]; then
|
||||||
git config --bool prompt.showinfo false
|
command git config --bool prompt.showinfo false
|
||||||
else
|
else
|
||||||
print "usage: $0 [ on | off ]" >&2
|
print "usage: $0 [ on | off ]" >&2
|
||||||
fi
|
fi
|
||||||
@ -180,7 +180,7 @@ function git-info {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Return if git-info is disabled.
|
# Return if git-info is disabled.
|
||||||
if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then
|
if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ function git-info {
|
|||||||
# Format commit.
|
# Format commit.
|
||||||
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
|
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
|
||||||
if [[ -n "$commit_format" ]]; then
|
if [[ -n "$commit_format" ]]; then
|
||||||
commit="$(git rev-parse HEAD 2> /dev/null)"
|
commit="$(command git rev-parse HEAD 2> /dev/null)"
|
||||||
if [[ -n "$commit" ]]; then
|
if [[ -n "$commit" ]]; then
|
||||||
zformat -f commit_formatted "$commit_format" "c:$commit"
|
zformat -f commit_formatted "$commit_format" "c:$commit"
|
||||||
fi
|
fi
|
||||||
@ -199,7 +199,7 @@ function git-info {
|
|||||||
# Format stashed.
|
# Format stashed.
|
||||||
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
|
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
|
||||||
if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
|
if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
|
||||||
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
||||||
if [[ -n "$stashed" ]]; then
|
if [[ -n "$stashed" ]]; then
|
||||||
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
|
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
|
||||||
fi
|
fi
|
||||||
@ -215,7 +215,7 @@ function git-info {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the branch.
|
# Get the branch.
|
||||||
branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
|
branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
|
||||||
|
|
||||||
# Format branch.
|
# Format branch.
|
||||||
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
|
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
|
||||||
@ -226,7 +226,7 @@ function git-info {
|
|||||||
# Format position.
|
# Format position.
|
||||||
zstyle -s ':prezto:module:git:info:position' format 'position_format'
|
zstyle -s ':prezto:module:git:info:position' format 'position_format'
|
||||||
if [[ -z "$branch" && -n "$position_format" ]]; then
|
if [[ -z "$branch" && -n "$position_format" ]]; then
|
||||||
position="$(git describe --contains --all HEAD 2> /dev/null)"
|
position="$(command git describe --contains --all HEAD 2> /dev/null)"
|
||||||
if [[ -n "$position" ]]; then
|
if [[ -n "$position" ]]; then
|
||||||
zformat -f position_formatted "$position_format" "p:$position"
|
zformat -f position_formatted "$position_format" "p:$position"
|
||||||
fi
|
fi
|
||||||
@ -236,7 +236,7 @@ function git-info {
|
|||||||
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
|
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
|
||||||
if [[ -n "$branch" && -n "$remote_format" ]]; then
|
if [[ -n "$branch" && -n "$remote_format" ]]; then
|
||||||
# Gets the remote name.
|
# Gets the remote name.
|
||||||
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
|
remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
|
||||||
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
|
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
|
||||||
if [[ -n "$remote" ]]; then
|
if [[ -n "$remote" ]]; then
|
||||||
zformat -f remote_formatted "$remote_format" "R:$remote"
|
zformat -f remote_formatted "$remote_format" "R:$remote"
|
||||||
@ -247,7 +247,7 @@ function git-info {
|
|||||||
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
|
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
|
||||||
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
|
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
|
||||||
# Gets the commit difference counts between local and remote.
|
# Gets the commit difference counts between local and remote.
|
||||||
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
|
ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}'
|
||||||
|
|
||||||
# Get ahead and behind counts.
|
# Get ahead and behind counts.
|
||||||
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
|
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
|
||||||
@ -276,7 +276,7 @@ function git-info {
|
|||||||
if [[ -n "$indexed_format" ]]; then
|
if [[ -n "$indexed_format" ]]; then
|
||||||
((
|
((
|
||||||
indexed+=$(
|
indexed+=$(
|
||||||
git diff-index \
|
command git diff-index \
|
||||||
--no-ext-diff \
|
--no-ext-diff \
|
||||||
--name-only \
|
--name-only \
|
||||||
--cached \
|
--cached \
|
||||||
@ -296,7 +296,7 @@ function git-info {
|
|||||||
if [[ -n "$unindexed_format" ]]; then
|
if [[ -n "$unindexed_format" ]]; then
|
||||||
((
|
((
|
||||||
unindexed+=$(
|
unindexed+=$(
|
||||||
git diff-files \
|
command git diff-files \
|
||||||
--no-ext-diff \
|
--no-ext-diff \
|
||||||
--name-only \
|
--name-only \
|
||||||
--ignore-submodules=${ignore_submodules:-none} \
|
--ignore-submodules=${ignore_submodules:-none} \
|
||||||
@ -314,7 +314,7 @@ function git-info {
|
|||||||
if [[ -n "$untracked_format" ]]; then
|
if [[ -n "$untracked_format" ]]; then
|
||||||
((
|
((
|
||||||
untracked+=$(
|
untracked+=$(
|
||||||
git ls-files \
|
command git ls-files \
|
||||||
--other \
|
--other \
|
||||||
--exclude-standard \
|
--exclude-standard \
|
||||||
2> /dev/null \
|
2> /dev/null \
|
||||||
@ -329,7 +329,7 @@ function git-info {
|
|||||||
(( dirty = indexed + unindexed + untracked ))
|
(( dirty = indexed + unindexed + untracked ))
|
||||||
else
|
else
|
||||||
# Use porcelain status for easy parsing.
|
# Use porcelain status for easy parsing.
|
||||||
status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
|
status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
|
||||||
|
|
||||||
# Get current status.
|
# Get current status.
|
||||||
while IFS=$'\n' read line; do
|
while IFS=$'\n' read line; do
|
||||||
@ -348,13 +348,13 @@ function git-info {
|
|||||||
# Format added.
|
# Format added.
|
||||||
if (( added > 0 )); then
|
if (( added > 0 )); then
|
||||||
zstyle -s ':prezto:module:git:info:added' format 'added_format'
|
zstyle -s ':prezto:module:git:info:added' format 'added_format'
|
||||||
zformat -f added_formatted "$added_format" "a:$added_format"
|
zformat -f added_formatted "$added_format" "a:$added"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Format deleted.
|
# Format deleted.
|
||||||
if (( deleted > 0 )); then
|
if (( deleted > 0 )); then
|
||||||
zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
|
zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
|
||||||
zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
|
zformat -f deleted_formatted "$deleted_format" "d:$deleted"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Format modified.
|
# Format modified.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
local root="$(git rev-parse --show-toplevel 2> /dev/null)"
|
local root="$(command git rev-parse --show-toplevel 2> /dev/null)"
|
||||||
|
|
||||||
if [[ -n "$root" ]]; then
|
if [[ -n "$root" ]]; then
|
||||||
print "$root"
|
print "$root"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -13,10 +13,10 @@ fi
|
|||||||
local stashed
|
local stashed
|
||||||
|
|
||||||
if [[ -f "$(git-dir)/refs/stash" ]]; then
|
if [[ -f "$(git-dir)/refs/stash" ]]; then
|
||||||
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
||||||
if (( $stashed > 0 )); then
|
if (( $stashed > 0 )); then
|
||||||
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
|
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
|
||||||
git stash clear
|
command git stash clear
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -5,15 +5,15 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git fsck --unreachable 2> /dev/null \
|
command git fsck --unreachable 2> /dev/null \
|
||||||
| grep 'commit' \
|
| grep 'commit' \
|
||||||
| awk '{print $3}' \
|
| awk '{print $3}' \
|
||||||
| git log \
|
| command git log \
|
||||||
--pretty=format:${_git_log_oneline_format} \
|
--pretty=format:${_git_log_oneline_format} \
|
||||||
--extended-regexp \
|
--extended-regexp \
|
||||||
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
|
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -13,7 +13,7 @@ fi
|
|||||||
local commit
|
local commit
|
||||||
|
|
||||||
for commit in "$@"; do
|
for commit in "$@"; do
|
||||||
git update-ref \
|
command git update-ref \
|
||||||
-m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
|
-m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
elif [[ "$PWD" != "$(git-root)" ]]; then
|
elif [[ "$PWD" != "$(git-root)" ]]; then
|
||||||
@ -17,7 +17,7 @@ local src="$1"
|
|||||||
local dst="$2"
|
local dst="$2"
|
||||||
local url
|
local url
|
||||||
|
|
||||||
url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
|
url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
|
||||||
|
|
||||||
if [[ -z "$url" ]]; then
|
if [[ -z "$url" ]]; then
|
||||||
print "$0: submodule not found: $src" >&2
|
print "$0: submodule not found: $src" >&2
|
||||||
@ -27,7 +27,7 @@ fi
|
|||||||
mkdir -p "${dst:h}"
|
mkdir -p "${dst:h}"
|
||||||
|
|
||||||
git-submodule-remove "$src"
|
git-submodule-remove "$src"
|
||||||
git submodule add "$url" "$dst"
|
command git submodule add "$url" "$dst"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
@ -5,22 +5,22 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
print "$0: not a repository work tree: $PWD" >&2
|
||||||
return 1
|
return 1
|
||||||
elif [[ "$PWD" != "$(git-root)" ]]; then
|
elif [[ "$PWD" != "$(git-root)" ]]; then
|
||||||
print "$0: must be run from the root of the work tree" >&2
|
print "$0: must be run from the root of the work tree" >&2
|
||||||
return 1
|
return 1
|
||||||
elif ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then
|
elif ! command git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then
|
||||||
print "$0: submodule not found: $1" >&2
|
print "$0: submodule not found: $1" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
|
command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
|
||||||
git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
|
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
|
||||||
git add .gitmodules
|
command git add .gitmodules
|
||||||
|
|
||||||
git rm --cached -rf "${1}"
|
command git rm --cached -rf "${1}"
|
||||||
rm -rf "${1}"
|
rm -rf "${1}"
|
||||||
rm -rf "$(git-dir)/modules/${1}"
|
rm -rf "$(git-dir)/modules/${1}"
|
||||||
|
|
||||||
|
15
modules/git/hub.zsh
Normal file
15
modules/git/hub.zsh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#
|
||||||
|
# Adds GitHub knowledge to the Git command.
|
||||||
|
# https://hub.github.com
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Chris Wanstrath <chris@wanstrath.com>
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
if (( $+commands[hub] )); then
|
||||||
|
function git {
|
||||||
|
hub "$@"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
@ -15,4 +15,5 @@ pmodload 'helper'
|
|||||||
|
|
||||||
# Source module files.
|
# Source module files.
|
||||||
source "${0:h}/alias.zsh"
|
source "${0:h}/alias.zsh"
|
||||||
|
source "${0:h}/hub.zsh"
|
||||||
|
|
||||||
|
@ -15,11 +15,14 @@ _gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
|
|||||||
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
|
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
|
||||||
|
|
||||||
# Start gpg-agent if not started.
|
# Start gpg-agent if not started.
|
||||||
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
|
if [[ -z "$GPG_AGENT_INFO" ]]; then
|
||||||
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
|
|
||||||
else
|
|
||||||
# Export environment variables.
|
# Export environment variables.
|
||||||
source "$_gpg_agent_env" 2> /dev/null
|
source "$_gpg_agent_env" 2> /dev/null
|
||||||
|
|
||||||
|
# Start gpg-agent if not started.
|
||||||
|
if ! ps -U "$USER" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
|
||||||
|
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Inform gpg-agent of the current TTY for user prompts.
|
# Inform gpg-agent of the current TTY for user prompts.
|
||||||
|
Submodule modules/history-substring-search/external updated: 1e76804052...9f9fc7d550
@ -5,6 +5,11 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
# TODO: Make the sections easier to use.
|
if [[ -z "$BROWSER" ]]; then
|
||||||
open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
|
print "$0: no web browser defined" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO: Make the sections easier to use.
|
||||||
|
"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ if (( $+functions[nvm_version] )); then
|
|||||||
version="${$(nvm_version)#v}"
|
version="${$(nvm_version)#v}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$version" ]]; then
|
if [[ "$version" == (none|) ]]; then
|
||||||
zstyle -s ':prezto:module:node:info:version' format 'version_format'
|
zstyle -s ':prezto:module:node:info:version' format 'version_format'
|
||||||
zformat -f version_formatted "$version_format" "v:$version"
|
zformat -f version_formatted "$version_format" "v:$version"
|
||||||
node_info[version]="$version_formatted"
|
node_info[version]="$version_formatted"
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
Ocaml
|
OCaml
|
||||||
=====
|
=====
|
||||||
|
|
||||||
Initializes [Ocaml][1] package management.
|
Initializes [OCaml][1] package management.
|
||||||
|
|
||||||
OPAM
|
OPAM
|
||||||
----
|
----
|
||||||
|
|
||||||
[OPAM][2] is a package manager for Ocaml.
|
[OPAM][2] is a package manager for OCaml.
|
||||||
|
|
||||||
This module enables local package installation with OPAM by extending the
|
This module enables local package installation with OPAM by extending the
|
||||||
relevant path and Ocaml variables.
|
relevant path and OCaml variables.
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Initializes Ocaml package management.
|
# Initializes OCaml package management.
|
||||||
#
|
#
|
||||||
# Authors:
|
# Authors:
|
||||||
# Sebastian Wiesner <lunaryorn@gmail.com>
|
# Sebastian Wiesner <lunaryorn@gmail.com>
|
||||||
|
@ -9,17 +9,20 @@ Aliases
|
|||||||
- `cdf` changes the current working director to the current _Finder_
|
- `cdf` changes the current working director to the current _Finder_
|
||||||
directory.
|
directory.
|
||||||
- `pushdf` pushes the current working directory onto the directory queue and
|
- `pushdf` pushes the current working directory onto the directory queue and
|
||||||
- `ql` quick looks at files.
|
changes the current working director to the current _Finder_ directory.
|
||||||
- `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft.
|
|
||||||
|
|
||||||
Functions
|
Functions
|
||||||
---------
|
---------
|
||||||
|
|
||||||
- `manb` opens _man_ pages in [_Bwana.app_][2].
|
- `mand` opens _man_ pages in [_Dash.app_][2].
|
||||||
- `manp` opens _man_ pages in _Preview.app_.
|
- `manp` opens _man_ pages in _Preview.app_.
|
||||||
- `pfd` prints the current _Finder_ directory.
|
- `pfd` prints the current _Finder_ directory.
|
||||||
- `pfs` prints the current _Finder_ selection.
|
- `pfs` prints the current _Finder_ selection.
|
||||||
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
|
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
|
||||||
|
- `ql` previews files in Quick Look.
|
||||||
|
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
|
||||||
|
- `osx-ls-download-history` displays the Mac OS X download history.
|
||||||
|
- `osx-rm-download-history` deletes the Mac OS X download history.
|
||||||
|
|
||||||
Authors
|
Authors
|
||||||
-------
|
-------
|
||||||
@ -29,7 +32,6 @@ Authors
|
|||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||||
|
|
||||||
[1]: http://www.apple.com/macosx/
|
[1]: http://www.apple.com/macosx/
|
||||||
[2]: http://bruji.com/bwana/
|
[2]: http://kapeli.com/dash
|
||||||
[3]: http://www.iterm2.com/
|
[3]: http://www.iterm2.com/
|
||||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
[4]: https://github.com/sorin-ionescu/prezto/issues
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#compdef manb manp
|
#compdef mand manp
|
||||||
#autoload
|
#autoload
|
||||||
|
|
||||||
#
|
#
|
||||||
# Completes manb and manp.
|
# Completes mand and manp.
|
||||||
#
|
#
|
||||||
# Authors:
|
# Authors:
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
@ -1,24 +0,0 @@
|
|||||||
#
|
|
||||||
# Opens man pages in Bwana.app.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
function manb {
|
|
||||||
local page
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
for page in "$@"; do
|
|
||||||
open "man:$page" 2>/dev/null
|
|
||||||
if (( $? != 0 )); then
|
|
||||||
print "$0: Bwana is not installed" >&2
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
print 'What manual page do you want?' >&2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
manb "$@"
|
|
||||||
|
|
21
modules/osx/functions/mand
Normal file
21
modules/osx/functions/mand
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# Opens man pages in Dash.app.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
function mand {
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
open "dash://manpages:$1" 2>/dev/null
|
||||||
|
if (( $? != 0 )); then
|
||||||
|
print "$0: Dash is not installed" >&2
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print 'What manual page do you want?' >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mand "$@"
|
||||||
|
|
13
modules/osx/functions/osx-ls-download-history
Normal file
13
modules/osx/functions/osx-ls-download-history
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# Displays the Mac OS X download history.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
local db
|
||||||
|
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
|
||||||
|
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
|
||||||
|
sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent'
|
||||||
|
fi
|
||||||
|
done
|
11
modules/osx/functions/osx-rm-dir-metadata
Normal file
11
modules/osx/functions/osx-rm-dir-metadata
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#
|
||||||
|
# Deletes .DS_Store and __MACOSX directories.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
find "${@:-$PWD}" \( \
|
||||||
|
-type f -name '.DS_Store' -o \
|
||||||
|
-type d -name '__MACOSX' \
|
||||||
|
\) -print0 | xargs -0 rm -rf
|
13
modules/osx/functions/osx-rm-download-history
Normal file
13
modules/osx/functions/osx-rm-download-history
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# Deletes the Mac OS X download history.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
local db
|
||||||
|
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
|
||||||
|
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
|
||||||
|
sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
|
||||||
|
fi
|
||||||
|
done
|
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
osascript 2>/dev/null <<EOF
|
osascript 2>/dev/null <<EOF
|
||||||
tell application "Finder"
|
tell application "Finder"
|
||||||
return POSIX path of (target of window 1 as alias)
|
return POSIX path of (target of first window as text)
|
||||||
end tell
|
end tell
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -5,14 +5,11 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
osascript 2>/dev/null <<EOF
|
osascript 2>&1 <<EOF
|
||||||
set output to ""
|
|
||||||
tell application "Finder" to set the_selection to selection
|
tell application "Finder" to set the_selection to selection
|
||||||
set item_count to count the_selection
|
if the_selection is not {}
|
||||||
repeat with item_index from 1 to count the_selection
|
repeat with an_item in the_selection
|
||||||
if item_index is less than item_count then set the_delimiter to "\n"
|
log POSIX path of (an_item as text)
|
||||||
if item_index is item_count then set the_delimiter to ""
|
end repeat
|
||||||
set output to output & ((item item_index of the_selection as alias)'s POSIX path) & the_delimiter
|
end if
|
||||||
end repeat
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
10
modules/osx/functions/ql
Normal file
10
modules/osx/functions/ql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#
|
||||||
|
# Previews files in Quick Look.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
qlmanage -p "$@" &> /dev/null
|
||||||
|
fi
|
@ -14,26 +14,8 @@ fi
|
|||||||
# Aliases
|
# Aliases
|
||||||
#
|
#
|
||||||
|
|
||||||
# Change directory to the current Finder directory.
|
# Changes directory to the current Finder directory.
|
||||||
alias cdf='cd "$(pfd)"'
|
alias cdf='cd "$(pfd)"'
|
||||||
|
|
||||||
# Push directory to the current Finder directory.
|
# Pushes directory to the current Finder directory.
|
||||||
alias pushdf='pushd "$(pfd)"'
|
alias pushdf='pushd "$(pfd)"'
|
||||||
|
|
||||||
#
|
|
||||||
# Functions
|
|
||||||
#
|
|
||||||
|
|
||||||
# Open files in Quick Look.
|
|
||||||
function ql {
|
|
||||||
(( $# > 0 )) && qlmanage -p "$@" &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Delete .DS_Store and __MACOSX directories.
|
|
||||||
function rm-osx-cruft {
|
|
||||||
find "${@:-$PWD}" \( \
|
|
||||||
-type f -name '.DS_Store' -o \
|
|
||||||
-type d -name '__MACOSX' \
|
|
||||||
\) -print0 | xargs -0 rm -rf
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ function prompt_sorin_pwd {
|
|||||||
_prompt_sorin_pwd="$MATCH"
|
_prompt_sorin_pwd="$MATCH"
|
||||||
unset MATCH
|
unset MATCH
|
||||||
else
|
else
|
||||||
_prompt_sorin_pwd="${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}/${pwd:t}"
|
_prompt_sorin_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,9 +16,12 @@ elif (( $+commands[pyenv] )); then
|
|||||||
eval "$(pyenv init -)"
|
eval "$(pyenv init -)"
|
||||||
|
|
||||||
# Prepend PEP 370 per user site packages directory, which defaults to
|
# Prepend PEP 370 per user site packages directory, which defaults to
|
||||||
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH.
|
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. The
|
||||||
|
# path can be overridden using PYTHONUSERBASE.
|
||||||
else
|
else
|
||||||
if [[ "$OSTYPE" == darwin* ]]; then
|
if [[ -n "$PYTHONUSERBASE" ]]; then
|
||||||
|
path=($PYTHONUSERBASE/bin $path)
|
||||||
|
elif [[ "$OSTYPE" == darwin* ]]; then
|
||||||
path=($HOME/Library/Python/*/bin(N) $path)
|
path=($HOME/Library/Python/*/bin(N) $path)
|
||||||
else
|
else
|
||||||
# This is subject to change.
|
# This is subject to change.
|
||||||
|
@ -8,7 +8,7 @@ Local Gem Installation
|
|||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
When a Ruby version manager is not detected, local gems are installed in
|
When a Ruby version manager is not detected, local gems are installed in
|
||||||
*~/Library/Ruby/Gems/1.8* on Mac OS X.
|
*~/.gems*; otherwise, they are installed according to the manager.
|
||||||
|
|
||||||
RVM
|
RVM
|
||||||
---
|
---
|
||||||
@ -20,15 +20,33 @@ home directory.
|
|||||||
Since RVM is loaded into the shell and is known to override shell commands, it
|
Since RVM is loaded into the shell and is known to override shell commands, it
|
||||||
may conflict with shell scripts.
|
may conflict with shell scripts.
|
||||||
|
|
||||||
|
Load this module as late as possible when using RVM since RVM will complain if
|
||||||
|
it is not first in `$PATH`.
|
||||||
|
|
||||||
rbenv
|
rbenv
|
||||||
-----
|
-----
|
||||||
|
|
||||||
An alternative RVM is to use [rbenv][3], which allows for switching between multiple,
|
An alternative RVM is to use [rbenv][3], which allows for switching between
|
||||||
isolated Ruby installations in the home directory.
|
multiple, isolated Ruby installations in the home directory.
|
||||||
|
|
||||||
While it is not as feature rich as RVM, it is not loaded into the shell and is
|
While it is not as feature rich as RVM, it is not loaded into the shell and is
|
||||||
not known to cause conflicts with shell scripts.
|
not known to cause conflicts with shell scripts.
|
||||||
|
|
||||||
|
chruby
|
||||||
|
------
|
||||||
|
|
||||||
|
Yet another alternative is [chruby][6], which is simpler than both RVM and
|
||||||
|
rbenv.
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
|
||||||
|
#### Auto-Switch
|
||||||
|
|
||||||
|
To enable auto switching the Ruby version on directory change based on the
|
||||||
|
.ruby-version file, add the following line to *zpreztorc*:
|
||||||
|
|
||||||
|
zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
|
||||||
|
|
||||||
Bundler
|
Bundler
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@ -87,4 +105,4 @@ Authors
|
|||||||
[3]: https://github.com/sstephenson/rbenv
|
[3]: https://github.com/sstephenson/rbenv
|
||||||
[4]: http://gembundler.com
|
[4]: http://gembundler.com
|
||||||
[5]: https://github.com/sorin-ionescu/prezto/issues
|
[5]: https://github.com/sorin-ionescu/prezto/issues
|
||||||
|
[6]: https://github.com/postmodern/chruby
|
||||||
|
@ -18,6 +18,8 @@ if (( $+commands[rvm-prompt] )); then
|
|||||||
version="$(rvm-prompt)"
|
version="$(rvm-prompt)"
|
||||||
elif (( $+commands[rbenv] )); then
|
elif (( $+commands[rbenv] )); then
|
||||||
version="$(rbenv version-name)"
|
version="$(rbenv version-name)"
|
||||||
|
elif (( $+commands[ruby] )); then
|
||||||
|
version="${${$(ruby --version)[(w)1,(w)2]}/ /-}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Format version.
|
# Format version.
|
||||||
|
@ -23,6 +23,13 @@ elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then
|
|||||||
elif (( $+commands[rbenv] )); then
|
elif (( $+commands[rbenv] )); then
|
||||||
eval "$(rbenv init - --no-rehash zsh)"
|
eval "$(rbenv init - --no-rehash zsh)"
|
||||||
|
|
||||||
|
# Load package manager installed chruby into the shell session.
|
||||||
|
elif (( $+commands[chruby-exec] )); then
|
||||||
|
source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh"
|
||||||
|
if zstyle -t ':prezto:module:ruby:chruby' auto-switch; then
|
||||||
|
source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
# Prepend local gems bin directories to PATH.
|
# Prepend local gems bin directories to PATH.
|
||||||
else
|
else
|
||||||
path=($HOME/.gem/ruby/*/bin(N) $path)
|
path=($HOME/.gem/ruby/*/bin(N) $path)
|
||||||
|
@ -15,7 +15,7 @@ fi
|
|||||||
# Auto Start
|
# Auto Start
|
||||||
#
|
#
|
||||||
|
|
||||||
if [[ -z "$STY" ]] && ( \
|
if [[ -z "$STY" && -z "$EMACS" && -z "$VIM" ]] && ( \
|
||||||
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) ||
|
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) ||
|
||||||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \
|
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \
|
||||||
); then
|
); then
|
||||||
|
@ -3,7 +3,7 @@ Spectrum
|
|||||||
|
|
||||||
Provides for easier use of 256 colors and effects.
|
Provides for easier use of 256 colors and effects.
|
||||||
|
|
||||||
To learn more about text formatting, read [That 256 Color Thing][1].
|
To learn more about text formatting, read [A Guide to 256 Color Codes][1].
|
||||||
|
|
||||||
Variables
|
Variables
|
||||||
---------
|
---------
|
||||||
@ -87,6 +87,6 @@ Authors
|
|||||||
- [P.C. Shyamshankar](https://github.com/sykora)
|
- [P.C. Shyamshankar](https://github.com/sykora)
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||||
|
|
||||||
[1]: http://lucentbeing.com/blog/that-256-color-thing/
|
[1]: http://lucentbeing.com/writing/archives/a-guide-to-256-color-codes/
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
[2]: https://github.com/sorin-ionescu/prezto/issues
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ if [[ ! -S "$SSH_AUTH_SOCK" ]]; then
|
|||||||
source "$_ssh_agent_env" 2> /dev/null
|
source "$_ssh_agent_env" 2> /dev/null
|
||||||
|
|
||||||
# Start ssh-agent if not started.
|
# Start ssh-agent if not started.
|
||||||
if ! ps -U "$USER" -o pid,ucomm | grep -q "${SSH_AGENT_PID} ssh-agent"; then
|
if ! ps -U "$USER" -o pid,ucomm | grep -q -- "${SSH_AGENT_PID:--1} ssh-agent"; then
|
||||||
eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")"
|
eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -27,7 +27,7 @@ To enable highlighting for this module only, add the following line to
|
|||||||
### Highlighters
|
### Highlighters
|
||||||
|
|
||||||
Syntax highlighting is accomplished by pluggable [highlighters][2]. This module
|
Syntax highlighting is accomplished by pluggable [highlighters][2]. This module
|
||||||
enables the *main*, *brackets*, and *cursor* highlighters by default.
|
only enables the *main* highlighter by default.
|
||||||
|
|
||||||
To enable all highlighters, add the following to *zpreztorc*:
|
To enable all highlighters, add the following to *zpreztorc*:
|
||||||
|
|
||||||
|
Submodule modules/syntax-highlighting/external updated: f289a9f8e7...3dc5741900
@ -20,12 +20,15 @@ following line to *zpreztorc*:
|
|||||||
|
|
||||||
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
|
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
|
||||||
|
|
||||||
In both cases, it will create a background session named _#Prezto_ and attach
|
In both cases, it will create a background session named _prezto_ if the tmux
|
||||||
every new shell to it.
|
server is not started.
|
||||||
|
|
||||||
To avoid keeping open sessions, this module sets `destroy-unattached off` on
|
With `auto-start` enabled, you may want to control how multiple sessions are
|
||||||
the background session and `destroy-unattached on` on every other session
|
managed. The `destroy-unattached` option of tmux controls if the unattached
|
||||||
(global setting).
|
sessions must be kept alive, making sessions available for later use, configured
|
||||||
|
in *tmux.conf*:
|
||||||
|
|
||||||
|
set-option -g destroy-unattached [on | off]
|
||||||
|
|
||||||
Aliases
|
Aliases
|
||||||
-------
|
-------
|
||||||
@ -41,7 +44,7 @@ connected** to be displayed, which can be fixed by installing
|
|||||||
[reattach-to-user-namespace][3], available in [Homebrew][4], and adding the
|
[reattach-to-user-namespace][3], available in [Homebrew][4], and adding the
|
||||||
following to *tmux.conf*:
|
following to *tmux.conf*:
|
||||||
|
|
||||||
set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
|
set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
|
||||||
|
|
||||||
Furthermore, tmux is known to cause **kernel panics** on Mac OS X. A discussion
|
Furthermore, tmux is known to cause **kernel panics** on Mac OS X. A discussion
|
||||||
about this and Prezto has already been [opened][2].
|
about this and Prezto has already been [opened][2].
|
||||||
@ -54,6 +57,7 @@ Authors
|
|||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||||
- [Colin Hebert](https://github.com/ColinHebert)
|
- [Colin Hebert](https://github.com/ColinHebert)
|
||||||
- [Georges Discry](https://github.com/gdiscry)
|
- [Georges Discry](https://github.com/gdiscry)
|
||||||
|
- [Xavier Cambar](https://github.com/xcambar)
|
||||||
|
|
||||||
[1]: http://tmux.sourceforge.net
|
[1]: http://tmux.sourceforge.net
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues/62
|
[2]: https://github.com/sorin-ionescu/prezto/issues/62
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
# Colin Hebert <hebert.colin@gmail.com>
|
# Colin Hebert <hebert.colin@gmail.com>
|
||||||
# Georges Discry <georges@discry.be>
|
# Georges Discry <georges@discry.be>
|
||||||
|
# Xavier Cambar <xcambar@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
# Return if requirements are not found.
|
# Return if requirements are not found.
|
||||||
@ -16,31 +17,22 @@ fi
|
|||||||
# Auto Start
|
# Auto Start
|
||||||
#
|
#
|
||||||
|
|
||||||
if [[ -z "$TMUX" ]] && ( \
|
if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \
|
||||||
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) ||
|
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) ||
|
||||||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \
|
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \
|
||||||
); then
|
); then
|
||||||
tmux_session='#Prezto'
|
tmux start-server
|
||||||
|
|
||||||
if ! tmux has-session -t "$tmux_session" 2> /dev/null; then
|
# Create a 'prezto' session if no session has been defined in tmux.conf.
|
||||||
# Ensure that tmux server is started.
|
if ! tmux has-session 2> /dev/null; then
|
||||||
tmux start-server
|
tmux_session='prezto'
|
||||||
|
tmux \
|
||||||
# Disable the destruction of unattached sessions globally.
|
new-session -d -s "$tmux_session" \; \
|
||||||
tmux set-option -g destroy-unattached off &> /dev/null
|
set-option -t "$tmux_session" destroy-unattached off &> /dev/null
|
||||||
|
|
||||||
# Create a new session.
|
|
||||||
tmux new-session -d -s "$tmux_session"
|
|
||||||
|
|
||||||
# Disable the destruction of the new, unattached session.
|
|
||||||
tmux set-option -t "$tmux_session" destroy-unattached off &> /dev/null
|
|
||||||
|
|
||||||
# Enable the destruction of unattached sessions globally to prevent
|
|
||||||
# an abundance of open, detached sessions.
|
|
||||||
tmux set-option -g destroy-unattached on &> /dev/null
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec tmux new-session -t "$tmux_session"
|
# Attach to the 'prezto' session or to the last session used.
|
||||||
|
exec tmux attach-session
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -50,6 +50,7 @@ Aliases
|
|||||||
|
|
||||||
### Disabled File Globbing
|
### Disabled File Globbing
|
||||||
|
|
||||||
|
- `bower`
|
||||||
- `fc`
|
- `fc`
|
||||||
- `find`
|
- `find`
|
||||||
- `ftp`
|
- `ftp`
|
||||||
|
@ -10,7 +10,7 @@ function diff {
|
|||||||
if (( $+commands[colordiff] )); then
|
if (( $+commands[colordiff] )); then
|
||||||
command diff --unified "$@" | colordiff --difftype diffu
|
command diff --unified "$@" | colordiff --difftype diffu
|
||||||
elif (( $+commands[git] )); then
|
elif (( $+commands[git] )); then
|
||||||
git --no-pager diff --color=auto --no-ext-diff --no-index "$@"
|
command git --no-pager diff --color=auto --no-ext-diff --no-index "$@"
|
||||||
else
|
else
|
||||||
command diff --unified "$@"
|
command diff --unified "$@"
|
||||||
fi
|
fi
|
||||||
|
@ -17,7 +17,7 @@ function wdiff {
|
|||||||
"$@" \
|
"$@" \
|
||||||
| sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g'
|
| sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g'
|
||||||
elif (( $+commands[git] )); then
|
elif (( $+commands[git] )); then
|
||||||
git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@"
|
command git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@"
|
||||||
else
|
else
|
||||||
command wdiff "$@"
|
command wdiff "$@"
|
||||||
fi
|
fi
|
||||||
|
@ -34,6 +34,7 @@ alias mysql='nocorrect mysql'
|
|||||||
alias rm='nocorrect rm'
|
alias rm='nocorrect rm'
|
||||||
|
|
||||||
# Disable globbing.
|
# Disable globbing.
|
||||||
|
alias bower='noglob bower'
|
||||||
alias fc='noglob fc'
|
alias fc='noglob fc'
|
||||||
alias find='noglob find'
|
alias find='noglob find'
|
||||||
alias ftp='noglob ftp'
|
alias ftp='noglob ftp'
|
||||||
@ -65,9 +66,9 @@ if is-callable 'dircolors'; then
|
|||||||
|
|
||||||
if zstyle -t ':prezto:module:utility:ls' color; then
|
if zstyle -t ':prezto:module:utility:ls' color; then
|
||||||
if [[ -s "$HOME/.dir_colors" ]]; then
|
if [[ -s "$HOME/.dir_colors" ]]; then
|
||||||
eval "$(dircolors "$HOME/.dir_colors")"
|
eval "$(dircolors --sh "$HOME/.dir_colors")"
|
||||||
else
|
else
|
||||||
eval "$(dircolors)"
|
eval "$(dircolors --sh)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alias ls="$aliases[ls] --color=auto"
|
alias ls="$aliases[ls] --color=auto"
|
||||||
|
@ -87,6 +87,13 @@ zstyle ':prezto:module:editor' key-bindings 'emacs'
|
|||||||
# Auto set to 'off' on dumb terminals.
|
# Auto set to 'off' on dumb terminals.
|
||||||
zstyle ':prezto:module:prompt' theme 'sorin'
|
zstyle ':prezto:module:prompt' theme 'sorin'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ruby
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto switch the Ruby version on directory change.
|
||||||
|
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
|
||||||
|
|
||||||
#
|
#
|
||||||
# Screen
|
# Screen
|
||||||
#
|
#
|
||||||
@ -145,4 +152,3 @@ zstyle ':prezto:module:prompt' theme 'sorin'
|
|||||||
|
|
||||||
# Auto start a session when Zsh is launched in a SSH connection.
|
# Auto start a session when Zsh is launched in a SSH connection.
|
||||||
# zstyle ':prezto:module:tmux:auto-start' remote 'yes'
|
# zstyle ':prezto:module:tmux:auto-start' remote 'yes'
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user