1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 18:39:26 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
5c7bd2009c Simplify the use of ZDOTDIR 2013-08-19 19:21:34 -04:00
36 changed files with 337 additions and 442 deletions

View File

@ -9,43 +9,41 @@ 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 recommended
version is 4.3.11. version is 4.3.10.
1. Launch Zsh: 1. Launch Zsh:
zsh zsh
2. Clone the repository: 2. Set the path to the Prezto installation directory:
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" ZDOTDIR="${ZDOTDIR:-$HOME}"
PREZTO="$ZDOTDIR/.zprezto"
3. Create a new Zsh configuration by copying the Zsh configuration files 3. Clone the repository:
git clone --recursive https://github.com/sorin-ionescu/prezto.git "$PREZTO"
4. Create a new Zsh configuration by copying the Zsh configuration files
provided: provided:
setopt EXTENDED_GLOB setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do for rcfile in "$PREZTO/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" ln -s "$rcfile" "${ZDOTDIR}/.${rcfile:t}"
done done
4. Set Zsh as your default shell: 5. Set Zsh as your default shell:
chsh -s /bin/zsh chsh -s /bin/zsh
5. Open a new Zsh terminal window or tab. 6. Open a new Zsh terminal window or tab.
### Troubleshooting ### Troubleshooting
If you are not able to find certain commands after switching to *Prezto*, If you are not able to find certain commands after switching to *Prezto*,
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal modify the `PATH` variable in *~/.zshenv* then open a new Zsh terminal
window or tab. window or tab.
Updating
--------
Pull the latest changes and update submodules.
git pull && git submodule update --init --recursive
Usage Usage
----- -----
@ -85,8 +83,7 @@ License
(The MIT License) (The MIT License)
Copyright (c) 2009-2011 Robby Russell and contributors. Copyright (c) 2009-2012 Robby Russell, Sorin Ionescu, and contributors.
Copyright (c) 2011-2014 Sorin Ionescu and contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy of 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 this software and associated documentation files (the "Software"), to deal in

View File

