mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-11-04 12:09:08 +00:00 
			
		
		
		
	Compare commits
	
		
			68 Commits
		
	
	
		
			module/upd
			...
			pull/607-t
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9dd65d3982 | ||
| 
						 | 
					bf9dbfd5b9 | ||
| 
						 | 
					ff0dfa424d | ||
| 
						 | 
					fedad8e9cf | ||
| 
						 | 
					478653fab2 | ||
| 
						 | 
					10cf701864 | ||
| 
						 | 
					7722dd4400 | ||
| 
						 | 
					240eecaddf | ||
| 
						 | 
					415e4bff3d | ||
| 
						 | 
					e5a0e33f1c | ||
| 
						 | 
					8189577772 | ||
| 
						 | 
					c74cf4b5e0 | ||
| 
						 | 
					72782528aa | ||
| 
						 | 
					02717cb4c1 | ||
| 
						 | 
					bccfca8c10 | ||
| 
						 | 
					b8bb51d7b5 | ||
| 
						 | 
					00e12b7a98 | ||
| 
						 | 
					232313e2a0 | ||
| 
						 | 
					e48dac79f3 | ||
| 
						 | 
					dbeb6d4e1a | ||
| 
						 | 
					af003d83c5 | ||
| 
						 | 
					839f4a7b83 | ||
| 
						 | 
					c091f71283 | ||
| 
						 | 
					e1974ad58d | ||
| 
						 | 
					391bc405d0 | ||
| 
						 | 
					80ded5e33d | ||
| 
						 | 
					fa6723a5ee | ||
| 
						 | 
					57b283facd | ||
| 
						 | 
					aefdce3fc3 | ||
| 
						 | 
					e4e4f89c9f | ||
| 
						 | 
					817dd3aa3a | ||
| 
						 | 
					347928193f | ||
| 
						 | 
					da1a837cd4 | ||
| 
						 | 
					2ebdbdcff5 | ||
| 
						 | 
					eea1eea7dc | ||
| 
						 | 
					4e9553e896 | ||
| 
						 | 
					a57d545639 | ||
| 
						 | 
					cdc4f36f25 | ||
| 
						 | 
					50edc45132 | ||
| 
						 | 
					b1abe7a845 | ||
| 
						 | 
					d368d0536b | ||
| 
						 | 
					254b7c36d9 | ||
| 
						 | 
					d19c349f3f | ||
| 
						 | 
					9f60ddb96b | ||
| 
						 | 
					5b4dcea595 | ||
| 
						 | 
					b98c7469e5 | ||
| 
						 | 
					f6bd76a90b | ||
| 
						 | 
					d877617734 | ||
| 
						 | 
					76fc07ba9f | ||
| 
						 | 
					52ea7152ad | ||
| 
						 | 
					b159ddb02b | ||
| 
						 | 
					5cfe250e52 | ||
| 
						 | 
					cc4a58bee3 | ||
| 
						 | 
					3a5fff9c6d | ||
| 
						 | 
					8993a8dfad | ||
| 
						 | 
					28e956691c | ||
| 
						 | 
					1c6a016644 | ||
| 
						 | 
					e18f18af92 | ||
| 
						 | 
					a4bacb8bb9 | ||
| 
						 | 
					aacff80984 | ||
| 
						 | 
					eb1a20552a | ||
| 
						 | 
					a914a87aa9 | ||
| 
						 | 
					e1e2c85392 | ||
| 
						 | 
					8ee6634c93 | ||
| 
						 | 
					959887013d | ||
| 
						 | 
					b769505857 | ||
| 
						 | 
					622e7b117b | ||
