1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 10:29:25 +00:00

Compare commits

..

89 Commits

Author SHA1 Message Date
729fd07ab0 Replace 'git' with 'command git'
This prevents performance loss when git is aliased to hub.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-07 23:43:12 -04:00
9d97ee57a3 Update hub URL 2014-10-07 23:31:31 -04:00
8de68a9bda Revert "[Fix #242] Remove hub"
This reverts commit ccf181379a.
2014-10-07 23:29:47 -04:00
8f711d64b5 [Fix #594] Remove quotes surrounding associative array key 2014-10-06 23:36:33 -04:00
c4b50ec1a0 [Fix #635] Use $BROWSER to open node documentation 2014-10-06 18:02:45 -04:00
62198b0326 Display full command line on suggestion for the kill command
For the zsh suggestion for the 'kill' command, show full command line
(command: usually with arguments) instead of only the executable name (comm).
2014-10-06 17:03:53 -04:00
b4884d4d45 [Fix #626] Escape '%' in path 2014-10-06 16:54:21 -04:00
abfc4ab6e5 [Fix #648] Do not instruct users to call editor-info 2014-10-06 16:50:03 -04:00
657e8a16f4 [Fix #689] Use GPG_AGENT_INFO instead of GPG_AGENT_PID
GPG_AGENT_PID may not be defined. Also, source gpg-agent.env before
checking the PID.
2014-10-06 16:42:22 -04:00
ea25ccf62c Set default GPG_AGENT_PID for grep
If `GPG_AGENT_PID` is unset, grep will succeed if another gpg-agent is
running as it will match the string `gpg-agent` where the PID was an
empty string. Set a default value for grep to a value that will never
match if unset, i.e. -1.
2014-10-05 21:46:58 -04:00
3e88b8bcdc Set default SSH_AGENT_PID for grep
If `SSH_AGENT_PID` is unset, grep will succeed if another ssh-agent is
running as it will match the string `ssh-agent` where the PID was an
empty string. Set a default value for grep to a value that will never
match if unset, i.e. -1.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:44:20 -04:00
e892d7f3c7 Fix broken link to 256 color formatting blogpost
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:26:08 -04:00
4e4a6fcc63 Don't set node-info if version is 'none'
This is done to make it easier to not show node-info in themes
when no node version is currently in use. This is consistent with
how the Python module's python-info works.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:22:38 -04:00
3e8349ddde Use the x command for unrar and rar to preserve paths
unrar and rar will discard everything up to the file name when extracting
with `e`. This breaks extraction of archives that have files with duplicate
file names and ones where the paths are important. The `x` command
extracts with the full path instead.
2014-10-05 21:14:01 -04:00
fdb406f917 Fix typo 2014-10-05 21:12:54 -04:00
493bf302f6 Ensure dircolors uses sh syntax
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:12:54 -04:00
a217af99f3 Prezto only enables the main syntax highlighter
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:12:53 -04:00
06cc5088aa [Fix #630] Zsh v4.3.17 is the minimum required 2014-10-05 21:12:42 -04:00
5088ca4839 Bump minimum supported Zsh to v4.3.11
zsh-syntax-highlighting requires this version.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 20:25:25 -04:00
0f696fc206 Update external syntax-highlighting 2014-10-05 20:16:26 -04:00
96bcf813b7 Update external history-substring-search 2014-10-05 20:15:43 -04:00
fe8f9a9b5b Update external completions 2014-10-05 20:14:25 -04:00
bf9dbfd5b9 Support $PYTHONUSERBASE per PEP 370
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-04-03 17:55:35 -04:00
ff0dfa424d Create a default tmux session only when none defined in tmux.conf
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-04-03 17:39:46 -04:00
fedad8e9cf Fix git-info added/deleted count formatting typo
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-03-07 15:52:39 -05:00
478653fab2 [Fix #543] Do not set tmux destroy-unattached
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-03-07 15:48:49 -05:00
10cf701864 Simplify multiplexer auto-start tests 2014-02-26 17:19:19 -05:00
7722dd4400 Inform the user to load ruby as late as possible when using RVM 2014-02-17 23:39:22 -05:00
240eecaddf [Fix #551] Rename tmux auto-start session 2014-02-17 23:27:03 -05:00
415e4bff3d Fix a test operator bug introduced in e5a0e33 2014-02-17 23:09:11 -05:00
e5a0e33f1c [Fix #541] Do not auto-load screen/tmux inside of Emacs/Vim
When Emacs and Vim are launched from outside of an interactive shell,
$TMUX and $STY are not set; check for Emacs and Vim environment
variables instead.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-02-17 22:43:49 -05:00
8189577772 Disable glob for bower
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-02-16 18:29:01 -05:00
c74cf4b5e0 Prefix rarely used osx functions 2014-02-16 18:00:47 -05:00
72782528aa Add functions to display and delete osx download history 2014-02-02 20:30:27 -05:00
02717cb4c1 Update osx alias descriptions 2014-02-02 20:08:55 -05:00
bccfca8c10 Make osx functions autoloadable 2014-02-02 20:08:21 -05:00
b8bb51d7b5 Cast AppleScript paths to text 2014-02-02 14:44:22 -05:00
00e12b7a98 Add capability to browse man pages in Dash.app 2014-02-01 23:39:11 -05:00
232313e2a0 Remove Bwana.app support
Bwana.app has been stale for years. It no longer works properly.
2014-02-01 23:39:11 -05:00
e48dac79f3 Add double slash after Bwana.app's man protocol
Safari 6's unified location and search bar can no longer tell the
difference between a protocol and a colon search.
2014-02-01 23:39:11 -05:00
dbeb6d4e1a [Fix #361] Load chruby when found 2014-02-01 23:37:29 -05:00
af003d83c5 [Fix #535] Set Pacman frontend to 'pacman' when none set 2014-01-21 22:12:09 -05:00
839f4a7b83 Fix setting the 'pac' alias 2014-01-13 21:35:38 -05:00
c091f71283 [Fix #522] Do not load the terminal module in non-graphical terminals 2014-01-09 20:07:40 -05:00
e1974ad58d [Fix #516] Define ZLE functions separately 2014-01-09 19:58:14 -05:00
391bc405d0 Revert "Warn that Cygwin is not supported"
This reverts commit b1abe7a845.
2014-01-04 17:30:38 -05:00
80ded5e33d Revert "Remove utility aliases for Cygwin"
This reverts commit d368d0536b.
2014-01-04 17:30:37 -05:00
fa6723a5ee Don't use sudo if implicitly called by Pacman frontend
Don't rely on alias expansion to handle Pacman because aliases
are not expanded in sudo.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-01-04 17:30:37 -05:00
57b283facd [Fix #514] Use /tmp when $TMPDIR is undefined 2014-01-03 14:20:32 -05:00
aefdce3fc3 Fix README.md: PATH was moved from .zshenv to .zprofile 2014-01-03 13:41:05 -05:00
e4e4f89c9f [Fix #523] Ensure zprofile exists before sourcing it 2014-01-03 13:37:36 -05:00
817dd3aa3a Allow functions in a module to be symlinks
Add the '-' flag to the function glob which makes the other flag test
against the target of the symlink, and not the symlink itself.

When using rcm (https://github.com/thoughtbot/rcm), the function files
are symlinked by default, but the current glob excludes them by
targeting normal files (with the '.' flag).

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-01-03 13:30:55 -05:00
347928193f Update copyright 2013-12-08 01:34:27 -05:00
da1a837cd4 Refactor Bundler aliases 2013-11-30 19:25:11 -05:00
2ebdbdcff5 Update external completions 2013-11-29 20:37:01 -05:00
eea1eea7dc Update external history-substring-search 2013-11-29 20:36:33 -05:00
4e9553e896 Update external syntax-highlighting 2013-11-29 20:36:07 -05:00
a57d545639 Update copyright 2013-11-29 19:13:06 -05:00
cdc4f36f25 Fix heading level for "zpreztorc" 2013-11-29 17:34:34 -05:00
50edc45132 [Fix #503] Prefix rails aliases with 'bundle exec' 2013-11-29 08:46:14 -05:00
b1abe7a845 Warn that Cygwin is not supported 2013-11-29 08:46:14 -05:00
d368d0536b Remove utility aliases for Cygwin 2013-11-29 08:46:14 -05:00
254b7c36d9 [Fix #324] Add configurable terminal window and tab title formats 2013-11-26 00:25:37 -05:00
d19c349f3f Unsufix internal functions 2013-11-26 00:25:37 -05:00
9f60ddb96b Prefix internal functions 2013-11-26 00:25:36 -05:00
5b4dcea595 Simplify auto-titling 2013-11-26 00:25:36 -05:00
b98c7469e5 Rewrite terminal auto-title 2013-11-26 00:25:35 -05:00
f6bd76a90b Remove unused GNU Screen window number format 2013-11-26 00:25:35 -05:00
d877617734 [Fix #362, Fix #384] Set Mac OS X 10.6 terminal window title 2013-11-26 00:25:34 -05:00
76fc07ba9f Comment a typeset 2013-11-25 18:16:36 -05:00
52ea7152ad Git ignore bundler vendor/assets 2013-11-25 17:25:11 -05:00
b159ddb02b Do not specify a bundler install path 2013-11-25 17:25:10 -05:00
5cfe250e52 Rewrite _rails-command to work from app subdirectories 2013-11-25 17:25:10 -05:00
cc4a58bee3 Add Rails 4 bin path 2013-11-25 17:25:10 -05:00
3a5fff9c6d Don't override customized environments in subshells
Only set up environment for the top-level shell, and allow it to be
inherited normally.

A top level shell is usually a login shell, but can also be a
non-interactive, non-login shell in certain cases, such as when
executing an SSH remote command.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2013-11-25 17:16:33 -05:00
8993a8dfad Bump minimum supported Zsh to v4.3.11 2013-11-20 09:59:02 -05:00
28e956691c Add and update module descriptions 2013-11-17 15:58:53 -05:00
1c6a016644 Add Ocaml module
Manage local Ocaml modules with OPAM.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2013-11-17 15:56:17 -05:00
e18f18af92 Support command-not-found on Arch Linux
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2013-11-17 15:09:03 -05:00
a4bacb8bb9 [Fix #479] Start only one ssh-agent instance 2013-09-26 14:46:21 -04:00
aacff80984 [Fix #477] Add instructions for updating Prezto 2013-09-26 14:08:44 -04:00
eb1a20552a Comment an unnecessary style 2013-08-27 22:29:20 -04:00
a914a87aa9 Stop module loading when external code fails to source 2013-08-27 22:22:55 -04:00
e1e2c85392 Use correct option for pacman search aliases 2013-08-27 16:08:10 -04:00
8ee6634c93 Do not define $GEM_HOME
Defining it breaks gems for all users who neither use RVM nor rbenv,
but have a different default Ruby version nonetheless.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2013-08-25 22:24:42 -04:00
959887013d Simplify a conditional 2013-08-20 08:47:18 -04:00
b769505857 Remove duplicate alias definitions 2013-08-20 08:46:37 -04:00
622e7b117b Add utility aliases for Cygwin
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2013-08-20 08:35:55 -04:00
459238b2bb Replace pythonz with pyenv
Depending on Python to manage Python is silly.
2013-08-20 08:21:17 -04:00
76 changed files with 662 additions and 564 deletions

View File

@ -8,8 +8,8 @@ and prompt themes.
Installation
------------
Prezto will work with any recent release of Zsh, but the minimum recommended
version is 4.3.10.
Prezto will work with any recent release of Zsh, but the minimum required
version is 4.3.17.
1. Launch Zsh:
@ -36,9 +36,16 @@ version is 4.3.10.
### Troubleshooting
If you are not able to find certain commands after switching to *Prezto*,
modify the `PATH` variable in *~/.zshenv* then open a new Zsh terminal
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal
window or tab.
Updating
--------
Pull the latest changes and update submodules.
git pull && git submodule update --init --recursive
Usage
-----
@ -78,7 +85,8 @@ License
(The MIT License)
Copyright (c) 2009-2012 Robby Russell, Sorin Ionescu, and contributors.
Copyright (c) 2009-2011 Robby Russell and contributors.
Copyright (c) 2011-2014 Sorin Ionescu and contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -10,7 +10,7 @@
#
# Check for the minimum supported version.
min_zsh_version='4.3.10'
min_zsh_version='4.3.17'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
return 1
@ -25,7 +25,7 @@ unset min_zsh_version
function pmodload {
local -a pmodules
local pmodule
local pfunction_glob='^([_.]*|prompt_*_setup|README*)(.N:t)'
local pfunction_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)'
# $argv is overridden in the anonymous function.
pmodules=("$argv[@]")

View File

@ -31,6 +31,16 @@ Dpkg
Defines dpkg aliases and functions.
Editor
------
Sets key bindings.
Emacs
-----
Enables Emacs dependency management.
Environment
-----------
@ -41,13 +51,19 @@ Fasd
Maintains a frequently used file and directory list for fast access.
Git
---
Enhances the Git distributed version control system by providing aliases,
functions and by exposing repository status information to prompts.
GNU Utility
-----------
Provides for the interactive use of GNU utilities on non-GNU systems.
GPG
---------
---
Provides for an easier use of GPG by setting up gpg-agent.
@ -61,16 +77,16 @@ Helper
Provides helper functions for developing modules.
History Substring Search
------------------------
Integrates zsh-history-substring-search into Prezto.
History
-------
Sets history options and defines history aliases.
History Substring Search
------------------------
Integrates zsh-history-substring-search into Prezto.
Homebrew
--------
@ -86,6 +102,11 @@ Node.js
Provides utility functions for Node.js and loads npm completion.
OCaml
-----
Initializes OCaml package management.
OSX
---
@ -137,10 +158,10 @@ Spectrum
Provides for easier use of 256 colors and effects.
SSH-Agent
---------
SSH
---
Provides for an easier use of ssh-agent.
Provides for an easier use of SSH by setting up ssh-agent.
Syntax Highlighting
-------------------

View File

@ -54,8 +54,8 @@ while (( $# > 0 )); do
(*.Z) uncompress "$1" ;;
(*.zip) unzip "$1" -d $extract_dir ;;
(*.rar) unrar &> /dev/null \
&& unrar e -ad "$1" \
|| rar e -ad "$1" ;;
&& unrar x -ad "$1" \
|| rar x -ad "$1" ;;
(*.7z) 7za x "$1" ;;
(*.deb)
mkdir -p "$extract_dir/control"

View File

@ -1,7 +1,8 @@
Command-Not-Found
=================
Loads the [command-not-found][1] tool on Debian-based distributions.
Displays installation information for not found commands by loading the
[command-not-found][1] tool on Debian-based and Arch Linux-based distributions.
Authors
-------

View File

@ -5,10 +5,14 @@
# Joseph Jon Booker <joe@neoturbine.net>
#
# Load command-not-found on Debian-based distributions.
if [[ -s '/etc/zsh_command_not_found' ]]; then
source '/etc/zsh_command_not_found'
# Load command-not-found on Arch Linux-based distributions.
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
source '/usr/share/doc/pkgfile/command-not-found.zsh'
# Return if requirements are not found.
if [[ ! -s '/etc/zsh_command_not_found' ]]; then
else
return 1
fi
source '/etc/zsh_command_not_found'

View File

@ -116,7 +116,7 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
# 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:*' menu yes select
zstyle ':completion:*:*:kill:*' force-list always

View File

@ -49,8 +49,7 @@ To indicate when the editor is completing, add the following to your
zstyle ':prezto:module:editor:info:completing' format '...'
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
*overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the
`prompt_name_preexec` hook function.
*overwrite*, to `$PROMPT` or `$RPROMPT`.
Authors
-------

View File

@ -61,7 +61,7 @@ key_info=(
# bindkey failure.
for key in "${(k)key_info[@]}"; do
if [[ -z "$key_info[$key]" ]]; then
key_info["$key"]='<27>'
key_info[$key]='<27>'
fi
done
@ -107,31 +107,40 @@ function editor-info {
}
zle -N editor-info
# Ensures that $terminfo values are valid and updates editor information when
# the keymap changes.
function zle-keymap-select zle-line-init zle-line-finish {
# Updates editor information when the keymap changes.
function zle-keymap-select {
zle editor-info
}
zle -N zle-keymap-select
# Enables terminal application mode and updates editor information.
function zle-line-init {
# The terminal must be in application mode when ZLE is active for $terminfo
# values to be valid.
if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then
case "$0" in
(zle-line-init)
# Enable terminal application mode.
echoti smkx
;;
(zle-line-finish)
# Disable terminal application mode.
echoti rmkx
;;
esac
if (( $+terminfo[smkx] )); then
# Enable terminal application mode.
echoti smkx
fi
# Update editor information.
zle editor-info
}
zle -N zle-keymap-select
zle -N zle-line-finish
zle -N zle-line-init
# Disables terminal application mode and updates editor information.
function zle-line-finish {
# The terminal must be in application mode when ZLE is active for $terminfo
# values to be valid.
if (( $+terminfo[rmkx] )); then
# Disable terminal application mode.
echoti rmkx
fi
# Update editor information.
zle editor-info
}
zle -N zle-line-finish
# Toggles emacs overwrite mode and updates editor information.
function overwrite-mode {
zle .overwrite-mode

View File

@ -8,7 +8,7 @@
# 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
fi
@ -21,7 +21,7 @@ _arguments -C -s -S \
case "$state" in
(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
;;
@ -29,7 +29,7 @@ case "$state" in
remote="$words[(($CURRENT - 1))]"
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/})
@ -39,7 +39,7 @@ case "$state" in
_describe -t tag 'tags' tags && ret=0
;;
(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
;;
esac

View File

@ -8,7 +8,7 @@
# 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
fi

View File

@ -8,7 +8,7 @@
# 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
fi
@ -25,7 +25,7 @@ case "$state" in
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
git config --file "$(git-root)/.gitmodules" --list \
command git config --file "$(git-root)/.gitmodules" --list \
| grep '.path=' \
| cut -d= -f2-
)

View File

@ -8,7 +8,7 @@
# 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
fi
@ -18,7 +18,7 @@ local submodule
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
git config --file "$(git-root)/.gitmodules" --list \
command git config --file "$(git-root)/.gitmodules" --list \
| grep '.path=' \
| cut -d= -f2-
)

View File

@ -5,12 +5,12 @@
# 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
return 1
fi
local ref="$(git symbolic-ref HEAD 2> /dev/null)"
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
if [[ -n "$ref" ]]; then
print "${ref#refs/heads/}"

View File

@ -5,15 +5,15 @@
# 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
return 1
fi
git fsck 2> /dev/null \
command git fsck 2> /dev/null \
| grep "^dangling commit" \
| awk '{print $3}' \
| git log \
| command git log \
--date-order \
--no-walk \
--stdin \

View File

@ -5,7 +5,7 @@
# 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
print "$git_dir"

View File

@ -5,7 +5,7 @@
# 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
return 1
fi
@ -13,7 +13,7 @@ fi
local remotes remote references reference file url
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
print "$0: remote not found: $remote" >&2
@ -21,14 +21,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
fi
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"
)
reference="${${2:-$(git-branch-current)}:-HEAD}"
references=(
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
@ -37,7 +37,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then
fi
if [[ "$reference" == 'HEAD' ]]; then
reference="$(git rev-parse HEAD 2>/dev/null)"
reference="$(command git rev-parse HEAD 2>/dev/null)"
fi
file="$3"

View File

@ -164,15 +164,15 @@ function git-info {
typeset -gA git_info
# 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
fi
if (( $# > 0 )); 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
git config --bool prompt.showinfo false
command git config --bool prompt.showinfo false
else
print "usage: $0 [ on | off ]" >&2
fi
@ -180,7 +180,7 @@ function git-info {
fi
# 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
fi
@ -190,7 +190,7 @@ function git-info {
# Format commit.
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
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
zformat -f commit_formatted "$commit_format" "c:$commit"
fi
@ -199,7 +199,7 @@ function git-info {
# Format stashed.
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
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
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi
@ -215,7 +215,7 @@ function git-info {
fi
# 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.
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
@ -226,7 +226,7 @@ function git-info {
# Format position.
zstyle -s ':prezto:module:git:info:position' format 'position_format'
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
zformat -f position_formatted "$position_format" "p:$position"
fi
@ -236,7 +236,7 @@ function git-info {
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
if [[ -n "$branch" && -n "$remote_format" ]]; then
# 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/}"
if [[ -n "$remote" ]]; then
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'
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
# 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.
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
@ -276,7 +276,7 @@ function git-info {
if [[ -n "$indexed_format" ]]; then
((
indexed+=$(
git diff-index \
command git diff-index \
--no-ext-diff \
--name-only \
--cached \
@ -296,7 +296,7 @@ function git-info {
if [[ -n "$unindexed_format" ]]; then
((
unindexed+=$(
git diff-files \
command git diff-files \
--no-ext-diff \
--name-only \
--ignore-submodules=${ignore_submodules:-none} \
@ -314,7 +314,7 @@ function git-info {
if [[ -n "$untracked_format" ]]; then
((
untracked+=$(
git ls-files \
command git ls-files \
--other \
--exclude-standard \
2> /dev/null \
@ -329,7 +329,7 @@ function git-info {
(( dirty = indexed + unindexed + untracked ))
else
# 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.
while IFS=$'\n' read line; do
@ -348,13 +348,13 @@ function git-info {
# Format added.
if (( added > 0 )); then
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
# Format deleted.
if (( deleted > 0 )); then
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
# Format modified.

View File

@ -5,7 +5,7 @@
# 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
print "$root"

View File

@ -5,7 +5,7 @@
# 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
return 1
fi
@ -13,10 +13,10 @@ fi
local stashed
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 read -q "?Clear $stashed stashed state(s) [y/N]? "; then
git stash clear
command git stash clear
fi
fi
fi

View File

@ -5,15 +5,15 @@
# 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
return 1
fi
git fsck --unreachable 2> /dev/null \
command git fsck --unreachable 2> /dev/null \
| grep 'commit' \
| awk '{print $3}' \
| git log \
| command git log \
--pretty=format:${_git_log_oneline_format} \
--extended-regexp \
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \

View File

@ -5,7 +5,7 @@
# 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
return 1
fi
@ -13,7 +13,7 @@ fi
local commit
for commit in "$@"; do
git update-ref \
-m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
command git update-ref \
-m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
done

View File

@ -5,7 +5,7 @@
# 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
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
@ -17,7 +17,7 @@ local src="$1"
local dst="$2"
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
print "$0: submodule not found: $src" >&2
@ -27,7 +27,7 @@ fi
mkdir -p "${dst:h}"
git-submodule-remove "$src"
git submodule add "$url" "$dst"
command git submodule add "$url" "$dst"
return 0

View File

@ -5,22 +5,22 @@
# 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
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
print "$0: must be run from the root of the work tree" >&2
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
return 1
fi
git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
git add .gitmodules
command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
command git add .gitmodules
git rm --cached -rf "${1}"
command git rm --cached -rf "${1}"
rm -rf "${1}"
rm -rf "$(git-dir)/modules/${1}"

15
modules/git/hub.zsh Normal file
View 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

View File

@ -15,4 +15,5 @@ pmodload 'helper'
# Source module files.
source "${0:h}/alias.zsh"
source "${0:h}/hub.zsh"

View File

@ -12,14 +12,17 @@ fi
# Set the default paths to gpg-agent files.
_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
_gpg_agent_env="$TMPDIR/gpg-agent.env"
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
# Start gpg-agent if not started.
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
else
if [[ -z "$GPG_AGENT_INFO" ]]; then
# Export environment variables.
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
# Inform gpg-agent of the current TTY for user prompts.

View File

@ -10,7 +10,7 @@
pmodload 'editor'
# Source module files.
source "${0:h}/external/zsh-history-substring-search.zsh"
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
#
# Search

View File

@ -5,6 +5,11 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# TODO: Make the sections easier to use.
open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
if [[ -z "$BROWSER" ]]; then
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}"

View File

@ -17,7 +17,7 @@ if (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
fi
if [[ -n "$version" ]]; then
if [[ "$version" == (none|) ]]; then
zstyle -s ':prezto:module:node:info:version' format 'version_format'
zformat -f version_formatted "$version_format" "v:$version"
node_info[version]="$version_formatted"

28
modules/ocaml/README.md Normal file
View File

@ -0,0 +1,28 @@
OCaml
=====
Initializes [OCaml][1] package management.
OPAM
----
[OPAM][2] is a package manager for OCaml.
This module enables local package installation with OPAM by extending the
relevant path and OCaml variables.
### Usage
Install packages to your local package directory with `opam install`.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
- [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://ocaml.org/
[2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues

15
modules/ocaml/init.zsh Normal file
View File

@ -0,0 +1,15 @@
#
# Initializes OCaml package management.
#
# Authors:
# Sebastian Wiesner <lunaryorn@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[opam] )); then
return 1
fi
# Initialize OPAM.
eval "$(opam config env)"

View File

@ -9,17 +9,20 @@ Aliases
- `cdf` changes the current working director to the current _Finder_
directory.
- `pushdf` pushes the current working directory onto the directory queue and
- `ql` quick looks at files.
- `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft.
changes the current working director to the current _Finder_ directory.
Functions
---------
- `manb` opens _man_ pages in [_Bwana.app_][2].
- `mand` opens _man_ pages in [_Dash.app_][2].
- `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection.
- `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
-------
@ -29,7 +32,6 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.apple.com/macosx/
[2]: http://bruji.com/bwana/
[2]: http://kapeli.com/dash
[3]: http://www.iterm2.com/
[4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,8 +1,8 @@
#compdef manb manp
#compdef mand manp
#autoload
#
# Completes manb and manp.
# Completes mand and manp.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>

View File

@ -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 "$@"

View 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 "$@"

View 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

View 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

View 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

View File

@ -7,7 +7,6 @@
osascript 2>/dev/null <<EOF
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
EOF

View File

@ -5,14 +5,11 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
osascript 2>/dev/null <<EOF
set output to ""
osascript 2>&1 <<EOF
tell application "Finder" to set the_selection to selection
set item_count to count the_selection
repeat with item_index from 1 to count the_selection
if item_index is less than item_count then set the_delimiter to "\n"
if item_index is item_count then set the_delimiter to ""
set output to output & ((item item_index of the_selection as alias)'s POSIX path) & the_delimiter
end repeat
if the_selection is not {}
repeat with an_item in the_selection
log POSIX path of (an_item as text)
end repeat
end if
EOF

10
modules/osx/functions/ql Normal file
View 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

View File

@ -14,26 +14,8 @@ fi
# Aliases
#
# Change directory to the current Finder directory.
# Changes directory to the current Finder directory.
alias cdf='cd "$(pfd)"'
# Push directory to the current Finder directory.
# Pushes directory to the current Finder directory.
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
}

View File

@ -6,7 +6,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local tmp="$TMPDIR/pacman-disowned-$UID-$$"
local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$"
local db="$tmp/db"
local fs="$tmp/fs"

View File

@ -27,6 +27,9 @@ if (( $+commands[$_pacman_frontend] )); then
if [[ -s "${0:h}/${_pacman_frontend}.zsh" ]]; then
source "${0:h}/${_pacman_frontend}.zsh"
fi
else
_pacman_frontend='pacman'
_pacman_sudo='sudo '
fi
#
@ -34,49 +37,49 @@ fi
#
# Pacman.
alias pac='pacman'
alias pac="${_pacman_frontend}"
# Installs packages from repositories.
alias paci='sudo pacman --sync'
alias paci="${_pacman_sudo}${_pacman_frontend} --sync"
# Installs packages from files.
alias pacI='sudo pacman --upgrade'
alias pacI="${_pacman_sudo}${_pacman_frontend} --upgrade"
# Removes packages and unneeded dependencies.
alias pacx='sudo pacman --remove'
alias pacx="${_pacman_sudo}${_pacman_frontend} --remove"
# Removes packages, their configuration, and unneeded dependencies.
alias pacX='sudo pacman --remove --nosave --recursive'
alias pacX="${_pacman_sudo}${_pacman_frontend} --remove --nosave --recursive"
# Displays information about a package from the repositories.
alias pacq='pacman --sync --info'
alias pacq="${_pacman_frontend} --sync --info"
# Displays information about a package from the local database.
alias pacQ='pacman --query --info'
alias pacQ="${_pacman_frontend} --query --info"
# Searches for packages in the repositories.
alias pacs='pacman --sync --recursive'
alias pacs="${_pacman_frontend} --sync --search"
# Searches for packages in the local database.
alias pacS='pacman --query --recursive'
alias pacS="${_pacman_frontend} --query --search"
# Lists orphan packages.
alias pacman-list-orphans='sudo pacman --query --deps --unrequired'
alias pacman-list-orphans="${_pacman_sudo}${_pacman_frontend} --query --deps --unrequired"
# Removes orphan packages.
alias pacman-remove-orphans='sudo pacman --remove --recursive $(pacman --quiet --query --deps --unrequired)'
alias pacman-remove-orphans="${_pacman_sudo}${_pacman_frontend} --remove --recursive \$(${_pacman_frontend} --quiet --query --deps --unrequired)"
# Synchronizes the local package and Arch Build System databases against the
# repositories.
if (( $+commands[abs] )); then
alias pacu='sudo pacman --sync --refresh && sudo abs'
alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && ${_pacman_sudo}abs"
else
alias pacu='sudo pacman --sync --refresh'
alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh"
fi
# Synchronizes the local package database against the repositories then
# upgrades outdated packages.
alias pacU='sudo pacman --sync --refresh --sysupgrade'
alias pacU="${_pacman_sudo}${_pacman_frontend} --sync --refresh --sysupgrade"
unset _pacman_frontend
unset _pacman_{frontend,sudo}

View File

@ -11,9 +11,9 @@
# Disable color.
if ! zstyle -t ':prezto:module:pacman:yaourt' color; then
alias pacman='pacman --nocolor'
alias pacman='yaourt --nocolor'
fi
# Manages .pac* files.
alias pacc='pacman -C'
alias pacc='yaourt -C'

View File

@ -18,7 +18,7 @@ function prompt_sorin_pwd {
_prompt_sorin_pwd="$MATCH"
unset MATCH
else
_prompt_sorin_pwd="${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}/${pwd:t}"
_prompt_sorin_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}"
fi
}

View File

@ -6,15 +6,15 @@ Enables local Python and local Python package installation.
Local Python Installation
-------------------------
[pythonz][4] builds and installs multiple Python versions locally in the home
[pyenv][4] builds and installs multiple Python versions locally in the home
directory.
This module prepends the pythonz directory to the path variable to enable the
execution of `pythonz`.
This module prepends the pyenv directory to the path variable to enable the
execution of `pyenv`.
### Usage
Install Python versions with `pythonz install` into *~/.pythonz/pythons*.
Install Python versions with `pyenv install` into *~/.pyenv/versions*.
Local Package Installation
--------------------------
@ -66,16 +66,6 @@ Aliases
- `py` is short for `python`.
### Pythonz
- `pyz` is short for `pythonz`.
- `pyzc` removes stale source folders and archives.
- `pyzi` installs Python versions.
- `pyzl` lists installed Python versions.
- `pyzL` lists available Python versions.
- `pyzu` updates itself to the latest version.
- `pyzx` uninstalls Python versions.
Functions
---------
@ -105,6 +95,6 @@ Authors
[1]: http://www.python.org/dev/peps/pep-0370/
[2]: http://www.doughellmann.com/projects/virtualenvwrapper/
[3]: http://pypi.python.org/pypi/virtualenv
[4]: http://saghul.github.com/pythonz/
[4]: https://github.com/yyuu/pyenv
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,29 +6,38 @@
# Sebastian Wiesner <lunaryorn@googlemail.com>
#
# Load pythonz into the shell session.
if [[ -s $HOME/.pythonz/bin/pythonz ]]; then
path=($HOME/.pythonz/bin $path)
# Load manually installed pyenv into the shell session.
if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then
path=("$HOME/.pyenv/bin" $path)
eval "$(pyenv init -)"
# Load package manager installed pyenv into the shell session.
elif (( $+commands[pyenv] )); then
eval "$(pyenv init -)"
# Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. The
# path can be overridden using PYTHONUSERBASE.
else
if [[ -n "$PYTHONUSERBASE" ]]; then
path=($PYTHONUSERBASE/bin $path)
elif [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path)
else
# This is subject to change.
path=($HOME/.local/bin $path)
fi
fi
# Return if requirements are not found.
if (( ! $+commands[python] && ! $+commands[pythonz] )); then
if (( ! $+commands[python] && ! $+commands[pyenv] )); then
return 1
fi
# Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH.
if [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path)
else
# This is subject to change.
path=($HOME/.local/bin $path)
fi
# Load virtualenvwrapper into the shell session.
if (( $+commands[virtualenvwrapper_lazy.sh] )); then
# Set the directory where virtual environments are stored.
export WORKON_HOME=$HOME/.virtualenvs
export WORKON_HOME="$HOME/.virtualenvs"
# Disable the virtualenv prompt.
VIRTUAL_ENV_DISABLE_PROMPT=1
@ -42,14 +51,3 @@ fi
alias py='python'
# pythonz
if (( $+commands[pythonz] )); then
alias pyz='pythonz'
alias pyzc='pythonz cleanup'
alias pyzi='pythonz install'
alias pyzl='pythonz list'
alias pyzL='pythonz list -a'
alias pyzu='pythonz update'
alias pyzx='pythonz uninstall'
fi

View File

@ -7,39 +7,30 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'ruby'
# Return if requirements are not found.
if (( ! $+commands[rails] )); then
if (( ! $+commands[bundle] )); then
return 1
fi
#
# Aliases (Compatible with Rails 2)
# Aliases
#
alias ror='rails'
alias rorc='_rails-command console'
alias rordc='_rails-command dbconsole'
alias rordm='rake db:migrate'
alias rordM='rake db:migrate db:test:clone'
alias rordr='rake db:rollback'
alias rorg='_rails-command generate'
alias rorl='tail -f log/development.log'
alias rorlc='rake log:clear'
alias rorp='_rails-command plugin'
alias rorr='_rails-command runner'
alias rors='_rails-command server'
alias rorsd='_rails-command server --debugger'
alias rorx='_rails-command destroy'
#
# Functions
#
function _rails-command {
if [[ -e "script/server" ]]; then
ruby script/"$@"
else
ruby script/rails "$@"
fi
}
alias ror='bundle exec rails'
alias rorc='bundle exec rails console'
alias rordc='bundle exec rails dbconsole'
alias rordm='bundle exec rake db:migrate'
alias rordM='bundle exec rake db:migrate db:test:clone'
alias rordr='bundle exec rake db:rollback'
alias rorg='bundle exec rails generate'
alias rorl='tail -f "$(ruby-app-root)/log/development.log"'
alias rorlc='bundle exec rake log:clear'
alias rorp='bundle exec rails plugin'
alias rorr='bundle exec rails runner'
alias rors='bundle exec rails server'
alias rorsd='bundle exec rails server --debugger'
alias rorx='bundle exec rails destroy'

View File

@ -8,7 +8,7 @@ Local Gem Installation
----------------------
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
---
@ -20,15 +20,33 @@ home directory.
Since RVM is loaded into the shell and is known to override shell commands, it
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
-----
An alternative RVM is to use [rbenv][3], which allows for switching between multiple,
isolated Ruby installations in the home directory.
An alternative RVM is to use [rbenv][3], which allows for switching between
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
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
-------
@ -59,6 +77,7 @@ Aliases
Functions
---------
- `ruby-app-root` displays the path to the Ruby application root directory.
- `ruby-info` exposes information about the Ruby environment via the
`$ruby_info` associative array.
@ -86,4 +105,4 @@ Authors
[3]: https://github.com/sstephenson/rbenv
[4]: http://gembundler.com
[5]: https://github.com/sorin-ionescu/prezto/issues
[6]: https://github.com/postmodern/chruby

View File

@ -0,0 +1,19 @@
#
# Displays the path to the Ruby application root directory.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local root_dir="$PWD"
while [[ "$root_dir" != '/' ]]; do
if [[ -f "$root_dir/Gemfile" ]]; then
print "$root_dir"
break
fi
root_dir="$root_dir:h"
done
return 1

View File

@ -18,6 +18,8 @@ if (( $+commands[rvm-prompt] )); then
version="$(rvm-prompt)"
elif (( $+commands[rbenv] )); then
version="$(rbenv version-name)"
elif (( $+commands[ruby] )); then
version="${${$(ruby --version)[(w)1,(w)2]}/ /-}"
fi
# Format version.

View File

@ -23,14 +23,16 @@ elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then
elif (( $+commands[rbenv] )); then
eval "$(rbenv init - --no-rehash zsh)"
# Install local gems according to operating system conventions.
else
if [[ "$OSTYPE" == darwin* ]]; then
export GEM_HOME="$HOME/Library/Ruby/Gems/1.8"
path=("$GEM_HOME/bin" $path)
else
path=($HOME/.gem/ruby/*/bin(N) $path)
# 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.
else
path=($HOME/.gem/ruby/*/bin(N) $path)
fi
# Return if requirements are not found.
@ -48,15 +50,17 @@ alias rb='ruby'
# Bundler
if (( $+commands[bundle] )); then
alias rbb='bundle'
alias rbbe='rbb exec'
alias rbbi='rbb install --path vendor/bundle'
alias rbbl='rbb list'
alias rbbo='rbb open'
alias rbbp='rbb package'
alias rbbu='rbb update'
alias rbbe='bundle exec'
alias rbbi='bundle install --path vendor/bundle'
alias rbbl='bundle list'
alias rbbo='bundle open'
alias rbbp='bundle package'
alias rbbu='bundle update'
alias rbbI='rbbi \
&& rbb package \
&& bundle package \
&& print .bundle >>! .gitignore \
&& print vendor/assets >>! .gitignore \
&& print vendor/bundle >>! .gitignore \
&& print vendor/cache >>! .gitignore'
fi

View File

@ -15,7 +15,7 @@ fi
# Auto Start
#
if [[ -z "$STY" ]] && ( \
if [[ -z "$STY" && -z "$EMACS" && -z "$VIM" ]] && ( \
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) ||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \
); then

View File

@ -3,7 +3,7 @@ Spectrum
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
---------
@ -87,6 +87,6 @@ Authors
- [P.C. Shyamshankar](https://github.com/sykora)
- [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

View File

@ -14,17 +14,20 @@ fi
_ssh_dir="$HOME/.ssh"
# Set the path to the environment file if not set by another module.
_ssh_agent_env="${_ssh_agent_env:-$TMPDIR/ssh-agent.env}"
_ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env}"
# Set the path to the persistent authentication socket.
_ssh_agent_sock="$TMPDIR/ssh-agent.sock"
_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock"
# Start ssh-agent if not started.
if [[ ! -S "$SSH_AUTH_SOCK" ]]; then
eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")"
else
# Export environment variables.
source "$_ssh_agent_env" 2> /dev/null
# Start ssh-agent if not started.
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")"
fi
fi
# Create a persistent SSH authentication socket.

View File

@ -27,7 +27,7 @@ To enable highlighting for this module only, add the following line to
### Highlighters
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*:

View File

@ -11,7 +11,7 @@ if ! zstyle -t ':prezto:module:syntax-highlighting' color; then
fi
# Source module files.
source "${0:h}/external/zsh-syntax-highlighting.zsh"
source "${0:h}/external/zsh-syntax-highlighting.zsh" || return 1
# Set highlighters.
zstyle -a ':prezto:module:syntax-highlighting' highlighters 'ZSH_HIGHLIGHT_HIGHLIGHTERS'

View File

@ -13,23 +13,33 @@ directory, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal' auto-title 'yes'
Auto titling is disabled inside terminal multiplexers, except inside dvtm, since
it interferes with window names defined in configuration files and profile
managers.
To format terminal window and tab titles, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
`%s` will be replaced with the current working directory path or the currently
executing program name.
For a list of sequences, see [Expansion of Prompt Sequences][1].
Functions
---------
- `set-screen-window-title` sets the screen title.
- `set-terminal-tab-title` sets the terminal tab title.
- `set-terminal-window-title` sets the terminal window title.
- `set-titles-with-command` sets the screen and terminal titles with
a given command.
- `set-titles-with-path` sets the screen and terminal titles with a given path.
- `set-tab-title` sets the terminal tab title.
- `set-window-title` sets the terminal or terminal multiplexer window title.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].*
*The authors of this module should be contacted via the [issue tracker][2].*
- [James Cox](https://github.com/imajes)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues
[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -2,122 +2,123 @@
# Sets terminal window and tab titles.
#
# Authors:
# James Cox <james@imaj.es>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if [[ "$TERM" == 'dumb' ]]; then
if [[ "$TERM" == (dumb|linux|*bsd*) ]]; then
return 1
fi
# Set the GNU Screen window number.
if [[ -n "$WINDOW" ]]; then
export SCREEN_NO="%B${WINDOW}%b "
else
export SCREEN_NO=""
fi
# Sets the terminal or terminal multiplexer window title.
function set-window-title {
local title_format{,ted}
zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv"
# Sets the GNU Screen title.
function set-screen-window-title {
if [[ "$TERM" == screen* ]]; then
printf "\ek%s\e\\" ${(V)argv}
title_format="\ek%s\e\\"
else
title_format="\e]2;%s\a"
fi
}
# Sets the terminal window title.
function set-terminal-window-title {
if [[ "$TERM" == ((x|a|ml|dt|E)term*|(u|)rxvt*) ]]; then
printf "\e]2;%s\a" ${(V)argv}
fi
printf "$title_format" "${(V%)title_formatted}"
}
# Sets the terminal tab title.
function set-terminal-tab-title {
if [[ "$TERM" == ((x|a|ml|dt|E)term*|(u|)rxvt*) ]]; then
printf "\e]1;%s\a" ${(V)argv}
fi
function set-tab-title {
local title_format{,ted}
zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv"
printf "\e]1;%s\a" ${(V%)title_formatted}
}
# Sets the tab and window titles with a given command.
function set-titles-with-command {
# Do not set the window and tab titles in Terminal.app because they are not
# reset upon command termination.
if [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]]; then
return 1
fi
function _terminal-set-titles-with-command {
emulate -L zsh
setopt EXTENDED_GLOB
# Get the command name that is under job control.
if [[ "${1[(w)1]}" == (fg|%*)(\;|) ]]; then
if [[ "${2[(w)1]}" == (fg|%*)(\;|) ]]; then
# Get the job name, and, if missing, set it to the default %+.
local job_name="${${1[(wr)%*(\;|)]}:-%+}"
local job_name="${${2[(wr)%*(\;|)]}:-%+}"
# Make a local copy for use in the subshell.
local -A jobtexts_from_parent_shell
jobtexts_from_parent_shell=(${(kv)jobtexts})
jobs $job_name 2>/dev/null > >(
jobs "$job_name" 2>/dev/null > >(
read index discarded
# The index is already surrounded by brackets: [1].
set-titles-with-command "${(e):-\$jobtexts_from_parent_shell$index}"
_terminal-set-titles-with-command "${(e):-\$jobtexts_from_parent_shell$index}"
)
else
# Set the command name, or in the case of sudo or ssh, the next command.
local cmd=${${1[(wr)^(*=*|sudo|ssh|-*)]}:t}
local cmd="${${2[(wr)^(*=*|sudo|ssh|-*)]}:t}"
local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}"
unset MATCH
if [[ "$TERM" == screen* ]]; then
set-screen-window-title "$truncated_cmd"
else
set-terminal-window-title "$cmd"
set-terminal-tab-title "$truncated_cmd"
fi
set-window-title "$cmd"
set-tab-title "$truncated_cmd"
fi
}
# Sets the tab and window titles with a given path.
function set-titles-with-path {
function _terminal-set-titles-with-path {
emulate -L zsh
setopt EXTENDED_GLOB
local absolute_path="${${1:a}:-$PWD}"
local abbreviated_path="${absolute_path/#$HOME/~}"
local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}"
unset MATCH
if [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]]; then
printf '\e]7;%s\a' "file://$HOST${absolute_path// /%20}"
else
local abbreviated_path="${absolute_path/#$HOME/~}"
local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}"
unset MATCH
if [[ "$TERM" == screen* ]]; then
set-screen-window-title "$truncated_path"
else
set-terminal-window-title "$abbreviated_path"
set-terminal-tab-title "$truncated_path"
fi
fi
set-window-title "$abbreviated_path"
set-tab-title "$truncated_path"
}
# Don't override precmd/preexec; append to hook array.
# Sets the Terminal.app proxy icon.
function _terminal-set-terminal-app-proxy-icon {
printf '\e]7;%s\a' "file://$HOST${${1:-$PWD}// /%20}"
}
# Do not override precmd/preexec; append to the hook array.
autoload -Uz add-zsh-hook
# Sets the tab and window titles before the prompt is displayed.
function set-titles-precmd {
if zstyle -t ':prezto:module:terminal' auto-title; then
set-titles-with-path
fi
}
add-zsh-hook precmd set-titles-precmd
# Set up the Apple Terminal.
if [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] \
&& ( ! [[ -n "$STY" || -n "$TMUX" || -n "$DVTM" ]] )
then
# Sets the Terminal.app current working directory before the prompt is
# displayed.
add-zsh-hook precmd _terminal-set-terminal-app-proxy-icon
# Sets the tab and window titles before command execution.
function set-titles-preexec {
if zstyle -t ':prezto:module:terminal' auto-title; then
set-titles-with-command "$2"
fi
}
add-zsh-hook preexec set-titles-preexec
# Unsets the Terminal.app current working directory when a terminal
# multiplexer or remote connection is started since it can no longer be
# updated, and it becomes confusing when the directory displayed in the title
# bar is no longer synchronized with real current working directory.
function _terminal-unset-terminal-app-proxy-icon {
if [[ "${2[(w)1]:t}" == (screen|tmux|dvtm|ssh|mosh) ]]; then
_terminal-set-terminal-app-proxy-icon ' '
fi
}
add-zsh-hook preexec _terminal-unset-terminal-app-proxy-icon
# Do not set the tab and window titles in Terminal.app since it sets the tab
# title to the currently running process by default and the current working
# directory is set separately.
return
fi
# Set up non-Apple terminals.
if zstyle -t ':prezto:module:terminal' auto-title \
&& ( ! [[ -n "$STY" || -n "$TMUX" ]] )
then
# Sets the tab and window titles before the prompt is displayed.
add-zsh-hook precmd _terminal-set-titles-with-path
# Sets the tab and window titles before command execution.
add-zsh-hook preexec _terminal-set-titles-with-command
fi

View File

@ -20,12 +20,15 @@ following line to *zpreztorc*:
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
In both cases, it will create a background session named _#Prezto_ and attach
every new shell to it.
In both cases, it will create a background session named _prezto_ if the tmux
server is not started.
To avoid keeping open sessions, this module sets `destroy-unattached off` on
the background session and `destroy-unattached on` on every other session
(global setting).
With `auto-start` enabled, you may want to control how multiple sessions are
managed. The `destroy-unattached` option of tmux controls if the unattached
sessions must be kept alive, making sessions available for later use, configured
in *tmux.conf*:
set-option -g destroy-unattached [on | off]
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
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
about this and Prezto has already been [opened][2].
@ -54,6 +57,7 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert)
- [Georges Discry](https://github.com/gdiscry)
- [Xavier Cambar](https://github.com/xcambar)
[1]: http://tmux.sourceforge.net
[2]: https://github.com/sorin-ionescu/prezto/issues/62

View File

@ -5,6 +5,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Colin Hebert <hebert.colin@gmail.com>
# Georges Discry <georges@discry.be>
# Xavier Cambar <xcambar@gmail.com>
#
# Return if requirements are not found.
@ -16,31 +17,22 @@ fi
# Auto Start
#
if [[ -z "$TMUX" ]] && ( \
if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) ||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \
); then
tmux_session='#Prezto'
tmux start-server
if ! tmux has-session -t "$tmux_session" 2> /dev/null; then
# Ensure that tmux server is started.
tmux start-server
# Disable the destruction of unattached sessions globally.
tmux set-option -g 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
# Create a 'prezto' session if no session has been defined in tmux.conf.
if ! tmux has-session 2> /dev/null; then
tmux_session='prezto'
tmux \
new-session -d -s "$tmux_session" \; \
set-option -t "$tmux_session" destroy-unattached off &> /dev/null
fi
exec tmux new-session -t "$tmux_session"
# Attach to the 'prezto' session or to the last session used.
exec tmux attach-session
fi
#

View File

@ -1,54 +0,0 @@
#
# Updates Prezto to the latest version.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local remote_name
local remote_branch
local auto_commit
local use_color
zstyle -s ':prezto:module:update:remote' name 'remote_name'
zstyle -s ':prezto:module:update:remote' branch 'remote_branch'
zstyle -t ':prezto:module:update' auto-commit && auto_commit='yes'
zstyle -t ':prezto:module:update:*' color && use_color='yes'
if ! git \
--git-dir="$(cd "${ZDOTDIR:-$HOME}/.zprezto" && git-root)" \
--work-tree="${ZDOTDIR:-$HOME}/.zprezto" \
pull \
$(! is-true "$auto_commit" && print '--no-commit') \
--strategy=recursive \
-X ours \
"${remote_name:-origin}" \
"${remote_branch:-master}" 2> /dev/null
then
is-true "$use_color" && printf "$FG[red]"
print 'There was an error updating. Try again later?'
is-true "$use_color" && printf "$FG[none]"
return 1
fi
is-true "$use_color" && printf "$FG[green]"
printf '%s' \
'________ _____
___ __ \___________________ /______
__ /_/ /_ ___/ _ \__ /_ __/ __ \
_ ____/_ / / __/_ /_/ /_ / /_/ /
/_/ /_/ \___/_____/\__/ \____/
'
is-true "$use_color" && printf "$FG[cyan]"
print
print 'Prezto has been updated to the latest version.'
print 'Follow me on GitHub at https://github.com/sorin-ionescu/prezto.'
if ! is-true "$auto_commit"; then
is-true "$use_color" && printf "$FG[yellow]"
print
print 'Updates must be manually commited.'
fi
print
is-true "$use_color" && printf "$FG[none]"
return 0

View File

@ -1,24 +0,0 @@
#
# Updates Prezto periodically.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
_updater_date_file="$HOME/.zupdate"
if zstyle -t ':prezto:module:update' auto-update; then
zstyle -s ':prezto:module:update' frequency '_updater_check_frequency'
# Initialize the update reminder.
if [[ ! -f "$_updater_date_file" ]]; then
touch "$_updater_date_file"
fi
# Check for update every 7 days.
if [[ "$_updater_date_file"(Nm+$_updater_check_frequency) ]]; then
pupdate && touch "$_updater_date_file"
fi
fi
unset _updater_{date_file,check_frequency}

View File

@ -50,6 +50,7 @@ Aliases
### Disabled File Globbing
- `bower`
- `fc`
- `find`
- `ftp`

View File

@ -10,7 +10,7 @@ function diff {
if (( $+commands[colordiff] )); then
command diff --unified "$@" | colordiff --difftype diffu
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
command diff --unified "$@"
fi

View File

@ -17,7 +17,7 @@ function wdiff {
"$@" \
| sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g'
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
command wdiff "$@"
fi

View File

@ -34,6 +34,7 @@ alias mysql='nocorrect mysql'
alias rm='nocorrect rm'
# Disable globbing.
alias bower='noglob bower'
alias fc='noglob fc'
alias find='noglob find'
alias ftp='noglob ftp'
@ -65,9 +66,9 @@ if is-callable 'dircolors'; then
if zstyle -t ':prezto:module:utility:ls' color; then
if [[ -s "$HOME/.dir_colors" ]]; then
eval "$(dircolors "$HOME/.dir_colors")"
eval "$(dircolors --sh "$HOME/.dir_colors")"
else
eval "$(dircolors)"
eval "$(dircolors --sh)"
fi
alias ls="$aliases[ls] --color=auto"
@ -104,17 +105,17 @@ alias sl='ls' # I often screw this up.
# Mac OS X Everywhere
if [[ "$OSTYPE" == darwin* ]]; then
alias o='open'
alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time'
elif [[ "$OSTYPE" == cygwin* ]]; then
alias o='cygstart'
alias pbcopy='tee > /dev/clipboard'
alias pbpaste='cat /dev/clipboard'
else
alias o='xdg-open'
alias get='wget --continue --progress=bar --timestamping'
if (( $+commands[xclip] )); then
alias pbcopy='xclip -selection clipboard -in'
alias pbpaste='xclip -selection clipboard -out'
fi
if (( $+commands[xsel] )); then
elif (( $+commands[xsel] )); then
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
fi
@ -123,6 +124,13 @@ fi
alias pbc='pbcopy'
alias pbp='pbpaste'
# File Download
if (( $+commands[curl] )); then
alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time'
elif (( $+commands[wget] )); then
alias get='wget --continue --progress=bar --timestamping'
fi
# Resource Usage
alias df='df -kh'
alias du='du -kh'

View File

@ -48,7 +48,7 @@ zprofile and zlogin are not meant to be used concurrently but can be done so.
This file is sourced by interactive shells. It should define aliases,
functions, shell options, and key bindings.
## zpreztorc
### zpreztorc
This file configures Prezto.

View File

@ -10,7 +10,7 @@
#
# Set case-sensitivity for completion, history lookup, etc.
zstyle ':prezto:*:*' case-sensitive 'no'
# zstyle ':prezto:*:*' case-sensitive 'yes'
# Color output (auto set to 'no' on dumb terminals).
zstyle ':prezto:*:*' color 'yes'
@ -87,6 +87,13 @@ zstyle ':prezto:module:editor' key-bindings 'emacs'
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'sorin'
#
# Ruby
#
# Auto switch the Ruby version on directory change.
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
#
# Screen
#
@ -122,14 +129,19 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# 'builtin' 'bg=blue' \
# 'command' 'bg=blue' \
# 'function' 'bg=blue'
#
#
# Terminal
#
# Auto set the tab and window titles.
zstyle ':prezto:module:terminal' auto-title 'yes'
# zstyle ':prezto:module:terminal' auto-title 'yes'
# Set the window title format.
# zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
# Set the tab title format.
# zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
#
# Tmux
@ -140,23 +152,3 @@ zstyle ':prezto:module:terminal' auto-title 'yes'
# Auto start a session when Zsh is launched in a SSH connection.
# zstyle ':prezto:module:tmux:auto-start' remote 'yes'
#
# Update
#
# Auto update to the latest version.
zstyle ':prezto:module:update' auto-update 'no'
# Auto commit updated files without review.
zstyle ':prezto:module:update' auto-commit 'no'
# Set the update frequency in days.
zstyle ':prezto:module:update' check-frequency '7'
# Set the name of the update remote.
zstyle ':prezto:module:update:remote' name 'origin'
# Set the branch of the update remote.
zstyle ':prezto:module:update:remote' branch 'master'

View File

@ -5,3 +5,73 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# Browser
#
if [[ "$OSTYPE" == darwin* ]]; then
export BROWSER='open'
fi
#
# Editors
#
export EDITOR='nano'
export VISUAL='nano'
export PAGER='less'
#
# Language
#
if [[ -z "$LANG" ]]; then
export LANG='en_US.UTF-8'
fi
#
# Paths
#
# Ensure path arrays do not contain duplicates.
typeset -gU cdpath fpath mailpath path
# Set the the list of directories that cd searches.
# cdpath=(
# $cdpath
# )
# Set the list of directories that Zsh searches for programs.
path=(
/usr/local/{bin,sbin}
$path
)
#
# Less
#
# Set the default Less options.
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
# Remove -X and -F (exit if the content fits on one screen) to enable it.
export LESS='-F -g -i -M -R -S -w -X -z-4'
# Set the Less input preprocessor.
if (( $+commands[lesspipe.sh] )); then
export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
fi
#
# Temporary Files
#
if [[ ! -d "$TMPDIR" ]]; then
export TMPDIR="/tmp/$USER"
mkdir -p -m 700 "$TMPDIR"
fi
TMPPREFIX="${TMPDIR%/}/zsh"
if [[ ! -d "$TMPPREFIX" ]]; then
mkdir -p "$TMPPREFIX"
fi

View File

@ -5,72 +5,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# Browser
#
if [[ "$OSTYPE" == darwin* ]]; then
export BROWSER='open'
fi
#
# Editors
#
export EDITOR='nano'
export VISUAL='nano'
export PAGER='less'
#
# Language
#
if [[ -z "$LANG" ]]; then
export LANG='en_US.UTF-8'
fi
#
# Paths
#
typeset -gU cdpath fpath mailpath path
# Set the the list of directories that cd searches.
# cdpath=(
# $cdpath
# )
# Set the list of directories that Zsh searches for programs.
path=(
/usr/local/{bin,sbin}
$path
)
#
# Less
#
# Set the default Less options.
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
# Remove -X and -F (exit if the content fits on one screen) to enable it.
export LESS='-F -g -i -M -R -S -w -X -z-4'
# Set the Less input preprocessor.
if (( $+commands[lesspipe.sh] )); then
export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
fi
#
# Temporary Files
#
if [[ ! -d "$TMPDIR" ]]; then
export TMPDIR="/tmp/$USER"
mkdir -p -m 700 "$TMPDIR"
fi
TMPPREFIX="${TMPDIR%/}/zsh"
if [[ ! -d "$TMPPREFIX" ]]; then
mkdir -p "$TMPPREFIX"
# Ensure that a non-login, non-interactive shell has a defined environment.
if [[ "$SHLVL" -eq 1 && ! -o LOGIN && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then
source "${ZDOTDIR:-$HOME}/.zprofile"
fi