@ -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.10'
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
@ -25,13 +25,13 @@ unset min_zsh_version
function pmodload { function pmodload {
local -a pmodules local -a pmodules
local pmodule 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. # $argv is overridden in the anonymous function.
pmodules=("$argv[@]") pmodules=("$argv[@]")
# Add functions to $fpath. # Add functions to $fpath.
fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath) fpath=(${pmodules:+$PREZTO/modules/${^pmodules}/functions(/FN)} $fpath)
function { function {
local pfunction local pfunction
@ -40,7 +40,7 @@ function pmodload {
setopt LOCAL_OPTIONS EXTENDED_GLOB setopt LOCAL_OPTIONS EXTENDED_GLOB
# Load Prezto functions. # Load Prezto functions.
for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do for pfunction in $PREZTO/modules/${^pmodules}/functions/$~pfunction_glob; do
autoload -Uz "$pfunction" autoload -Uz "$pfunction"
done done
} }
@ -49,19 +49,19 @@ function pmodload {
for pmodule in "$pmodules[@]"; do for pmodule in "$pmodules[@]"; do
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
continue continue
elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then elif [[ ! -d "$PREZTO/modules/$pmodule" ]]; then
print "$0: no such module: $pmodule" >&2 print "$0: no such module: $pmodule" >&2
continue continue
else else
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then if [[ -s "$PREZTO/modules/$pmodule/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" source "$PREZTO/modules/$pmodule/init.zsh"
fi fi
if (( $? == 0 )); then if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes' zstyle ":prezto:module:$pmodule" loaded 'yes'
else else
# Remove the $fpath entry. # Remove the $fpath entry.
fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=() fpath[(r)$PREZTO/modules/${pmodule}/functions]=()
function { function {
local pfunction local pfunction
@ -71,7 +71,7 @@ function pmodload {
setopt LOCAL_OPTIONS EXTENDED_GLOB setopt LOCAL_OPTIONS EXTENDED_GLOB
# Unload Prezto functions. # Unload Prezto functions.
for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do for pfunction in $PREZTO/modules/$pmodule/functions/$~pfunction_glob; do
unfunction "$pfunction" unfunction "$pfunction"
done done
} }
@ -87,8 +87,8 @@ function pmodload {
# #
# Source the Prezto configuration file. # Source the Prezto configuration file.
if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then if [[ -s "$ZDOTDIR/.zpreztorc" ]]; then
source "${ZDOTDIR:-$HOME}/.zpreztorc" source "$ZDOTDIR/.zpreztorc"
fi fi
# Disable color and theme in dumb terminals. # Disable color and theme in dumb terminals.

View File

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

View File

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

View File

@ -5,14 +5,10 @@
# Joseph Jon Booker <joe@neoturbine.net> # 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. # Return if requirements are not found.
else if [[ ! -s '/etc/zsh_command_not_found' ]]; then
return 1 return 1
fi fi
source '/etc/zsh_command_not_found'

View File

@ -36,7 +36,7 @@ unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
# Use caching to make completion for cammands such as dpkg and apt usable. # Use caching to make completion for cammands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache" zstyle ':completion::complete:*' cache-path "$ZDOTDIR/.zcompcache"
# Case-insensitive (all), partial-word, and then substring completion. # Case-insensitive (all), partial-word, and then substring completion.
if zstyle -t ':prezto:module:completion:*' case-sensitive; then if zstyle -t ':prezto:module:completion:*' case-sensitive; then

View File

@ -107,39 +107,30 @@ function editor-info {
} }
zle -N editor-info zle -N editor-info
# Updates editor information when the keymap changes. # Ensures that $terminfo values are valid and updates editor information when
function zle-keymap-select { # the keymap changes.
function zle-keymap-select zle-line-init zle-line-finish {
# 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
fi
# Update editor information.
zle editor-info zle editor-info
} }
zle -N zle-keymap-select 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] )); then
# Enable terminal application mode.
echoti smkx
fi
# Update editor information.
zle editor-info
}
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 zle -N zle-line-finish
zle -N zle-line-init
# Toggles emacs overwrite mode and updates editor information. # Toggles emacs overwrite mode and updates editor information.
function overwrite-mode { function overwrite-mode {

View File

@ -12,7 +12,7 @@ fi
# Set the default paths to gpg-agent files. # Set the default paths to gpg-agent files.
_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf" _gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env" _gpg_agent_env="$TMPDIR/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 ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then

View File

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

View File

@ -10,7 +10,7 @@
# Variables # Variables
# #
HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file. HISTFILE="$ZDOTDIR/.zhistory" # The path to the history file.
HISTSIZE=10000 # The maximum number of events to save in the internal history. HISTSIZE=10000 # The maximum number of events to save in the internal history.
SAVEHIST=10000 # The maximum number of events to save in the history file. SAVEHIST=10000 # The maximum number of events to save in the history file.

View File

@ -1,28 +0,0 @@
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

View File

@ -1,15 +0,0 @@
#
# 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

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

View File

@ -9,13 +9,10 @@
pacman --query --explicit --info \ pacman --query --explicit --info \
| awk ' | awk '
BEGIN { BEGIN {
FS=" : " FS=":"
} }
/^Name/ { /^Name/ {
printf "\033[0;01m" $2 "\033[0m" print $2
}
/^Version/ {
print " \033[1;32m" $2 "\033[0m"
} }
/^Description/ { /^Description/ {
print $2 print $2

View File

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

View File

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

View File

@ -6,15 +6,15 @@ Enables local Python and local Python package installation.
Local Python Installation Local Python Installation
------------------------- -------------------------
[pyenv][4] builds and installs multiple Python versions locally in the home [pythonz][4] builds and installs multiple Python versions locally in the home
directory. directory.
This module prepends the pyenv directory to the path variable to enable the This module prepends the pythonz directory to the path variable to enable the
execution of `pyenv`. execution of `pythonz`.
### Usage ### Usage
Install Python versions with `pyenv install` into *~/.pyenv/versions*. Install Python versions with `pythonz install` into *~/.pythonz/pythons*.
Local Package Installation Local Package Installation
-------------------------- --------------------------
@ -66,6 +66,16 @@ Aliases
- `py` is short for `python`. - `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 Functions
--------- ---------
@ -95,6 +105,6 @@ Authors
[1]: http://www.python.org/dev/peps/pep-0370/ [1]: http://www.python.org/dev/peps/pep-0370/
[2]: http://www.doughellmann.com/projects/virtualenvwrapper/ [2]: http://www.doughellmann.com/projects/virtualenvwrapper/
[3]: http://pypi.python.org/pypi/virtualenv [3]: http://pypi.python.org/pypi/virtualenv
[4]: https://github.com/yyuu/pyenv [4]: http://saghul.github.com/pythonz/
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,35 +6,29 @@
# Sebastian Wiesner <lunaryorn@googlemail.com> # Sebastian Wiesner <lunaryorn@googlemail.com>
# #
# Load manually installed pyenv into the shell session. # Load pythonz into the shell session.
if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then if [[ -s $HOME/.pythonz/bin/pythonz ]]; then
path=("$HOME/.pyenv/bin" $path) path=($HOME/.pythonz/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.
else
if [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path)
else
# This is subject to change.
path=($HOME/.local/bin $path)
fi
fi fi
# Return if requirements are not found. # Return if requirements are not found.
if (( ! $+commands[python] && ! $+commands[pyenv] )); then if (( ! $+commands[python] && ! $+commands[pythonz] )); then
return 1 return 1
fi 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. # Load virtualenvwrapper into the shell session.
if (( $+commands[virtualenvwrapper_lazy.sh] )); then if (( $+commands[virtualenvwrapper_lazy.sh] )); then
# Set the directory where virtual environments are stored. # Set the directory where virtual environments are stored.
export WORKON_HOME="$HOME/.virtualenvs" export WORKON_HOME=$HOME/.virtualenvs
# Disable the virtualenv prompt. # Disable the virtualenv prompt.
VIRTUAL_ENV_DISABLE_PROMPT=1 VIRTUAL_ENV_DISABLE_PROMPT=1
@ -48,3 +42,14 @@ fi
alias py='python' 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,30 +7,39 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# Load dependencies.
pmodload 'ruby'
# Return if requirements are not found. # Return if requirements are not found.
if (( ! $+commands[bundle] )); then if (( ! $+commands[rails] )); then
return 1 return 1
fi fi
# #
# Aliases # Aliases (Compatible with Rails 2)
# #
alias ror='bundle exec rails' alias ror='rails'
alias rorc='bundle exec rails console' alias rorc='_rails-command console'
alias rordc='bundle exec rails dbconsole' alias rordc='_rails-command dbconsole'
alias rordm='bundle exec rake db:migrate' alias rordm='rake db:migrate'
alias rordM='bundle exec rake db:migrate db:test:clone' alias rordM='rake db:migrate db:test:clone'
alias rordr='bundle exec rake db:rollback' alias rordr='rake db:rollback'
alias rorg='bundle exec rails generate' alias rorg='_rails-command generate'
alias rorl='tail -f "$(ruby-app-root)/log/development.log"' alias rorl='tail -f log/development.log'
alias rorlc='bundle exec rake log:clear' alias rorlc='rake log:clear'
alias rorp='bundle exec rails plugin' alias rorp='_rails-command plugin'
alias rorr='bundle exec rails runner' alias rorr='_rails-command runner'
alias rors='bundle exec rails server' alias rors='_rails-command server'
alias rorsd='bundle exec rails server --debugger' alias rorsd='_rails-command server --debugger'
alias rorx='bundle exec rails destroy' alias rorx='_rails-command destroy'
#
# Functions
#
function _rails-command {
if [[ -e "script/server" ]]; then
ruby script/"$@"
else
ruby script/rails "$@"
fi
}

View File

@ -59,7 +59,6 @@ Aliases
Functions 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` exposes information about the Ruby environment via the
`$ruby_info` associative array. `$ruby_info` associative array.

View File

@ -1,19 +0,0 @@
#
# 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

@ -23,9 +23,14 @@ 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)"
# Prepend local gems bin directories to PATH. # Install local gems according to operating system conventions.
else else
path=($HOME/.gem/ruby/*/bin(N) $path) 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)
fi
fi fi
# Return if requirements are not found. # Return if requirements are not found.
@ -43,17 +48,15 @@ alias rb='ruby'
# Bundler # Bundler
if (( $+commands[bundle] )); then if (( $+commands[bundle] )); then
alias rbb='bundle' alias rbb='bundle'
alias rbbe='bundle exec' alias rbbe='rbb exec'
alias rbbi='bundle install --path vendor/bundle' alias rbbi='rbb install --path vendor/bundle'
alias rbbl='bundle list' alias rbbl='rbb list'
alias rbbo='bundle open' alias rbbo='rbb open'
alias rbbp='bundle package' alias rbbp='rbb package'
alias rbbu='bundle update' alias rbbu='rbb update'
alias rbbI='rbbi \ alias rbbI='rbbi \
&& bundle package \ && rbb package \
&& print .bundle >>! .gitignore \ && print .bundle >>! .gitignore \
&& print vendor/assets >>! .gitignore \
&& print vendor/bundle >>! .gitignore \ && print vendor/bundle >>! .gitignore \
&& print vendor/cache >>! .gitignore' && print vendor/cache >>! .gitignore'
fi fi

View File

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

View File

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

View File

@ -13,33 +13,23 @@ directory, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal' auto-title 'yes' 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 Functions
--------- ---------
- `set-tab-title` sets the terminal tab title. - `set-screen-window-title` sets the screen title.
- `set-window-title` sets the terminal or terminal multiplexer window 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.
Authors Authors
------- -------
*The authors of this module should be contacted via the [issue tracker][2].* *The authors of this module should be contacted via the [issue tracker][1].*
- [James Cox](https://github.com/imajes)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [1]: https://github.com/sorin-ionescu/prezto/issues
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

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

@ -104,17 +104,17 @@ alias sl='ls' # I often screw this up.
# Mac OS X Everywhere # Mac OS X Everywhere
if [[ "$OSTYPE" == darwin* ]]; then if [[ "$OSTYPE" == darwin* ]]; then
alias o='open' alias o='open'
elif [[ "$OSTYPE" == cygwin* ]]; then alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time'
alias o='cygstart'
alias pbcopy='tee > /dev/clipboard'
alias pbpaste='cat /dev/clipboard'
else else
alias o='xdg-open' alias o='xdg-open'
alias get='wget --continue --progress=bar --timestamping'
if (( $+commands[xclip] )); then if (( $+commands[xclip] )); then
alias pbcopy='xclip -selection clipboard -in' alias pbcopy='xclip -selection clipboard -in'
alias pbpaste='xclip -selection clipboard -out' alias pbpaste='xclip -selection clipboard -out'
elif (( $+commands[xsel] )); then fi
if (( $+commands[xsel] )); then
alias pbcopy='xsel --clipboard --input' alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output' alias pbpaste='xsel --clipboard --output'
fi fi
@ -123,13 +123,6 @@ fi
alias pbc='pbcopy' alias pbc='pbcopy'
alias pbp='pbpaste' 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 # Resource Usage
alias df='df -kh' alias df='df -kh'
alias du='du -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, This file is sourced by interactive shells. It should define aliases,
functions, shell options, and key bindings. functions, shell options, and key bindings.
### zpreztorc ## zpreztorc
This file configures Prezto. This file configures Prezto.

View File

@ -8,7 +8,7 @@
# Execute code that does not affect the current session in the background. # Execute code that does not affect the current session in the background.
{ {
# Compile the completion dump to increase startup speed. # Compile the completion dump to increase startup speed.
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump" zcompdump="$ZDOTDIR/.zcompdump"
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
zcompile "$zcompdump" zcompile "$zcompdump"
fi fi

View File

@ -10,7 +10,7 @@
# #
# Set case-sensitivity for completion, history lookup, etc. # Set case-sensitivity for completion, history lookup, etc.
# zstyle ':prezto:*:*' case-sensitive 'yes' zstyle ':prezto:*:*' case-sensitive 'no'
# Color output (auto set to 'no' on dumb terminals). # Color output (auto set to 'no' on dumb terminals).
zstyle ':prezto:*:*' color 'yes' zstyle ':prezto:*:*' color 'yes'
@ -122,19 +122,14 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# 'builtin' 'bg=blue' \ # 'builtin' 'bg=blue' \
# 'command' 'bg=blue' \ # 'command' 'bg=blue' \
# 'function' 'bg=blue' # 'function' 'bg=blue'
#
# #
# Terminal # Terminal
# #
# Auto set the tab and window titles. # 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 # Tmux

View File

@ -5,73 +5,3 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # 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,8 +5,79 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# Ensure that a non-login, non-interactive shell has a defined environment. #
if [[ "$SHLVL" -eq 1 && ! -o LOGIN && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then # Browser
source "${ZDOTDIR:-$HOME}/.zprofile" #
if [[ "$OSTYPE" == darwin* ]]; then
export BROWSER='open'
fi 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"
fi
#
# Zsh
#
ZDOTDIR="${ZDOTDIR:-$HOME}"
PREZTO="$ZDOTDIR/.zprezto"

View File

@ -6,8 +6,8 @@
# #
# Source Prezto. # Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then if [[ -s "$PREZTO/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" source "$PREZTO/init.zsh"
fi fi
# Customize to your needs... # Customize to your needs...