| 
						 | 
					459238b2bb | 
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							@@ -9,7 +9,7 @@ Installation
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
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:
 | 
			
		||||
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								init.zsh
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								init.zsh
									
									
									
									
									
								
							@@ -10,7 +10,7 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
  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[@]")
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
-------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
-------
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/completion/external updated: 662229f6f0...1d6a2aa024
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ 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
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/history-substring-search/external updated: d9b28ed7f9...1e76804052
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								modules/ocaml/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/ocaml/README.md
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										15
									
								
								modules/ocaml/init.zsh
									
									
									
									
									
										Normal 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)"
 | 
			
		||||
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -1,24 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Opens man pages in Bwana.app.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
function manb {
 | 
			
		||||
  local page
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    for page in "$@"; do
 | 
			
		||||
      open "man:$page" 2>/dev/null
 | 
			
		||||
      if (( $? != 0 )); then
 | 
			
		||||
        print "$0: Bwana is not installed" >&2
 | 
			
		||||
        break
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  else
 | 
			
		||||
    print 'What manual page do you want?' >&2
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
manb "$@"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								modules/osx/functions/mand
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								modules/osx/functions/mand
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
#
 | 
			
		||||
# Opens man pages in Dash.app.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
function mand {
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    open "dash://manpages:$1" 2>/dev/null
 | 
			
		||||
    if (( $? != 0 )); then
 | 
			
		||||
      print "$0: Dash is not installed" >&2
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    print 'What manual page do you want?' >&2
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mand "$@"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/osx/functions/osx-ls-download-history
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/osx/functions/osx-ls-download-history
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
#
 | 
			
		||||
# Displays the Mac OS X download history.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
local db
 | 
			
		||||
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
 | 
			
		||||
  if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
 | 
			
		||||
    sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent'
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										11
									
								
								modules/osx/functions/osx-rm-dir-metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/osx/functions/osx-rm-dir-metadata
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
#
 | 
			
		||||
# Deletes .DS_Store and __MACOSX directories.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
find "${@:-$PWD}" \( \
 | 
			
		||||
  -type f -name '.DS_Store' -o \
 | 
			
		||||
  -type d -name '__MACOSX' \
 | 
			
		||||
\) -print0 | xargs -0 rm -rf
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/osx/functions/osx-rm-download-history
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/osx/functions/osx-rm-download-history
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
#
 | 
			
		||||
# Deletes the Mac OS X download history.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
local db
 | 
			
		||||
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
 | 
			
		||||
  if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
 | 
			
		||||
    sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
@@ -7,7 +7,6 @@
 | 
			
		||||
 | 
			
		||||
osascript 2>/dev/null <<EOF
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										10
									
								
								modules/osx/functions/ql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
#
 | 
			
		||||
# Previews files in Quick Look.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if (( $# > 0 )); then
 | 
			
		||||
  qlmanage -p "$@" &> /dev/null
 | 
			
		||||
fi
 | 
			
		||||
@@ -14,26 +14,8 @@ fi
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/ruby/functions/ruby-app-root
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/ruby/functions/ruby-app-root
									
									
									
									
									
										Normal 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
 | 
			
		||||
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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} ssh-agent"; then
 | 
			
		||||
    eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Create a persistent SSH authentication socket.
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/syntax-highlighting/external updated: dbd27cb30a...f289a9f8e7
									
								
							@@ -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'
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,12 +20,19 @@ 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).
 | 
			
		||||
You can change the default session name with:
 | 
			
		||||
 | 
			
		||||
    zstyle ':prezto:module:tmux' session 'YOUR DEFAULT SESSION NAME'
 | 
			
		||||
 | 
			
		||||
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 +48,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 +61,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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
    zstyle -s ':prezto:module:tmux' session 'session' || session='prezto'
 | 
			
		||||
    tmux \
 | 
			
		||||
      new-session -d -s "$session" \; \
 | 
			
		||||
      set-option -t "$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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ Aliases
 | 
			
		||||
 | 
			
		||||
### Disabled File Globbing
 | 
			
		||||
 | 
			
		||||
  - `bower`
 | 
			
		||||
  - `fc`
 | 
			
		||||
  - `find`
 | 
			
		||||
  - `ftp`
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
@@ -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'
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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,4 +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'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user