1
0
Fork 0
* 'master' of https://github.com/sorin-ionescu/prezto: (63 commits)
  Support $PYTHONUSERBASE per PEP 370
  Create a default tmux session only when none defined in tmux.conf
  Fix git-info added/deleted count formatting typo
  [Fix #543] Do not set tmux destroy-unattached
  Simplify multiplexer auto-start tests
  Inform the user to load ruby as late as possible when using RVM
  [Fix #551] Rename tmux auto-start session
  Fix a test operator bug introduced in e5a0e33
  [Fix #541] Do not auto-load screen/tmux inside of Emacs/Vim
  Disable glob for bower
  Prefix rarely used osx functions
  Add functions to display and delete osx download history
  Update osx alias descriptions
  Make osx functions autoloadable
  Cast AppleScript paths to text
  Add capability to browse man pages in Dash.app
  Remove Bwana.app support
  Add double slash after Bwana.app's man protocol
  [Fix #361] Load chruby when found
  [Fix #535] Set Pacman frontend to 'pacman' when none set
  ...
pull/666/head
Chauncey Garrett 11 years ago
commit 0756ac5464

@ -9,7 +9,7 @@ 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.10. version is 4.3.11.
1. Launch Zsh: 1. Launch Zsh:
@ -36,9 +36,16 @@ version is 4.3.10.
### 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 *~/.zshenv* then open a new Zsh terminal modify the `PATH` variable in *~/.zprofile* 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
----- -----
@ -78,7 +85,8 @@ License
(The MIT 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 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

@ -10,7 +10,7 @@
# #
# Check for the minimum supported version. # Check for the minimum supported version.
min_zsh_version='4.3.10' min_zsh_version='4.3.11'
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,7 +25,7 @@ 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[@]")

@ -31,6 +31,16 @@ Dpkg
Defines dpkg aliases and functions. Defines dpkg aliases and functions.
Editor
------
Sets key bindings.
Emacs
-----
Enables Emacs dependency management.
Environment Environment
----------- -----------
@ -41,13 +51,19 @@ 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.
@ -61,16 +77,16 @@ Helper
Provides helper functions for developing modules. Provides helper functions for developing modules.
History Substring Search
------------------------
Integrates zsh-history-substring-search into Prezto.
History History
------- -------
Sets history options and defines history aliases. Sets history options and defines history aliases.
History Substring Search
------------------------
Integrates zsh-history-substring-search into Prezto.
Homebrew Homebrew
-------- --------
@ -91,6 +107,11 @@ 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
--- ---
@ -142,10 +163,10 @@ Spectrum
Provides for easier use of 256 colors and effects. 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 Syntax Highlighting
------------------- -------------------

@ -1,7 +1,8 @@
Command-Not-Found 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 Authors
------- -------

@ -5,10 +5,14 @@
# 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.
if [[ ! -s '/etc/zsh_command_not_found' ]]; then else
return 1 return 1
fi fi
source '/etc/zsh_command_not_found'

@ -1 +1 @@
Subproject commit bfb970cad37136e76873891d9fb1ce1c937b4576 Subproject commit 1d6a2aa024ea159229b3cfa6942cadaab1961ace

@ -110,30 +110,39 @@ function editor-info {
} }
zle -N editor-info zle -N editor-info
# Ensures that $terminfo values are valid and updates editor information when # Updates editor information when the keymap changes.
# the keymap changes. function zle-keymap-select {
function zle-keymap-select zle-line-init zle-line-finish { 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 # The terminal must be in application mode when ZLE is active for $terminfo
# values to be valid. # values to be valid.
if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then if (( $+terminfo[smkx] )); then
case "$0" in
(zle-line-init)
# Enable terminal application mode. # Enable terminal application mode.
echoti smkx echoti smkx
;; fi
(zle-line-finish)
# 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. # Disable terminal application mode.
echoti rmkx echoti rmkx
;;
esac
fi fi
# Update editor information. # Update editor information.
zle editor-info zle editor-info
} }
zle -N zle-keymap-select
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 {

@ -348,13 +348,13 @@ function git-info {
# Format added. # Format added.
if (( added > 0 )); then if (( added > 0 )); then
zstyle -s ':prezto:module:git:info:added' format 'added_format' zstyle -s ':prezto:module:git:info:added' format 'added_format'
zformat -f added_formatted "$added_format" "a:$added_format" zformat -f added_formatted "$added_format" "a:$added"
fi fi
# Format deleted. # Format deleted.
if (( deleted > 0 )); then if (( deleted > 0 )); then
zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format' zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
zformat -f deleted_formatted "$deleted_format" "d:$deleted_format" zformat -f deleted_formatted "$deleted_format" "d:$deleted"
fi fi
# Format modified. # Format modified.

@ -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/gpg-agent.env" _gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
# Start gpg-agent if not started. # Start gpg-agent if not started.
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then

@ -1 +1 @@
Subproject commit d9b28ed7f9c62d843c6f3e599ab4f3aa0bdd37b5 Subproject commit 1e7680405239a835aa403a7457cad23750f98e72

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

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

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

@ -9,17 +9,20 @@ Aliases
- `cdf` changes the current working director to the current _Finder_ - `cdf` changes the current working director to the current _Finder_
directory. directory.
- `pushdf` pushes the current working directory onto the directory queue and - `pushdf` pushes the current working directory onto the directory queue and
- `ql` quick looks at files. changes the current working director to the current _Finder_ directory.
- `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft.
Functions Functions
--------- ---------
- `manb` opens _man_ pages in [_Bwana.app_][2]. - `mand` opens _man_ pages in [_Dash.app_][2].
- `manp` opens _man_ pages in _Preview.app_. - `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory. - `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection. - `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]). - `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
- `ql` previews files in Quick Look.
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
- `osx-ls-download-history` displays the Mac OS X download history.
- `osx-rm-download-history` deletes the Mac OS X download history.
Authors Authors
------- -------
@ -29,7 +32,6 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.apple.com/macosx/ [1]: http://www.apple.com/macosx/
[2]: http://bruji.com/bwana/ [2]: http://kapeli.com/dash
[3]: http://www.iterm2.com/ [3]: http://www.iterm2.com/
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://github.com/sorin-ionescu/prezto/issues

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

@ -1,24 +0,0 @@
#
# Opens man pages in Bwana.app.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
function manb {
local page
if (( $# > 0 )); then
for page in "$@"; do
open "man:$page" 2>/dev/null
if (( $? != 0 )); then
print "$0: Bwana is not installed" >&2
break
fi
done
else
print 'What manual page do you want?' >&2
fi
}
manb "$@"

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

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

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

@ -0,0 +1,13 @@
#
# Deletes the Mac OS X download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local db
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
fi
done

@ -7,7 +7,6 @@
osascript 2>/dev/null <<EOF osascript 2>/dev/null <<EOF
tell application "Finder" tell application "Finder"
return POSIX path of (target of window 1 as alias) return POSIX path of (target of first window as text)
end tell end tell
EOF EOF

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

@ -0,0 +1,10 @@
#
# Previews files in Quick Look.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if (( $# > 0 )); then
qlmanage -p "$@" &> /dev/null
fi

@ -14,26 +14,8 @@ fi
# Aliases # Aliases
# #
# Change directory to the current Finder directory. # Changes directory to the current Finder directory.
alias cdf='cd "$(pfd)"' alias cdf='cd "$(pfd)"'
# Push directory to the current Finder directory. # Pushes directory to the current Finder directory.
alias pushdf='pushd "$(pfd)"' alias pushdf='pushd "$(pfd)"'
#
# Functions
#
# Open files in Quick Look.
function ql {
(( $# > 0 )) && qlmanage -p "$@" &> /dev/null
}
# Delete .DS_Store and __MACOSX directories.
function rm-osx-cruft {
find "${@:-$PWD}" \( \
-type f -name '.DS_Store' -o \
-type d -name '__MACOSX' \
\) -print0 | xargs -0 rm -rf
}

@ -27,6 +27,9 @@ 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
# #
@ -34,49 +37,49 @@ fi
# #
# Pacman. # Pacman.
alias pac='pacman' alias pac="${_pacman_frontend}"
# Installs packages from repositories. # Installs packages from repositories.
alias paci='sudo pacman --sync' alias paci="${_pacman_sudo}${_pacman_frontend} --sync"
# Installs packages from files. # Installs packages from files.
alias pacI='sudo pacman --upgrade' alias pacI="${_pacman_sudo}${_pacman_frontend} --upgrade"
# Removes packages and unneeded dependencies. # Removes packages and unneeded dependencies.
alias pacx='sudo pacman --remove' alias pacx="${_pacman_sudo}${_pacman_frontend} --remove"
# Removes packages, their configuration, and unneeded dependencies. # 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. # 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. # 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. # Searches for packages in the repositories.
alias pacs='pacman --sync --recursive' alias pacs="${_pacman_frontend} --sync --search"
# Searches for packages in the local database. # Searches for packages in the local database.
alias pacS='pacman --query --recursive' alias pacS="${_pacman_frontend} --query --search"
# Lists orphan packages. # 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. # 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 # Synchronizes the local package and Arch Build System databases against the
# repositories. # repositories.
if (( $+commands[abs] )); then if (( $+commands[abs] )); then
alias pacu='sudo pacman --sync --refresh && sudo abs' alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && ${_pacman_sudo}abs"
else else
alias pacu='sudo pacman --sync --refresh' alias pacu="${_pacman_sudo}${_pacman_frontend} --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='sudo pacman --sync --refresh --sysupgrade' alias pacU="${_pacman_sudo}${_pacman_frontend} --sync --refresh --sysupgrade"
unset _pacman_frontend unset _pacman_{frontend,sudo}

@ -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='pacman --nocolor' alias pacman='yaourt --nocolor'
fi fi
# Manages .pac* files. # Manages .pac* files.
alias pacc='pacman -C' alias pacc='yaourt -C'

@ -16,9 +16,12 @@ elif (( $+commands[pyenv] )); then
eval "$(pyenv init -)" eval "$(pyenv init -)"
# Prepend PEP 370 per user site packages directory, which defaults to # Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. # ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. The
# path can be overridden using PYTHONUSERBASE.
else else
if [[ "$OSTYPE" == darwin* ]]; then if [[ -n "$PYTHONUSERBASE" ]]; then
path=($PYTHONUSERBASE/bin $path)
elif [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path) path=($HOME/Library/Python/*/bin(N) $path)
else else
# This is subject to change. # This is subject to change.

@ -7,39 +7,30 @@
# 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[rails] )); then if (( ! $+commands[bundle] )); then
return 1 return 1
fi 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 { alias ror='bundle exec rails'
if [[ -e "script/server" ]]; then alias rorc='bundle exec rails console'
ruby script/"$@" alias rordc='bundle exec rails dbconsole'
else alias rordm='bundle exec rake db:migrate'
ruby script/rails "$@" alias rordM='bundle exec rake db:migrate db:test:clone'
fi 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'

@ -8,7 +8,7 @@ Local Gem Installation
---------------------- ----------------------
When a Ruby version manager is not detected, local gems are installed in When a Ruby version manager is not detected, local gems are installed in
*~/Library/Ruby/Gems/1.8* on Mac OS X. *~/.gems*; otherwise, they are installed according to the manager.
RVM RVM
--- ---
@ -20,15 +20,33 @@ home directory.
Since RVM is loaded into the shell and is known to override shell commands, it Since RVM is loaded into the shell and is known to override shell commands, it
may conflict with shell scripts. may conflict with shell scripts.
Load this module as late as possible when using RVM since RVM will complain if
it is not first in `$PATH`.
rbenv rbenv
----- -----
An alternative RVM is to use [rbenv][3], which allows for switching between multiple, An alternative RVM is to use [rbenv][3], which allows for switching between
isolated Ruby installations in the home directory. multiple, isolated Ruby installations in the home directory.
While it is not as feature rich as RVM, it is not loaded into the shell and is While it is not as feature rich as RVM, it is not loaded into the shell and is
not known to cause conflicts with shell scripts. not known to cause conflicts with shell scripts.
chruby
------
Yet another alternative is [chruby][6], which is simpler than both RVM and
rbenv.
### Settings
#### Auto-Switch
To enable auto switching the Ruby version on directory change based on the
.ruby-version file, add the following line to *zpreztorc*:
zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
Bundler Bundler
------- -------
@ -59,6 +77,7 @@ 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.
@ -86,4 +105,4 @@ Authors
[3]: https://github.com/sstephenson/rbenv [3]: https://github.com/sstephenson/rbenv
[4]: http://gembundler.com [4]: http://gembundler.com
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues
[6]: https://github.com/postmodern/chruby

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

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

@ -23,15 +23,17 @@ 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)"
# Install local gems according to operating system conventions. # Load package manager installed chruby into the shell session.
else elif (( $+commands[chruby-exec] )); then
if [[ "$OSTYPE" == darwin* ]]; then source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh"
export GEM_HOME="$HOME/Library/Ruby/Gems/1.8" if zstyle -t ':prezto:module:ruby:chruby' auto-switch; then
path=("$GEM_HOME/bin" $path) source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh"
fi
# Prepend local gems bin directories to PATH.
else else
path=($HOME/.gem/ruby/*/bin(N) $path) path=($HOME/.gem/ruby/*/bin(N) $path)
fi fi
fi
# Return if requirements are not found. # Return if requirements are not found.
if (( ! $+commands[ruby] && ! ( $+commands[rvm] || $+commands[rbenv] ) )); then if (( ! $+commands[ruby] && ! ( $+commands[rvm] || $+commands[rbenv] ) )); then
@ -48,15 +50,17 @@ alias rb='ruby'
# Bundler # Bundler
if (( $+commands[bundle] )); then if (( $+commands[bundle] )); then
alias rbb='bundle' alias rbb='bundle'
alias rbbe='rbb exec' alias rbbe='bundle exec'
alias rbbi='rbb install --path vendor/bundle' alias rbbi='bundle install --path vendor/bundle'
alias rbbl='rbb list' alias rbbl='bundle list'
alias rbbo='rbb open' alias rbbo='bundle open'
alias rbbp='rbb package' alias rbbp='bundle package'
alias rbbu='rbb update' alias rbbu='bundle update'
alias rbbI='rbbi \ alias rbbI='rbbi \
&& rbb package \ && bundle 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

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

@ -14,17 +14,20 @@ 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/ssh-agent.env}" _ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env}"
# Set the path to the persistent authentication socket. # 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. # 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.

@ -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" source "${0:h}/external/zsh-syntax-highlighting.zsh" || return 1
# Set highlighters. # Set highlighters.
zstyle -a ':prezto:module:syntax-highlighting' highlighters 'ZSH_HIGHLIGHT_HIGHLIGHTERS' zstyle -a ':prezto:module:syntax-highlighting' highlighters 'ZSH_HIGHLIGHT_HIGHLIGHTERS'

@ -13,23 +13,33 @@ 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-screen-window-title` sets the screen title. - `set-tab-title` sets the terminal tab title.
- `set-terminal-tab-title` sets the terminal tab title. - `set-window-title` sets the terminal or terminal multiplexer window 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][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) - [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

@ -2,122 +2,123 @@
# 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' ]]; then if [[ "$TERM" == (dumb|linux|*bsd*) ]]; then
return 1 return 1
fi fi
# Set the GNU Screen window number. # Sets the terminal or terminal multiplexer window title.
if [[ -n "$WINDOW" ]]; then function set-window-title {
export SCREEN_NO="%B${WINDOW}%b " local title_format{,ted}
else zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s"
export SCREEN_NO="" zformat -f title_formatted "$title_format" "s:$argv"
fi
# Sets the GNU Screen title.
function set-screen-window-title {
if [[ "$TERM" == screen* ]]; then if [[ "$TERM" == screen* ]]; then
printf "\ek%s\e\\" ${(V)argv} title_format="\ek%s\e\\"
else
title_format="\e]2;%s\a"
fi fi
}
# Sets the terminal window title. printf "$title_format" "${(V%)title_formatted}"
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-terminal-tab-title { function set-tab-title {
if [[ "$TERM" == ((x|a|ml|dt|E)term*|(u|)rxvt*) ]]; then local title_format{,ted}
printf "\e]1;%s\a" ${(V)argv} zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s"
fi 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. # Sets the tab and window titles with a given command.
function set-titles-with-command { function _terminal-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 [[ "${1[(w)1]}" == (fg|%*)(\;|) ]]; then if [[ "${2[(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="${${1[(wr)%*(\;|)]}:-%+}" local job_name="${${2[(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].
set-titles-with-command "${(e):-\$jobtexts_from_parent_shell$index}" _terminal-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=${${1[(wr)^(*=*|sudo|ssh|-*)]}:t} local cmd="${${2[(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
if [[ "$TERM" == screen* ]]; then set-window-title "$cmd"
set-screen-window-title "$truncated_cmd" set-tab-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 set-titles-with-path { function _terminal-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}"
if [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]]; then
printf '\e]7;%s\a' "file://$HOST${absolute_path// /%20}"
else
local abbreviated_path="${absolute_path/#$HOME/~}" local abbreviated_path="${absolute_path/#$HOME/~}"
local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}"
unset MATCH unset MATCH
if [[ "$TERM" == screen* ]]; then set-window-title "$abbreviated_path"
set-screen-window-title "$truncated_path" set-tab-title "$truncated_path"
else }
set-terminal-window-title "$abbreviated_path"
set-terminal-tab-title "$truncated_path" # Sets the Terminal.app proxy icon.
fi function _terminal-set-terminal-app-proxy-icon {
fi printf '\e]7;%s\a' "file://$HOST${${1:-$PWD}// /%20}"
} }
# Don't override precmd/preexec; append to hook array. # Do not override precmd/preexec; append to the hook array.
autoload -Uz add-zsh-hook autoload -Uz add-zsh-hook
# Sets the tab and window titles before the prompt is displayed. # Set up the Apple Terminal.
function set-titles-precmd { if [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] \
if zstyle -t ':prezto:module:terminal' auto-title; then && ( ! [[ -n "$STY" || -n "$TMUX" || -n "$DVTM" ]] )
set-titles-with-path then
# Sets the Terminal.app current working directory before the prompt is
# displayed.
add-zsh-hook precmd _terminal-set-terminal-app-proxy-icon
# 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 fi
} }
add-zsh-hook precmd set-titles-precmd 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. # Sets the tab and window titles before command execution.
function set-titles-preexec { add-zsh-hook preexec _terminal-set-titles-with-command
if zstyle -t ':prezto:module:terminal' auto-title; then
set-titles-with-command "$2"
fi fi
}
add-zsh-hook preexec set-titles-preexec

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

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

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

@ -35,6 +35,7 @@ alias mysql='nocorrect mysql'
alias rm='nocorrect rm' alias rm='nocorrect rm'
# Disable globbing. # Disable globbing.
alias bower='noglob bower'
alias fc='noglob fc' alias fc='noglob fc'
alias find='noglob find' alias find='noglob find'
alias ftp='noglob ftp' alias ftp='noglob ftp'

@ -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.

@ -10,7 +10,7 @@
# #
# Set case-sensitivity for completion, history lookup, etc. # 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). # Color output (auto set to 'no' on dumb terminals).
zstyle ':prezto:*:*' color 'yes' zstyle ':prezto:*:*' color 'yes'
@ -87,6 +87,13 @@ zstyle ':prezto:module:editor' key-bindings 'emacs'
# Auto set to 'off' on dumb terminals. # Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'sorin' zstyle ':prezto:module:prompt' theme 'sorin'
#
# Ruby
#
# Auto switch the Ruby version on directory change.
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
# #
# Screen # Screen
# #
@ -122,14 +129,19 @@ 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
@ -140,4 +152,3 @@ zstyle ':prezto:module:terminal' auto-title 'yes'
# Auto start a session when Zsh is launched in a SSH connection. # Auto start a session when Zsh is launched in a SSH connection.
# zstyle ':prezto:module:tmux:auto-start' remote 'yes' # zstyle ':prezto:module:tmux:auto-start' remote 'yes'

@ -5,3 +5,73 @@
# 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

@ -5,72 +5,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# # Ensure that a non-login, non-interactive shell has a defined environment.
# Browser if [[ "$SHLVL" -eq 1 && ! -o LOGIN && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then
# source "${ZDOTDIR:-$HOME}/.zprofile"
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"
fi fi

Loading…
Cancel
Save