mirror of
https://github.com/dcarrillo/prezto.git
synced 2025-07-01 15:09:25 +00:00
Compare commits
130 Commits
issue/306-
...
revision/u
Author | SHA1 | Date | |
---|---|---|---|
8d9ec24335 | |||
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 | |||
773ca7ee50 | |||
92e688173b | |||
59e6e7fe8e | |||
92c4dc0fb2 | |||
1ef2555100 | |||
07686fad38 | |||
61f3adcdd1 | |||
d817e80741 | |||
9d504d2d93 | |||
875ce2e56c | |||
16aa48baeb | |||
f007820a14 | |||
9b945e26b9 | |||
20655c8b66 | |||
0c9c099ac3 | |||
baf7f6184b | |||
c9c3b40b5c | |||
1622abb830 | |||
fcab2a1713 | |||
973278140e | |||
39b88fe334 | |||
a7623aad6b | |||
db384b2ac6 | |||
7845c36951 | |||
75c0d49f56 | |||
d4e78d427a | |||
e836957e4f | |||
5306bab7ce | |||
f3ae9dd82c | |||
88408e8bc2 | |||
fb5b1be345 | |||
bde5149c7b | |||
7e33c7189e | |||
413b717484 | |||
23f62774f9 | |||
2e64f7ed64 | |||
6cd97d2d0f | |||
810a4490d7 | |||
b42479a7c7 | |||
80b203bcd3 | |||
cf07c4ec91 | |||
05a6653284 | |||
4e3475d8a7 | |||
f86854ebd4 | |||
16a8e45cfa | |||
f431af790b | |||
3c5363ef9b | |||
0d27e20e43 | |||
9e23df814f | |||
18d239141d | |||
579dfee6f7 | |||
a1a2a37045 | |||
2baa4dce0c | |||
e2c5f2fb2c | |||
6e65349c45 | |||
f4d9b32de9 | |||
185235003e | |||
d198c08db5 | |||
6fd00449a6 | |||
095863e6ae | |||
e5de305157 | |||
39795d3e5e | |||
b531191e2c | |||
455cc0c6e5 | |||
14da495193 | |||
bb6b590919 | |||
1d0b0e2e9b | |||
5a245850f0 | |||
5d4282c43d | |||
c737369083 | |||
bf957d7cc4 | |||
e5cfdba26d | |||
6cd1f66cd4 | |||
a120602dfa | |||
37f65b3f86 | |||
decf3cd875 | |||
29647947fe | |||
795495b864 | |||
13b501adaf | |||
1788d73cd8 | |||
52db7bb0f6 | |||
bb597ae22d | |||
1ed7fd360c |
40
README.md
40
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:
|
||||
|
||||
@ -33,31 +33,19 @@ version is 4.3.10.
|
||||
|
||||
5. Open a new Zsh terminal window or tab.
|
||||
|
||||
### Mac OS X
|
||||
|
||||
If you have administrator privileges, you must fix an Apple-introduced problem
|
||||
in Mac OS X 10.5 Leopard by executing the following command, or BASH and Zsh
|
||||
will have the wrong `PATH` when executed non-interactively.
|
||||
|
||||
sudo chmod ugo-x /usr/libexec/path_helper
|
||||
|
||||
`path_helper` is intended to make it easier for installers to add new paths to
|
||||
the environment without having to edit shell configuration files by adding
|
||||
a file with a path to the */etc/paths.d* directory.
|
||||
|
||||
Unfortunately, `path_helper` always reads paths from */etc/paths* set by Apple
|
||||
then paths from */etc/paths.d* set by third party installers, and lastly paths
|
||||
from the `PATH` environment variable set by the parent process, which
|
||||
ultimately is set by the user with `export PATH=...` Thus, it reorders path
|
||||
priorities, and user */bin* directories meant to override system */bin*
|
||||
directories end up at the tail of the array.
|
||||
|
||||
### 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
|
||||
-----
|
||||
|
||||
@ -82,9 +70,10 @@ accompanying README files to learn of what is available.
|
||||
Customization
|
||||
-------------
|
||||
|
||||
The project is managed via [Git][3]. It is highly recommend that you commit
|
||||
your changes and push them to [GitHub][4] to not lose them. If you do not know
|
||||
how to use Git, follow this [tutorial][5] and bookmark this [reference][6].
|
||||
The project is managed via [Git][3]. It is highly recommended that you fork this
|
||||
project; so, that you can commit your changes and push them to [GitHub][4] to
|
||||
not lose them. If you do not know how to use Git, follow this [tutorial][5] and
|
||||
bookmark this [reference][6].
|
||||
|
||||
Resources
|
||||
---------
|
||||
@ -96,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[@]")
|
||||
|
@ -8,7 +8,7 @@ Load modules in *zpreztorc*. The order matters.
|
||||
Archive
|
||||
-------
|
||||
|
||||
Provides functions to extract and list popular archive formats.
|
||||
Provides functions to list and extract archives.
|
||||
|
||||
Command-Not-Found
|
||||
-----------------
|
||||
@ -31,20 +31,41 @@ Dpkg
|
||||
|
||||
Defines dpkg aliases and functions.
|
||||
|
||||
Editor
|
||||
------
|
||||
|
||||
Sets key bindings.
|
||||
|
||||
Emacs
|
||||
-----
|
||||
|
||||
Enables Emacs dependency management.
|
||||
|
||||
Environment
|
||||
-----------
|
||||
|
||||
Sets general shell options and defines environment variables.
|
||||
|
||||
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-Agent
|
||||
---------
|
||||
GPG
|
||||
---
|
||||
|
||||
Provides for an easier use of gpg-agent.
|
||||
Provides for an easier use of GPG by setting up gpg-agent.
|
||||
|
||||
Haskell
|
||||
-------
|
||||
@ -56,15 +77,20 @@ Helper
|
||||
|
||||
Provides helper functions for developing modules.
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
Sets history options and defines history aliases.
|
||||
|
||||
History Substring Search
|
||||
------------------------
|
||||
|
||||
Integrates zsh-history-substring-search into Prezto.
|
||||
|
||||
History
|
||||
-------
|
||||
Homebrew
|
||||
--------
|
||||
|
||||
Sets history options and defines history aliases.
|
||||
Defines Homebrew aliases.
|
||||
|
||||
Macports
|
||||
--------
|
||||
@ -76,6 +102,11 @@ Node.js
|
||||
|
||||
Provides utility functions for Node.js and loads npm completion.
|
||||
|
||||
Ocaml
|
||||
-----
|
||||
|
||||
Initializes Ocaml package management.
|
||||
|
||||
OSX
|
||||
---
|
||||
|
||||
@ -127,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
|
||||
-------------------
|
||||
@ -162,9 +193,3 @@ Yum
|
||||
|
||||
Defines yum aliases.
|
||||
|
||||
Z
|
||||
-
|
||||
|
||||
Integrates z into Prezto, which maintains a frequently used directory list for
|
||||
fast directory changes.
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
Archive
|
||||
=======
|
||||
|
||||
Provides functions to extract and list popular archive formats.
|
||||
Provides functions to list and extract archives.
|
||||
|
||||
Functions
|
||||
---------
|
||||
|
||||
- `extract` extracts the contents of one or more archives.
|
||||
- `ls-archive` lists the contents of one or more archives.
|
||||
- `lsarchive` lists the contents of one or more archives.
|
||||
- `unarchive` extracts the contents of one or more archives.
|
||||
|
||||
Supported Formats
|
||||
-----------------
|
||||
@ -26,7 +26,7 @@ installed:
|
||||
- *.lzma* requires `unlzma`.
|
||||
- *.Z* requires `uncompress`.
|
||||
- *.zip* requires `unzip`.
|
||||
- *.rar* requires `unrar`.
|
||||
- *.rar* requires `unrar` or `rar`.
|
||||
- *.7z* requires `7za`.
|
||||
- *.deb* requires `ar`, `tar`.
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#compdef ls-archive
|
||||
#compdef lsarchive
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Completes ls-archive.
|
||||
# Completes lsarchive.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
@ -1,8 +1,8 @@
|
||||
#compdef extract
|
||||
#compdef unarchive
|
||||
#autoload
|
||||
|
||||
#
|
||||
# Completes extract.
|
||||
# Completes unarchive.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Lists the contents of popular archive formats.
|
||||
# Lists the contents of archives.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
@ -41,7 +41,9 @@ while (( $# > 0 )); do
|
||||
|| lzcat "$1" | tar x${verbose:+v}f - ;;
|
||||
(*.tar) tar t${verbose:+v}f "$1" ;;
|
||||
(*.zip) unzip -l${verbose:+v} "$1" ;;
|
||||
(*.rar) unrar ${${verbose:+v}:-l} "$1" ;;
|
||||
(*.rar) unrar &> /dev/null \
|
||||
&& unrar ${${verbose:+v}:-l} "$1" \
|
||||
|| rar ${${verbose:+v}:-l} "$1" ;;
|
||||
(*.7z) 7za l "$1" ;;
|
||||
(*)
|
||||
print "$0: cannot list: $1" >&2
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Extracts the contents of popular archive formats.
|
||||
# Extracts the contents of archives.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
@ -53,7 +53,9 @@ while (( $# > 0 )); do
|
||||
(*.lzma) unlzma "$1" ;;
|
||||
(*.Z) uncompress "$1" ;;
|
||||
(*.zip) unzip "$1" -d $extract_dir ;;
|
||||
(*.rar) unrar e -ad "$1" ;;
|
||||
(*.rar) unrar &> /dev/null \
|
||||
&& unrar e -ad "$1" \
|
||||
|| rar e -ad "$1" ;;
|
||||
(*.7z) 7za x "$1" ;;
|
||||
(*.deb)
|
||||
mkdir -p "$extract_dir/control"
|
@ -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: 9ef8d2f088...1d6a2aa024
@ -30,9 +30,6 @@ setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a traili
|
||||
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
|
||||
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
|
||||
|
||||
# Treat these characters as part of a word.
|
||||
WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
|
||||
|
||||
#
|
||||
# Styles
|
||||
#
|
||||
@ -96,7 +93,7 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va
|
||||
|
||||
# Populate hostname completion.
|
||||
zstyle -e ':completion:*:hosts' hosts 'reply=(
|
||||
${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//,/ }
|
||||
${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
|
||||
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
|
||||
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
|
||||
)'
|
||||
@ -144,8 +141,8 @@ fi
|
||||
# SSH/SCP/RSYNC
|
||||
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
|
||||
zstyle ':completion:*:ssh:*' tag-order users 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||
zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr
|
||||
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
||||
|
@ -22,7 +22,11 @@ Aliases
|
||||
-------
|
||||
|
||||
- `d` prints the contents of the directory stack.
|
||||
- `1 ... 9` changes the directory to the **n** previous one.
|
||||
|
||||
Functions
|
||||
---------
|
||||
|
||||
- `command_not_found_handler` changes the directory to the **n** previous one.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
13
modules/directory/functions/command_not_found_handler
Normal file
13
modules/directory/functions/command_not_found_handler
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# Changes the directory to the n previous one.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
if [[ "$1" == [[:digit:]]## ]]; then
|
||||
builtin cd "+$1"
|
||||
else
|
||||
return 127
|
||||
fi
|
||||
|
@ -27,5 +27,4 @@ unsetopt CLOBBER # Do not overwrite existing files with > and >>.
|
||||
#
|
||||
|
||||
alias d='dirs -v'
|
||||
for index ({1..9}) alias "$index"="cd +${index}"; unset index
|
||||
|
||||
|
@ -7,16 +7,16 @@ Aliases
|
||||
-------
|
||||
|
||||
- `debc` cleans the cache.
|
||||
- `debf` displays a file's packake.
|
||||
- `debf` displays a file's package.
|
||||
- `debi` installs packages from repositories.
|
||||
- `debI` installs packages from files.
|
||||
- `debq` displays package information.
|
||||
- `debu` updates the packages lists.
|
||||
- `debu` updates the package lists.
|
||||
- `debU` upgrades outdated packages.
|
||||
- `debx` removes packages.
|
||||
- `debX` removes packages, their configuration, and unneeded dependencies.
|
||||
- `debs` searches for packages.
|
||||
- `deb-build` creates a basic .deb package.
|
||||
- `deb-build` creates a basic deb package.
|
||||
- `deb-kclean` removes all kernel images and headers, except for the ones in
|
||||
use.
|
||||
|
||||
|
@ -19,7 +19,7 @@ fi
|
||||
# Cleans the cache.
|
||||
alias debc='sudo apt-get clean && sudo apt-get autoclean'
|
||||
|
||||
# Displays a file's packake.
|
||||
# Displays a file's package.
|
||||
alias debf='apt-file search --regexp'
|
||||
|
||||
# Installs packages from repositories.
|
||||
@ -31,7 +31,7 @@ alias debI='sudo dpkg -i'
|
||||
# Displays package information.
|
||||
alias debq='apt-cache show'
|
||||
|
||||
# Updates the packages lists.
|
||||
# Updates the package lists.
|
||||
alias debu='sudo apt-get update'
|
||||
|
||||
# Upgrades outdated packages.
|
||||
@ -50,7 +50,7 @@ else
|
||||
alias debs='apt-cache search'
|
||||
fi
|
||||
|
||||
# Creates a basic .deb package.
|
||||
# Creates a basic deb package.
|
||||
alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc'
|
||||
|
||||
# Removes all kernel images and headers, except for the ones in use.
|
||||
|
63
modules/editor/README.md
Normal file
63
modules/editor/README.md
Normal file
@ -0,0 +1,63 @@
|
||||
Editor
|
||||
======
|
||||
|
||||
Sets key bindings.
|
||||
|
||||
Settings
|
||||
--------
|
||||
|
||||
### Key bindings
|
||||
|
||||
To enable key bindings, add the following to *zpreztorc*, and replace 'bindings'
|
||||
with 'emacs' or 'vi'.
|
||||
|
||||
zstyle ':prezto:module:editor' key-bindings 'bindings'
|
||||
|
||||
### Dot Expansion
|
||||
|
||||
To enable the auto conversion of .... to ../.., add the following to
|
||||
*zpreztorc*.
|
||||
|
||||
zstyle ':prezto:module:editor' dot-expansion 'yes'
|
||||
|
||||
Theming
|
||||
-------
|
||||
|
||||
To indicate when the editor is in the primary keymap (emacs or viins), add
|
||||
the following to your `theme_prompt_setup` function.
|
||||
|
||||
zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
|
||||
|
||||
To indicate when the editor is in the primary keymap (emacs or viins) insert
|
||||
mode, add the following to your `theme_prompt_setup` function.
|
||||
|
||||
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
|
||||
|
||||
To indicate when the editor is in the primary keymap (emacs or viins) overwrite
|
||||
mode, add the following to your `theme_prompt_setup` function.
|
||||
|
||||
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
|
||||
|
||||
To indicate when the editor is in the alternate keymap (vicmd), add the
|
||||
following to your `theme_prompt_setup` function.
|
||||
|
||||
zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
|
||||
|
||||
To indicate when the editor is completing, add the following to your
|
||||
`theme_prompt_setup` function.
|
||||
|
||||
zstyle ':prezto:module:editor:info:completing' format '...'
|
||||
|
||||
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
|
||||
*overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the
|
||||
`prompt_name_preexec` hook function.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: https://github.com/sorin-ionescu/oh-my-zsh/issues
|
||||
|
@ -4,42 +4,6 @@
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
# Usage:
|
||||
# To enable key bindings, add the following to zpreztorc, and replace 'map'
|
||||
# with 'emacs' or 'vi.
|
||||
#
|
||||
# zstyle ':prezto:module:editor' keymap 'map'
|
||||
#
|
||||
# To enable the auto conversion of .... to ../.., add the following to
|
||||
# zpreztorc.
|
||||
#
|
||||
# zstyle ':prezto:module:editor' dot-expansion 'yes'
|
||||
#
|
||||
# To indicate when the editor is in the primary keymap (emacs or viins), add
|
||||
# the following to your theme prompt setup function.
|
||||
#
|
||||
# zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
|
||||
#
|
||||
# To indicate when the editor is in the primary keymap (emacs or viins) insert
|
||||
# mode, add the following to your theme prompt setup function.
|
||||
#
|
||||
# zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
|
||||
#
|
||||
# To indicate when the editor is in the primary keymap (emacs or viins)
|
||||
# overwrite mode, add the following to your theme prompt setup function.
|
||||
#
|
||||
# zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
|
||||
#
|
||||
# To indicate when the editor is in the alternate keymap (vicmd), add the
|
||||
# following to your theme prompt setup function.
|
||||
#
|
||||
# zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
|
||||
#
|
||||
# To indicate when the editor is completing, add the following to your theme
|
||||
# prompt setup function.
|
||||
#
|
||||
# zstyle ':prezto:module:editor:info:completing' format '...'
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if [[ "$TERM" == 'dumb' ]]; then
|
||||
@ -57,6 +21,9 @@ setopt BEEP
|
||||
# Variables
|
||||
#
|
||||
|
||||
# Treat these characters as part of a word.
|
||||
WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
|
||||
|
||||
# Use human-friendly identifiers.
|
||||
zmodload zsh/terminfo
|
||||
typeset -gA key_info
|
||||
@ -90,12 +57,11 @@ key_info=(
|
||||
'BackTab' "$terminfo[kcbt]"
|
||||
)
|
||||
|
||||
# Do not bind any keys if there are empty values in $key_info.
|
||||
# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
|
||||
# bindkey failure.
|
||||
for key in "${(k)key_info[@]}"; do
|
||||
if [[ -z "$key_info[$key]" ]]; then
|
||||
print "prezto: one or more keys are non-bindable" >&2
|
||||
unset key{,_info}
|
||||
return 1
|
||||
key_info["$key"]='<27>'
|
||||
fi
|
||||
done
|
||||
|
||||
@ -142,13 +108,39 @@ function editor-info {
|
||||
zle -N editor-info
|
||||
|
||||
# Updates editor information when the keymap changes.
|
||||
function zle-keymap-select zle-line-init zle-line-finish {
|
||||
function zle-keymap-select {
|
||||
zle editor-info
|
||||
}
|
||||
zle -N zle-keymap-select
|
||||
zle -N zle-line-finish
|
||||
|
||||
# Enables terminal application mode and updates editor information.
|
||||
function zle-line-init {
|
||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
||||
# values to be valid.
|
||||
if (( $+terminfo[smkx] )); then
|
||||
# Enable terminal application mode.
|
||||
echoti smkx
|
||||
fi
|
||||
|
||||
# Update editor information.
|
||||
zle editor-info
|
||||
}
|
||||
zle -N zle-line-init
|
||||
|
||||
# Disables terminal application mode and updates editor information.
|
||||
function zle-line-finish {
|
||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
||||
# values to be valid.
|
||||
if (( $+terminfo[rmkx] )); then
|
||||
# Disable terminal application mode.
|
||||
echoti rmkx
|
||||
fi
|
||||
|
||||
# Update editor information.
|
||||
zle editor-info
|
||||
}
|
||||
zle -N zle-line-finish
|
||||
|
||||
# Toggles emacs overwrite mode and updates editor information.
|
||||
function overwrite-mode {
|
||||
zle .overwrite-mode
|
||||
@ -253,10 +245,6 @@ bindkey -M vicmd "v" edit-command-line
|
||||
bindkey -M vicmd "u" undo
|
||||
bindkey -M vicmd "$key_info[Control]R" redo
|
||||
|
||||
# Switch to command mode.
|
||||
bindkey -M viins "jk" vi-cmd-mode
|
||||
bindkey -M viins "kj" vi-cmd-mode
|
||||
|
||||
if (( $+widgets[history-incremental-pattern-search-backward] )); then
|
||||
bindkey -M vicmd "?" history-incremental-pattern-search-backward
|
||||
bindkey -M vicmd "/" history-incremental-pattern-search-forward
|
||||
@ -327,14 +315,14 @@ fi
|
||||
#
|
||||
|
||||
# Set the key layout.
|
||||
zstyle -s ':prezto:module:editor' keymap 'keymap'
|
||||
if [[ "$keymap" == (emacs|) ]]; then
|
||||
zstyle -s ':prezto:module:editor' key-bindings 'key_bindings'
|
||||
if [[ "$key_bindings" == (emacs|) ]]; then
|
||||
bindkey -e
|
||||
elif [[ "$keymap" == vi ]]; then
|
||||
elif [[ "$key_bindings" == vi ]]; then
|
||||
bindkey -v
|
||||
else
|
||||
print "prezto: invalid keymap: $keymap" >&2
|
||||
print "prezto: editor: invalid key bindings: $key_bindings" >&2
|
||||
fi
|
||||
|
||||
unset key{map,}
|
||||
unset key{,map,bindings}
|
||||
|
||||
|
33
modules/emacs/README.md
Normal file
33
modules/emacs/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
Emacs
|
||||
=====
|
||||
|
||||
Enables Emacs dependency management.
|
||||
|
||||
Dependency management
|
||||
---------------------
|
||||
|
||||
[Carton][1] installs and manages Emacs packages for Emacs package development
|
||||
and Emacs configuration.
|
||||
|
||||
This module prepends the Carton directory to the path variable to enable the
|
||||
execution of `carton`.
|
||||
|
||||
Aliases
|
||||
-------
|
||||
|
||||
### Carton
|
||||
|
||||
- `cai` installs dependencies.
|
||||
- `cau` updates dependencies.
|
||||
- `caI` initializes the current directory for dependency management.
|
||||
- `cae` executes a command which correct dependencies.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
||||
|
||||
- [Sebastian Wiesner](https://github.com/lunaryorn)
|
||||
|
||||
[1]: https://github.com/rejeep/carton
|
||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
25
modules/emacs/init.zsh
Normal file
25
modules/emacs/init.zsh
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Configures Emacs dependency management.
|
||||
#
|
||||
# Authors: Sebastian Wiesner <lunaryorn@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if [[ ! -d "$HOME/.cask" ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Prepend Cask bin directory.
|
||||
path=($HOME/.cask/bin $path)
|
||||
|
||||
# Load Carton completion
|
||||
source "$HOME/.cask/etc/cask_completion.zsh" 2> /dev/null
|
||||
|
||||
#
|
||||
# Aliases
|
||||
#
|
||||
|
||||
alias cai='cask install'
|
||||
alias cau='cask update'
|
||||
alias caI='cask init'
|
||||
alias cae='cask exec'
|
@ -17,6 +17,8 @@ zle -N self-insert url-quote-magic
|
||||
#
|
||||
|
||||
setopt BRACE_CCL # Allow brace character class list expansion.
|
||||
setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents)
|
||||
# with the base character.
|
||||
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
|
||||
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
Git
|
||||
===
|
||||
|
||||
Enhances the [Git][1] distributed version control system by providing aliases, functions and by exposing repository status information to prompts.
|
||||
Enhances the [Git][1] distributed version control system by providing aliases,
|
||||
functions and by exposing repository status information to prompts.
|
||||
|
||||
Git **1.7.2** is the [minimum required version][7].
|
||||
|
||||
@ -12,7 +13,7 @@ Settings
|
||||
|
||||
The format of the [git-log][8] output is configurable via the following style,
|
||||
where context is *brief*, *oneline*, and *medium*, which will be passed to the
|
||||
`--prety=format:` switch.
|
||||
`--pretty=format:` switch.
|
||||
|
||||
zstyle ':prezto:module:git:log:context' format ''
|
||||
|
||||
@ -38,8 +39,8 @@ Aliases
|
||||
- `gbc` creates a new branch.
|
||||
- `gbl` lists branches and their commits.
|
||||
- `gbL` lists local and remote branches and their commits.
|
||||
- `gbs` lists branches and their commits with ancestery graphs.
|
||||
- `gbS` lists local and remote branches and their commits with ancestery
|
||||
- `gbs` lists branches and their commits with ancestry graphs.
|
||||
- `gbS` lists local and remote branches and their commits with ancestry
|
||||
graphs.
|
||||
- `gbx` deletes a branch.
|
||||
- `gbX` deletes a branch irrespective of its merged status.
|
||||
@ -53,16 +54,27 @@ Aliases
|
||||
- `gca` stages all modified and deleted files.
|
||||
- `gcm` records changes to the repository with the given message.
|
||||
- `gco` checks out a branch or paths to work tree.
|
||||
- `gcO` checks out paths to work tree using the *HEAD* commit.
|
||||
- `gcO` checks out hunks from the index or the tree interactively.
|
||||
- `gcf` amends the tip of the current branch using the same log message as
|
||||
*HEAD*.
|
||||
- `gcF` amends the tip of the current branch.
|
||||
- `gcp` applies changes introduced by existing commits.
|
||||
- `gcP` applies changes introduced by existing commits without committing.
|
||||
- `gcr` reverts existing commits by reverting patches and recording new
|
||||
commits.
|
||||
- `gcR` removes the *HEAD* commit.
|
||||
- `gcs` displays various types of objects.
|
||||
- `gcl` displays lost commits.
|
||||
- `gcl` lists lost commits.
|
||||
|
||||
### Conflict
|
||||
|
||||
- `gCl` lists unmerged files.
|
||||
- `gCa` adds unmerged file contents to the index.
|
||||
- `gCe` executes merge-tool on all unmerged file.
|
||||
- `gCo` checks out our changes for unmerged paths.
|
||||
- `gCO` checks out our changes for all unmerged paths.
|
||||
- `gCt` checks out their changes for unmerged paths.
|
||||
- `gCT` checks out their changes for all unmerged paths.
|
||||
|
||||
### Data
|
||||
|
||||
@ -85,8 +97,8 @@ Aliases
|
||||
|
||||
- `gg` displays lines matching a pattern.
|
||||
- `ggi` displays lines matching a pattern ignoring case.
|
||||
- `ggl` displays files matching a pattern.
|
||||
- `ggL` displays files are not matching a pattern.
|
||||
- `ggl` lists files matching a pattern.
|
||||
- `ggL` lists files that are not matching a pattern.
|
||||
- `ggv` displays lines not matching a pattern.
|
||||
- `ggw` displays lines matching a pattern at word boundary.
|
||||
|
||||
@ -97,21 +109,11 @@ Aliases
|
||||
- `giu` adds file contents to the index (updates only known files).
|
||||
- `gid` displays changes between the index and a named commit (diff).
|
||||
- `giD` displays changes between the index and a named commit (word diff).
|
||||
- `gir` resets current HEAD to the specified state.
|
||||
- `giR` resets current index to the specified state.
|
||||
- `gir` resets the current HEAD to the specified state.
|
||||
- `giR` resets the current index interactively.
|
||||
- `gix` removes files/directories from the index (recursively).
|
||||
- `giX` removes files/directories from the index (recursively and forced).
|
||||
|
||||
### Conflict
|
||||
|
||||
- `gCl` lists unmerged files.
|
||||
- `gCa` adds unmerged file contents to the index.
|
||||
- `gCe` executes merge-tool on all unmerged file.
|
||||
- `gCo` checks out our changes for unmerged paths.
|
||||
- `gCO` checks out our changes for all unmerged paths.
|
||||
- `gCt` checks out their changes for unmerged paths.
|
||||
- `gCT` checks out their changes for all unmerged paths.
|
||||
|
||||
### Log
|
||||
|
||||
- `gl` displays the log.
|
||||
@ -153,12 +155,12 @@ Aliases
|
||||
### Remote
|
||||
|
||||
- `gR` manages tracked repositories.
|
||||
- `gRl` displays remote names and URLs.
|
||||
- `gRl` lists remote names and their URLs.
|
||||
- `gRa` adds a new remote.
|
||||
- `gRx` removes a remote.
|
||||
- `gRm` renames a remote.
|
||||
- `gRu` fetches remotes updates.
|
||||
- `gRc` deletes all stale remote tracking branches.
|
||||
- `gRp` prunes all stale remote tracking branches.
|
||||
- `gRs` displays information about a given remote.
|
||||
- `gRb` opens a remote on [GitHub][3] in the default browser.
|
||||
|
||||
@ -168,10 +170,9 @@ Aliases
|
||||
- `gsa` applies the changes recorded in a stash to the working directory.
|
||||
- `gsx` drops a stashed state.
|
||||
- `gsX` drops all the stashed states.
|
||||
- `gsd` lists dropped stashed states.
|
||||
- `gsl` lists stashed states.
|
||||
- `gsL` displays the changes recorded in the stash as a diff between the
|
||||
stashed state and its original parent.
|
||||
- `gsL` lists dropped stashed states.
|
||||
- `gsd` displays changes between the stash and its original parent.
|
||||
- `gsp` removes and applies a single stashed state from the stash list.
|
||||
- `gsr` recovers a given stashed state.
|
||||
- `gss` stashes the changes of the dirty working directory, including untracked.
|
||||
@ -246,25 +247,47 @@ setting a style is as follows.
|
||||
|
||||
zstyle ':prezto:module:git:info:context:subcontext' format 'string'
|
||||
|
||||
### Main Contexts
|
||||
|
||||
| Name | Format Code | Description
|
||||
| --------- | :---------: | ---------------------------------------------------
|
||||
| action | %s | Special action name
|
||||
| added | %a | Added files count
|
||||
| ahead | %A | Commits ahead of remote count
|
||||
| behind | %B | Commits behind of remote count
|
||||
| branch | %b | Branch name
|
||||
| commit | %c | Commit hash
|
||||
| position | %p | Commits from the nearest tag count
|
||||
| remote | %R | Remote name
|
||||
| stashed | %S | Stashed states count
|
||||
|
||||
### Concise Contexts
|
||||
|
||||
| Name | Format Code | Description
|
||||
| --------- | :---------: | ---------------------------------------------------
|
||||
| clean | %C | Clean state
|
||||
| dirty | %D | Dirty files count
|
||||
| indexed | %i | Indexed files count
|
||||
| unindexed | %I | Unindexed files count
|
||||
| untracked | %u | Untracked files count
|
||||
|
||||
The following contexts must be enabled with the following zstyle:
|
||||
|
||||
zstyle ':prezto:module:git:info' verbose 'yes'
|
||||
|
||||
### Verbose Contexts
|
||||
|
||||
| Name | Format Code | Description
|
||||
| --------- | :---------: | ---------------------------------------------------
|
||||
| added | %a | Added files count
|
||||
| clean | %C | Clean state
|
||||
| deleted | %d | Deleted files count
|
||||
| dirty | %D | Dirty files count
|
||||
| modified | %m | Modified files count
|
||||
| position | %p | Commits from the nearest tag count
|
||||
| remote | %R | Remote name
|
||||
| renamed | %r | Renamed files count
|
||||
| stashed | %S | Stashed states count
|
||||
| unmerged | %U | Unmerged files count
|
||||
| untracked | %u | Untracked files count
|
||||
[**Main Contexts**]
|
||||
|
||||
### Special Action Contexts
|
||||
|
||||
| Name | Format | Description
|
||||
| -------------------- | :---------: | -----------------------------------------
|
||||
@ -276,7 +299,6 @@ setting a style is as follows.
|
||||
| rebase | value | Rebasing
|
||||
| rebase-interactive | value | Rebasing interactively
|
||||
| rebase-merge | value | Rebasing merge
|
||||
[**Special Action Contexts**]
|
||||
|
||||
First, format the repository state attributes. For example, to format the branch
|
||||
and remote names, define the following styles.
|
||||
@ -290,7 +312,7 @@ Second, format how the above attributes are displayed in prompts.
|
||||
'prompt' ' git(%b)' \
|
||||
'rprompt' '[%R]'
|
||||
|
||||
Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[prompt]` to
|
||||
Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
|
||||
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
|
||||
function.
|
||||
|
||||
|
@ -42,12 +42,13 @@ alias gbs='git show-branch'
|
||||
alias gbS='git show-branch -a'
|
||||
|
||||
# Commit (c)
|
||||
alias gc='git commit'
|
||||
alias gca='git commit --all'
|
||||
alias gc='git commit --verbose'
|
||||
alias gca='git commit --verbose --all'
|
||||
alias gcm='git commit --message'
|
||||
alias gco='git checkout'
|
||||
alias gcO='git checkout HEAD --'
|
||||
alias gcO='git checkout --patch'
|
||||
alias gcf='git commit --amend --reuse-message HEAD'
|
||||
alias gcF='git commit --verbose --amend'
|
||||
alias gcp='git cherry-pick --ff'
|
||||
alias gcP='git cherry-pick --no-commit'
|
||||
alias gcr='git revert'
|
||||
@ -55,6 +56,15 @@ alias gcR='git reset "HEAD^"'
|
||||
alias gcs='git show'
|
||||
alias gcl='git-commit-lost'
|
||||
|
||||
# Conflict (C)
|
||||
alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"'
|
||||
alias gCa='git add $(gCl)'
|
||||
alias gCe='git mergetool $(gCl)'
|
||||
alias gCo='git checkout --ours --'
|
||||
alias gCO='gCo $(gCl)'
|
||||
alias gCt='git checkout --theirs --'
|
||||
alias gCT='gCt $(gCl)'
|
||||
|
||||
# Data (d)
|
||||
alias gd='git ls-files'
|
||||
alias gdc='git ls-files --cached'
|
||||
@ -85,19 +95,10 @@ alias giu='git add --update'
|
||||
alias gid='git diff --no-ext-diff --cached'
|
||||
alias giD='git diff --no-ext-diff --cached --word-diff'
|
||||
alias gir='git reset'
|
||||
alias giR='git reset --keep'
|
||||
alias giR='git reset --patch'
|
||||
alias gix='git rm -r --cached'
|
||||
alias giX='git rm -rf --cached'
|
||||
|
||||
# Conflict (C)
|
||||
alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"'
|
||||
alias gCa='git add $(gCl)'
|
||||
alias gCe='git mergetool $(gCl)'
|
||||
alias gCo='git checkout --ours --'
|
||||
alias gCO='gCo $(gCl)'
|
||||
alias gCt='git checkout --theirs --'
|
||||
alias gCT='gCt $(gCl)'
|
||||
|
||||
# Log (l)
|
||||
alias gl='git log --topo-order --pretty=format:${_git_log_medium_format}'
|
||||
alias gls='git log --topo-order --stat --pretty=format:${_git_log_medium_format}'
|
||||
@ -137,7 +138,7 @@ alias gRa='git remote add'
|
||||
alias gRx='git remote rm'
|
||||
alias gRm='git remote rename'
|
||||
alias gRu='git remote update'
|
||||
alias gRc='git remote prune'
|
||||
alias gRp='git remote prune'
|
||||
alias gRs='git remote show'
|
||||
alias gRb='git-hub-browse'
|
||||
|
||||
@ -146,9 +147,9 @@ alias gs='git stash'
|
||||
alias gsa='git stash apply'
|
||||
alias gsx='git stash drop'
|
||||
alias gsX='git-stash-clear-interactive'
|
||||
alias gsd='git-stash-dropped'
|
||||
alias gsl='git stash list'
|
||||
alias gsL='git stash show --patch --stat'
|
||||
alias gsL='git-stash-dropped'
|
||||
alias gsd='git stash show --patch --stat'
|
||||
alias gsp='git stash pop'
|
||||
alias gsr='git-stash-recover'
|
||||
alias gss='git stash save --include-untracked'
|
||||
|
@ -89,31 +89,6 @@ function _git-action {
|
||||
return 1
|
||||
}
|
||||
|
||||
# Turns off git-info for the current repository.
|
||||
function _git-info-abort {
|
||||
if ! is-true "$_git_info_executing"; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
cat >&2 <<EOF
|
||||
|
||||
|
||||
Gathering status for certain repositories is time intensive.
|
||||
By pressing CTRL + C, you have turned off prompt Git status
|
||||
for this repository.
|
||||
|
||||
To revert, execute:
|
||||
git-info on
|
||||
|
||||
EOF
|
||||
|
||||
unset _git_info_executing
|
||||
git config --bool prompt.showinfo false
|
||||
git-info
|
||||
return 0
|
||||
}
|
||||
add-zsh-trap INT _git-info-abort
|
||||
|
||||
# Gets the Git status information.
|
||||
function git-info {
|
||||
# Extended globbing is needed to parse repository status.
|
||||
@ -126,13 +101,13 @@ function git-info {
|
||||
local added=0
|
||||
local added_format
|
||||
local added_formatted
|
||||
local ahead
|
||||
local ahead=0
|
||||
local ahead_and_behind
|
||||
local ahead_and_behind_cmd
|
||||
local ahead_format
|
||||
local ahead_formatted
|
||||
local ahead_or_behind
|
||||
local behind
|
||||
local behind=0
|
||||
local behind_format
|
||||
local behind_formatted
|
||||
local branch
|
||||
@ -151,9 +126,11 @@ function git-info {
|
||||
local dirty_format
|
||||
local dirty_formatted
|
||||
local ignore_submodules
|
||||
local indexed=0
|
||||
local indexed_format
|
||||
local indexed_formatted
|
||||
local -A info_formats
|
||||
local info_format
|
||||
local line_number=0
|
||||
local modified=0
|
||||
local modified_format
|
||||
local modified_formatted
|
||||
@ -171,6 +148,10 @@ function git-info {
|
||||
local stashed_format
|
||||
local stashed_formatted
|
||||
local status_cmd
|
||||
local status_mode
|
||||
local unindexed=0
|
||||
local unindexed_format
|
||||
local unindexed_formatted
|
||||
local unmerged=0
|
||||
local unmerged_format
|
||||
local unmerged_formatted
|
||||
@ -203,44 +184,152 @@ function git-info {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Used to abort and turn git-info off on SIGINT.
|
||||
_git_info_executing=true
|
||||
|
||||
# Use porcelain status for easy parsing.
|
||||
status_cmd='git status --porcelain'
|
||||
|
||||
# Gets the remote name.
|
||||
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
|
||||
|
||||
# Gets the commit difference counts between local and remote.
|
||||
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
|
||||
|
||||
# Ignore submodule status.
|
||||
zstyle -s ':prezto:module:git:status:ignore' submodules 'ignore_submodules'
|
||||
if [[ -n "$ignore_submodules" ]]; then
|
||||
status_cmd+=" --ignore-submodules=${ignore_submodules}"
|
||||
fi
|
||||
|
||||
# Format commit.
|
||||
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
|
||||
if [[ -n "$commit_format" ]]; then
|
||||
commit="$(git rev-parse HEAD 2> /dev/null)"
|
||||
if [[ -n "$commit" ]]; then
|
||||
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
|
||||
zformat -f commit_formatted "$commit_format" "c:$commit"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format stashed.
|
||||
if [[ -f "$(git-dir)/refs/stash" ]]; then
|
||||
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
||||
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
|
||||
if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
|
||||
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
||||
if [[ -n "$stashed" ]]; then
|
||||
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format action.
|
||||
zstyle -s ':prezto:module:git:info:action' format 'action_format'
|
||||
if [[ -n "$action_format" ]]; then
|
||||
action="$(_git-action)"
|
||||
if [[ -n "$action" ]]; then
|
||||
zstyle -s ':prezto:module:git:info:action' format 'action_format'
|
||||
zformat -f action_formatted "$action_format" "s:$action"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get the branch.
|
||||
branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
|
||||
|
||||
# Format branch.
|
||||
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
|
||||
if [[ -n "$branch" && -n "$branch_format" ]]; then
|
||||
zformat -f branch_formatted "$branch_format" "b:$branch"
|
||||
fi
|
||||
|
||||
# Format position.
|
||||
zstyle -s ':prezto:module:git:info:position' format 'position_format'
|
||||
if [[ -z "$branch" && -n "$position_format" ]]; then
|
||||
position="$(git describe --contains --all HEAD 2> /dev/null)"
|
||||
if [[ -n "$position" ]]; then
|
||||
zformat -f position_formatted "$position_format" "p:$position"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format remote.
|
||||
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
|
||||
if [[ -n "$branch" && -n "$remote_format" ]]; then
|
||||
# Gets the remote name.
|
||||
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
|
||||
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
|
||||
if [[ -n "$remote" ]]; then
|
||||
zformat -f remote_formatted "$remote_format" "R:$remote"
|
||||
fi
|
||||
fi
|
||||
|
||||
zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
|
||||
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
|
||||
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
|
||||
# Gets the commit difference counts between local and remote.
|
||||
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
|
||||
|
||||
# Get ahead and behind counts.
|
||||
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
|
||||
|
||||
# Format ahead.
|
||||
if [[ -n "$ahead_format" ]]; then
|
||||
ahead="$ahead_and_behind[(w)1]"
|
||||
if (( ahead > 0 )); then
|
||||
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format behind.
|
||||
if [[ -n "$behind_format" ]]; then
|
||||
behind="$ahead_and_behind[(w)2]"
|
||||
if (( behind > 0 )); then
|
||||
zformat -f behind_formatted "$behind_format" "B:$behind"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get status type.
|
||||
if ! zstyle -t ':prezto:module:git:info' verbose; then
|
||||
# Format indexed.
|
||||
zstyle -s ':prezto:module:git:info:indexed' format 'indexed_format'
|
||||
if [[ -n "$indexed_format" ]]; then
|
||||
((
|
||||
indexed+=$(
|
||||
git diff-index \
|
||||
--no-ext-diff \
|
||||
--name-only \
|
||||
--cached \
|
||||
--ignore-submodules=${ignore_submodules:-none} \
|
||||
HEAD \
|
||||
2> /dev/null \
|
||||
| wc -l
|
||||
)
|
||||
))
|
||||
if (( indexed > 0 )); then
|
||||
zformat -f indexed_formatted "$indexed_format" "i:$indexed"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format unindexed.
|
||||
zstyle -s ':prezto:module:git:info:unindexed' format 'unindexed_format'
|
||||
if [[ -n "$unindexed_format" ]]; then
|
||||
((
|
||||
unindexed+=$(
|
||||
git diff-files \
|
||||
--no-ext-diff \
|
||||
--name-only \
|
||||
--ignore-submodules=${ignore_submodules:-none} \
|
||||
2> /dev/null \
|
||||
| wc -l
|
||||
)
|
||||
))
|
||||
if (( unindexed > 0 )); then
|
||||
zformat -f unindexed_formatted "$unindexed_format" "I:$unindexed"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format untracked.
|
||||
zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
|
||||
if [[ -n "$untracked_format" ]]; then
|
||||
((
|
||||
untracked+=$(
|
||||
git ls-files \
|
||||
--other \
|
||||
--exclude-standard \
|
||||
2> /dev/null \
|
||||
| wc -l
|
||||
)
|
||||
))
|
||||
if (( untracked > 0 )); then
|
||||
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
|
||||
fi
|
||||
fi
|
||||
|
||||
(( dirty = indexed + unindexed + untracked ))
|
||||
else
|
||||
# Use porcelain status for easy parsing.
|
||||
status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
|
||||
|
||||
# Get current status.
|
||||
while IFS=$'\n' read line; do
|
||||
@ -256,82 +345,45 @@ function git-info {
|
||||
(( dirty++ ))
|
||||
done < <(${(z)status_cmd} 2> /dev/null)
|
||||
|
||||
# Format branch.
|
||||
branch="${$(git symbolic-ref -q HEAD)##refs/heads/}"
|
||||
if [[ -n "$branch" ]]; then
|
||||
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
|
||||
zformat -f branch_formatted "$branch_format" "b:$branch"
|
||||
|
||||
# Format remote.
|
||||
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
|
||||
if [[ -n "$remote" ]]; then
|
||||
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
|
||||
zformat -f remote_formatted "$remote_format" "R:$remote"
|
||||
|
||||
# Get ahead and behind counts.
|
||||
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
|
||||
|
||||
# Format ahead.
|
||||
ahead="$ahead_and_behind[(w)1]"
|
||||
if (( $ahead > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
|
||||
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
|
||||
fi
|
||||
|
||||
# Format behind.
|
||||
behind="$ahead_and_behind[(w)2]"
|
||||
if (( $behind > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
|
||||
zformat -f behind_formatted "$behind_format" "B:$behind"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Format position.
|
||||
position="$(git describe --contains --all HEAD 2> /dev/null)"
|
||||
if [[ -n "$position" ]]; then
|
||||
zstyle -s ':prezto:module:git:info:position' format 'position_format'
|
||||
zformat -f position_formatted "$position_format" "p:$position"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format added.
|
||||
if (( $added > 0 )); then
|
||||
if (( added > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:added' format 'added_format'
|
||||
zformat -f added_formatted "$added_format" "a:$added_format"
|
||||
fi
|
||||
|
||||
# Format deleted.
|
||||
if (( $deleted > 0 )); then
|
||||
if (( deleted > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
|
||||
zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
|
||||
fi
|
||||
|
||||
# Format modified.
|
||||
if (( $modified > 0 )); then
|
||||
if (( modified > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:modified' format 'modified_format'
|
||||
zformat -f modified_formatted "$modified_format" "m:$modified"
|
||||
fi
|
||||
|
||||
# Format renamed.
|
||||
if (( $renamed > 0 )); then
|
||||
if (( renamed > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:renamed' format 'renamed_format'
|
||||
zformat -f renamed_formatted "$renamed_format" "r:$renamed"
|
||||
fi
|
||||
|
||||
# Format unmerged.
|
||||
if (( $unmerged > 0 )); then
|
||||
if (( unmerged > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:unmerged' format 'unmerged_format'
|
||||
zformat -f unmerged_formatted "$unmerged_format" "U:$unmerged"
|
||||
fi
|
||||
|
||||
# Format untracked.
|
||||
if (( $untracked > 0 )); then
|
||||
if (( untracked > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
|
||||
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Format dirty and clean.
|
||||
if (( $dirty > 0 )); then
|
||||
if (( dirty > 0 )); then
|
||||
zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
|
||||
zformat -f dirty_formatted "$dirty_format" "D:$dirty"
|
||||
else
|
||||
@ -342,27 +394,28 @@ function git-info {
|
||||
zstyle -a ':prezto:module:git:info:keys' format 'info_formats'
|
||||
for info_format in ${(k)info_formats}; do
|
||||
zformat -f REPLY "$info_formats[$info_format]" \
|
||||
"a:$added_formatted" \
|
||||
"A:$ahead_formatted" \
|
||||
"B:$behind_formatted" \
|
||||
"D:$dirty_formatted" \
|
||||
"R:$remote_formatted" \
|
||||
"S:$stashed_formatted" \
|
||||
"U:$unmerged_formatted" \
|
||||
"a:$added_formatted" \
|
||||
"b:$branch_formatted" \
|
||||
"C:$clean_formatted" \
|
||||
"c:$commit_formatted" \
|
||||
"d:$deleted_formatted" \
|
||||
"D:$dirty_formatted" \
|
||||
"i:$indexed_formatted" \
|
||||
"I:$unindexed_formatted" \
|
||||
"m:$modified_formatted" \
|
||||
"p:$position_formatted" \
|
||||
"R:$remote_formatted" \
|
||||
"r:$renamed_formatted" \
|
||||
"s:$action_formatted" \
|
||||
"S:$stashed_formatted" \
|
||||
"U:$unmerged_formatted" \
|
||||
"u:$untracked_formatted"
|
||||
git_info[$info_format]="$REPLY"
|
||||
done
|
||||
|
||||
unset REPLY
|
||||
unset _git_info_executing
|
||||
|
||||
return 0
|
||||
}
|
||||
|
@ -7,8 +7,8 @@ Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.
|
||||
`ls` instead of `gls`, is not recommended since scripts that target other
|
||||
utilities will be broken.
|
||||
|
||||
However, for interactive use, prefixed commands can be wrapped in their
|
||||
non-prefixed counterparts.
|
||||
This module wraps GNU utilities in functions without a prefix for interactive
|
||||
use.
|
||||
|
||||
This module must be loaded **before** the *utility* module.
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
GPG-Agent
|
||||
=========
|
||||
|
||||
Provides for an easier use of [gpg-agent][1].
|
||||
|
||||
Settings
|
||||
--------
|
||||
|
||||
### SSH-Agent Protocol Emulation
|
||||
|
||||
To enable SSH-Agent protocol emulation, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:gpg-agent' ssh-support 'yes'
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
||||
|
||||
- [Florian Walch](https://github.com/fwalch)
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://linux.die.net/man/1/gpg-agent
|
||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
@ -1,44 +0,0 @@
|
||||
#
|
||||
# Provides for an easier use of gpg-agent.
|
||||
#
|
||||
# Authors:
|
||||
# Florian Walch <florian.walch@gmx.at>
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[gpg-agent] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
_gpg_env="$HOME/.gnupg/gpg-agent.env"
|
||||
|
||||
function _gpg-agent-start {
|
||||
local ssh_support
|
||||
|
||||
zstyle -b ':prezto:module:gpg-agent' ssh-support 'ssh_support' \
|
||||
|| ssh_support=''
|
||||
|
||||
gpg-agent \
|
||||
--daemon ${ssh_support:+'--enable-ssh-support'}
|
||||
--write-env-file "${_gpg_env}" > /dev/null
|
||||
|
||||
chmod 600 "${_gpg_env}"
|
||||
source "${_gpg_env}" > /dev/null
|
||||
}
|
||||
|
||||
# Source GPG agent settings, if applicable.
|
||||
if [[ -s "${_gpg_env}" ]]; then
|
||||
source "${_gpg_env}" > /dev/null
|
||||
ps -ef | grep "${SSH_AGENT_PID}" | grep -q 'gpg-agent' || {
|
||||
_gpg-agent-start
|
||||
}
|
||||
else
|
||||
_gpg-agent-start
|
||||
fi
|
||||
|
||||
export GPG_AGENT_INFO
|
||||
export SSH_AUTH_SOCK
|
||||
export SSH_AGENT_PID
|
||||
export GPG_TTY="$(tty)"
|
||||
|
27
modules/gpg/README.md
Normal file
27
modules/gpg/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
GPG
|
||||
===
|
||||
|
||||
Provides for an easier use of [GPG][1] by setting up [gpg-agent][2].
|
||||
|
||||
### SSH
|
||||
|
||||
To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in
|
||||
replacement for `ssh-agent`, add the following line to
|
||||
*~/.gnupg/gpg-agent.conf*:
|
||||
|
||||
enable-ssh-support
|
||||
|
||||
When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
|
||||
module for additional processing.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][3].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://www.gnupg.org
|
||||
[2]: http://linux.die.net/man/1/gpg-agent
|
||||
[3]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
44
modules/gpg/init.zsh
Normal file
44
modules/gpg/init.zsh
Normal file
@ -0,0 +1,44 @@
|
||||
#
|
||||
# Provides for an easier use of GPG by setting up gpg-agent.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[gpg-agent] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Set the default paths to gpg-agent files.
|
||||
_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
|
||||
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
|
||||
|
||||
# Start gpg-agent if not started.
|
||||
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
|
||||
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
|
||||
else
|
||||
# Export environment variables.
|
||||
source "$_gpg_agent_env" 2> /dev/null
|
||||
fi
|
||||
|
||||
# Inform gpg-agent of the current TTY for user prompts.
|
||||
export GPG_TTY="$(tty)"
|
||||
|
||||
# Integrate with the SSH module.
|
||||
if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
|
||||
# Override the ssh-agent environment file default path.
|
||||
_ssh_agent_env="$_gpg_agent_env"
|
||||
|
||||
# Load the SSH module for additional processing.
|
||||
pmodload 'ssh'
|
||||
fi
|
||||
|
||||
# Clean up.
|
||||
unset _gpg_agent_{conf,env}
|
||||
|
||||
# Disable GUI prompts inside SSH.
|
||||
if [[ -n "$SSH_CONNECTION" ]]; then
|
||||
export PINENTRY_USER_DATA='USE_CURSES=1'
|
||||
fi
|
||||
|
@ -10,12 +10,9 @@ if (( ! $+commands[ghc] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Prepend Cabal per user directories to PATH/MANPATH.
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
# Prepend Cabal per user directories to PATH.
|
||||
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then
|
||||
path=($HOME/Library/Haskell/bin(/N) $path)
|
||||
manpath=($HOME/Library/Haskell/man(/N) $manpath)
|
||||
else
|
||||
path=($HOME/.cabal/bin(/N) $path)
|
||||
manpath=($HOME/.cabal/man(/N) $manpath)
|
||||
fi
|
||||
|
||||
|
@ -13,7 +13,6 @@ Functions
|
||||
- `is-callable` checks if a name is a command, function, or alias.
|
||||
- `is-true` checks a boolean variable for "true".
|
||||
- `coalesce` prints the first non-empty string in the arguments array.
|
||||
- `zstyle-` defines a style if it is already not defined.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
@ -6,14 +6,6 @@
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Trap signals were generated with 'kill -l'.
|
||||
# DEBUG, EXIT, and ZERR are Zsh signals.
|
||||
_trap_signals=(
|
||||
ABRT ALRM BUS CHLD CONT EMT FPE HUP ILL INFO INT IO KILL PIPE PROF QUIT
|
||||
SEGV STOP SYS TERM TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ
|
||||
DEBUG EXIT ZERR
|
||||
)
|
||||
|
||||
# Adds a function name to a list to be called when a trap is triggered.
|
||||
function add-zsh-trap {
|
||||
if (( $# < 2 )); then
|
||||
@ -21,7 +13,7 @@ function add-zsh-trap {
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -z "$_trap_signals[(r)$1]" ]]; then
|
||||
if [[ -z "$signals[(r)$1]" ]]; then
|
||||
print "$0: unknown signal: $1" >&2
|
||||
return 1
|
||||
fi
|
||||
|
@ -30,7 +30,3 @@ function coalesce {
|
||||
return 1
|
||||
}
|
||||
|
||||
# Defines a style if it is already not defined.
|
||||
function zstyle- {
|
||||
zstyle -T "$1" "$2" && zstyle "$@"
|
||||
}
|
||||
|
@ -36,6 +36,18 @@ To enable highlighting for this module only, add the following line to
|
||||
|
||||
zstyle ':prezto:module:history-substring-search' color 'yes'
|
||||
|
||||
To set the query found color, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:history-substring-search:color' found ''
|
||||
|
||||
To set the query not found color, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:history-substring-search:color' not-found ''
|
||||
|
||||
To set the search globbing flags, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
|
Submodule modules/history-substring-search/external updated: 04c2eca00c...1e76804052
@ -10,14 +10,26 @@
|
||||
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
|
||||
|
||||
#
|
||||
# Styles
|
||||
# Search
|
||||
#
|
||||
|
||||
zstyle -s ':prezto:module:history-substring-search:color' found \
|
||||
'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND' \
|
||||
|| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'
|
||||
|
||||
zstyle -s ':prezto:module:history-substring-search:color' not-found \
|
||||
'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND' \
|
||||
|| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'
|
||||
|
||||
zstyle -s ':prezto:module:history-substring-search' globbing-flags \
|
||||
'HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS' \
|
||||
|| HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
|
||||
|
||||
if zstyle -t ':prezto:module:history-substring-search' case-sensitive; then
|
||||
unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS
|
||||
HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS="${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS//i}"
|
||||
fi
|
||||
|
||||
if ! zstyle -t ':prezto:module:history-substring-search' color; then
|
||||
@ -28,7 +40,7 @@ fi
|
||||
# Key Bindings
|
||||
#
|
||||
|
||||
if [[ -n $key_info ]]; then
|
||||
if [[ -n "$key_info" ]]; then
|
||||
# Emacs
|
||||
bindkey -M emacs "$key_info[Control]P" history-substring-search-up
|
||||
bindkey -M emacs "$key_info[Control]N" history-substring-search-down
|
||||
|
26
modules/homebrew/README.md
Normal file
26
modules/homebrew/README.md
Normal file
@ -0,0 +1,26 @@
|
||||
Homebrew
|
||||
========
|
||||
|
||||
Defines Homebrew aliases.
|
||||
|
||||
Aliases
|
||||
-------
|
||||
|
||||
- `brewc` cleans outdated brews and their cached archives.
|
||||
- `brewC` cleans outdated brews, including keg-only, and their cached archives.
|
||||
- `brewi` installs a formula.
|
||||
- `brewl` lists installed formulae.
|
||||
- `brews` searches for a formula.
|
||||
- `brewU` upgrades Homebrew and outdated brews.
|
||||
- `brewu` upgrades Homebrew.
|
||||
- `brewx` uninstalls a formula.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
25
modules/homebrew/init.zsh
Normal file
25
modules/homebrew/init.zsh
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Defines Homebrew aliases.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if [[ "$OSTYPE" != darwin* ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Aliases
|
||||
#
|
||||
|
||||
alias brewc='brew cleanup'
|
||||
alias brewC='brew cleanup --force'
|
||||
alias brewi='brew install'
|
||||
alias brewl='brew list'
|
||||
alias brews='brew search'
|
||||
alias brewu='brew upgrade'
|
||||
alias brewU='brew update && brew upgrade'
|
||||
alias brewx='brew remove'
|
||||
|
@ -15,18 +15,6 @@ fi
|
||||
# Paths
|
||||
#
|
||||
|
||||
# Set the list of directories that info searches for manuals.
|
||||
infopath=(
|
||||
/opt/local/share/info
|
||||
$infopath
|
||||
)
|
||||
|
||||
# Set the list of directories that man searches for manuals.
|
||||
manpath=(
|
||||
/opt/local/share/man
|
||||
$manpath
|
||||
)
|
||||
|
||||
# Set the list of directories that Zsh searches for programs.
|
||||
path=(
|
||||
/opt/local/{bin,sbin}
|
||||
|
@ -1,13 +1,34 @@
|
||||
Node.js
|
||||
=======
|
||||
|
||||
Provides utility functions for [Node.js][1] and loads [npm][2] completion.
|
||||
Provides utility functions for [Node.js][1], loads the Node Version Manager, and
|
||||
enables [npm][2] completion.
|
||||
|
||||
nvm
|
||||
---
|
||||
|
||||
[nvm][5] allows for managing multiple, isolated Node.js installations in the
|
||||
home directory.
|
||||
|
||||
Functions
|
||||
---------
|
||||
|
||||
- `node-doc` opens the Node.js online [API documentation][3] in the default
|
||||
browser.
|
||||
- `node-info` exposes information about the Node.js environment via the
|
||||
`$node_info` associative array.
|
||||
|
||||
Theming
|
||||
-------
|
||||
|
||||
To display the version number of the current Node.js version, define the
|
||||
following style inside the `prompt_name_setup` function.
|
||||
|
||||
# %v - Node.js version.
|
||||
zstyle ':prezto:module:node:info:version' format 'version:%v'
|
||||
|
||||
Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
|
||||
`node-info` in `prompt_name_preexec` hook function.
|
||||
|
||||
Authors
|
||||
-------
|
||||
@ -15,9 +36,11 @@ Authors
|
||||
*The authors of this module should be contacted via the [issue tracker][4].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
- [Zeh Rizzatti](https://github.com/zehrizzatti)
|
||||
|
||||
[1]: http://nodejs.org
|
||||
[2]: http://npmjs.org
|
||||
[3]: http://nodejs.org/api
|
||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
||||
[5]: https://github.com/creationix/nvm
|
||||
|
||||
|
25
modules/node/functions/node-info
Normal file
25
modules/node/functions/node-info
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Exposes information about the Node.js environment via the $node_info
|
||||
# associative array.
|
||||
#
|
||||
# Authors:
|
||||
# Zeh Rizzatti <zehrizzatti@gmail.com>
|
||||
#
|
||||
|
||||
local version
|
||||
local version_format
|
||||
local version_formatted
|
||||
|
||||
unset node_info
|
||||
typeset -gA node_info
|
||||
|
||||
if (( $+functions[nvm_version] )); then
|
||||
version="${$(nvm_version)#v}"
|
||||
fi
|
||||
|
||||
if [[ -n "$version" ]]; then
|
||||
zstyle -s ':prezto:module:node:info:version' format 'version_format'
|
||||
zformat -f version_formatted "$version_format" "v:$version"
|
||||
node_info[version]="$version_formatted"
|
||||
fi
|
||||
|
@ -1,10 +1,16 @@
|
||||
#
|
||||
# Completes npm.
|
||||
# Loads the Node Version Manager and enables npm completion.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
# Zeh Rizzatti <zehrizzatti@gmail.com>
|
||||
#
|
||||
|
||||
# Load NVM into the shell session.
|
||||
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
|
||||
source "$HOME/.nvm/nvm.sh"
|
||||
fi
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[node] )); then
|
||||
return 1
|
||||
|
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)"
|
||||
|
@ -20,7 +20,6 @@ Functions
|
||||
- `pfd` prints the current _Finder_ directory.
|
||||
- `pfs` prints the current _Finder_ selection.
|
||||
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
|
||||
- `trash` moves files and folders to _Trash_.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
@ -1,27 +0,0 @@
|
||||
#
|
||||
# Moves directories and files to Trash.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
print -N "${@:a}" | xargs -0 osascript -e '
|
||||
on run theFilePaths
|
||||
tell application "Finder"
|
||||
set thePOSIXFiles to {}
|
||||
repeat with aFilePath in theFilePaths
|
||||
set aPOSIXFile to aFilePath as POSIX file
|
||||
if exists aPOSIXFile
|
||||
set end of thePOSIXFiles to aPOSIXFile
|
||||
end if
|
||||
end repeat
|
||||
move every item of thePOSIXFiles to trash
|
||||
end tell
|
||||
end run
|
||||
' &>/dev/null
|
||||
|
||||
if (( $? != 0)); then
|
||||
print "$0: failed to move one or more items" >&2
|
||||
return 1
|
||||
fi
|
||||
|
@ -27,6 +27,8 @@ if (( $+commands[$_pacman_frontend] )); then
|
||||
if [[ -s "${0:h}/${_pacman_frontend}.zsh" ]]; then
|
||||
source "${0:h}/${_pacman_frontend}.zsh"
|
||||
fi
|
||||
else
|
||||
_pacman_sudo='sudo '
|
||||
fi
|
||||
|
||||
#
|
||||
@ -34,49 +36,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'
|
||||
|
||||
|
@ -20,8 +20,6 @@ if [[ "$OSTYPE" == darwin* ]]; then
|
||||
perl_path="$HOME/Library/Perl/5.12"
|
||||
|
||||
if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then
|
||||
manpath=("$perl_path/man" $manpath)
|
||||
|
||||
if [[ ! -s "$cache_file" ]]; then
|
||||
perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file"
|
||||
fi
|
||||
@ -31,12 +29,6 @@ if [[ "$OSTYPE" == darwin* ]]; then
|
||||
|
||||
unset perl_path
|
||||
unset cache_file
|
||||
|
||||
# Set environment variables for launchd processes.
|
||||
for env_var in PERL_LOCAL_LIB_ROOT PERL_MB_OPT PERL_MM_OPT PERL5LIB; do
|
||||
launchctl setenv "$env_var" "${(P)env_var}" &!
|
||||
done
|
||||
unset env_var
|
||||
fi
|
||||
|
||||
#
|
||||
|
@ -34,7 +34,7 @@ including a function that displays help or a function used to preview it.
|
||||
|
||||
**Do not call this function directly.**
|
||||
|
||||
The most basic example of this function can be seen bellow.
|
||||
The most basic example of this function can be seen below.
|
||||
|
||||
function prompt_name_setup {
|
||||
PROMPT='%m%# '
|
||||
|
@ -1,223 +0,0 @@
|
||||
#
|
||||
# A two line customizable theme (colored in blue and white by default).
|
||||
#
|
||||
# Author:
|
||||
# shura <shura1991@gmail.com>
|
||||
#
|
||||
# Features:
|
||||
# - Two lines.
|
||||
# - VCS integration.
|
||||
# - Customizable.
|
||||
#
|
||||
# Settings (:prezto:module:prompt:theme:borra):
|
||||
# - plugins: list of plugins (array)
|
||||
# - prefix: right-side of plugin wrapper (string)
|
||||
# - separator: plugin separator (string)
|
||||
# - suffix: left-side of plugin wrapper (string)
|
||||
# - top: beginning of first line (string)
|
||||
# - bottom: beginning of second line (string)
|
||||
# - prompt: right-side of second line (string)
|
||||
# - rprompt: right prompt enable or disable (bool)
|
||||
#
|
||||
# Plugins settings (:prezto:module:prompt:theme:borra:plugin:$plugin):
|
||||
# Version Control Systems:
|
||||
# - enable: vcs enable backends (array)
|
||||
# - format: vcs backends format (string):
|
||||
# * %b: backend name (to write a bold-end, escape it using %%b)
|
||||
# * %i: formatted text according to zstyle ':vcs_info:*' formats (or actionformats)
|
||||
# User and Host:
|
||||
# - format: username and hostname format (string):
|
||||
# * %u: username
|
||||
# * %h: hostname
|
||||
# Example:
|
||||
# zstyle ':prezto:module:prompt:theme:borra' separator ' '
|
||||
#
|
||||
# Screenshots:
|
||||
# http://i.imgur.com/rEgWv.png
|
||||
# http://ascii.io/a/1310
|
||||
#
|
||||
|
||||
function +borra-pts {
|
||||
print -n '/dev/%y'
|
||||
}
|
||||
|
||||
function +borra-rvm-info {
|
||||
if (( ! $+functions[rvm] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local rb="$(rvm-prompt s)"
|
||||
if [[ -z "${rb}" ]]; then
|
||||
print "$(rvm-prompt i v p r)" || print "${rb}"
|
||||
fi
|
||||
}
|
||||
|
||||
function +borra-userhost {
|
||||
local format
|
||||
local res
|
||||
zstyle -s ':prezto:module:prompt:theme:borra:plugin:userhost' format 'format'
|
||||
zformat -f res "$format" u:'%(!.%SROOT%s.%n)' h:'%m'
|
||||
print -n "$res"
|
||||
}
|
||||
|
||||
function +borra-vcs-info {
|
||||
local res=""
|
||||
local sep="$1"
|
||||
local backend
|
||||
local enabled
|
||||
local format
|
||||
local s
|
||||
|
||||
vcs_info # need VCS_INFO_backends
|
||||
zstyle -a ':prezto:module:prompt:theme:borra:plugin:vcs' enable 'enabled'
|
||||
zstyle -s ':prezto:module:prompt:theme:borra:plugin:vcs' format 'format'
|
||||
|
||||
for backend in ${VCS_INFO_backends[@]}; do
|
||||
if (( $+enabled[$backend] )); then
|
||||
continue
|
||||
fi
|
||||
|
||||
zstyle ':vcs_info:*' enable "$backend"
|
||||
vcs_info || continue
|
||||
|
||||
if [[ -z "${vcs_info_msg_0_}" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
zformat -f s "$format" "b:$backend" "i:$vcs_info_msg_0_"
|
||||
|
||||
res+="$(prompt_borra_wrap_plugin "$s" "$sep")"
|
||||
|
||||
if [[ -z "$sep" && ! -z "$res" ]]; then
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' separator 'sep'
|
||||
fi
|
||||
done
|
||||
|
||||
print -n -- "$res"
|
||||
return 23
|
||||
}
|
||||
|
||||
function +vi-git-status-untracked {
|
||||
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
|
||||
hook_com[unstaged]=' %F{red}⚑%f'
|
||||
fi
|
||||
}
|
||||
|
||||
function prompt_borra_set_zstyle_if_not_set {
|
||||
zstyle -T "$1" "$2" && zstyle "$@"
|
||||
}
|
||||
|
||||
function prompt_borra_wrap_plugin {
|
||||
local prefix
|
||||
local suffix
|
||||
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' prefix 'prefix'
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' suffix 'suffix'
|
||||
|
||||
print -n -- "${2}${prefix}${1}${suffix}"
|
||||
}
|
||||
|
||||
function prompt_borra_render_item {
|
||||
local res
|
||||
|
||||
res="$($1 "$2" 2>/dev/null)"
|
||||
case "$?" in
|
||||
(0)
|
||||
prompt_borra_wrap_plugin "$res" "$2"
|
||||
;;
|
||||
(23)
|
||||
print -n "$res"
|
||||
;;
|
||||
(*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function prompt_borra_render_plugins {
|
||||
local res=""
|
||||
local plugin
|
||||
local -a plugins
|
||||
local sep
|
||||
|
||||
zstyle -a ':prezto:module:prompt:theme:borra' plugins 'plugins'
|
||||
|
||||
for plugin in "$plugins[@]"; do
|
||||
res+="$(prompt_borra_render_item "+borra-$plugin" "$sep")"
|
||||
if [[ -z "$sep" && ! -z "$res" ]]; then
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' separator 'sep'
|
||||
fi
|
||||
done
|
||||
|
||||
print -n "$res"
|
||||
}
|
||||
|
||||
function prompt_borra_create_prompt {
|
||||
local plugins="$(prompt_borra_render_plugins)"
|
||||
local res=""
|
||||
local top
|
||||
local bottom
|
||||
local prompt
|
||||
|
||||
if [[ ! -z "$plugins" ]]; then
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' top 'top'
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' bottom 'bottom'
|
||||
|
||||
res="
|
||||
${top}${plugins}
|
||||
${bottom}"
|
||||
|
||||
fi
|
||||
|
||||
zstyle -s ':prezto:module:prompt:theme:borra' prompt 'prompt'
|
||||
print -n "${res}${prompt}"
|
||||
}
|
||||
|
||||
function prompt_borra_precmd {
|
||||
local rprompt
|
||||
PROMPT="$(prompt_borra_create_prompt)"
|
||||
zstyle -b ':prezto:module:prompt:theme:borra' rprompt 'rprompt'
|
||||
if [[ "$rprompt" = yes ]]; then
|
||||
RPROMPT='%(?..%F{red}%? ↵%f)'
|
||||
else
|
||||
RPROMPT=''
|
||||
fi
|
||||
}
|
||||
|
||||
function prompt_borra_setup {
|
||||
setopt LOCAL_OPTIONS
|
||||
unsetopt XTRACE KSH_ARRAYS
|
||||
prompt_opts=(cr percent subst)
|
||||
|
||||
# Load required functions.
|
||||
autoload -Uz add-zsh-hook
|
||||
autoload -Uz vcs_info
|
||||
|
||||
# Add hook for calling git-info before each command.
|
||||
add-zsh-hook precmd prompt_borra_precmd
|
||||
|
||||
# Call vcs_info to populate $VCS_INFO_backends.
|
||||
vcs_info
|
||||
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' plugins 'userhost' 'pts' 'rvm-info' 'vcs-info'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' prefix '%F{blue}(%f'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' separator '%F{blue}-%f'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' suffix '%F{blue}%)%f'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' top '%F{blue}╭-%f'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' bottom '%F{blue}╰─%f'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' prompt '%F{blue}(%f%B%$((COLUMNS / 2))<...<%~%<<%b%F{blue})%F{yellow}>%f '
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra' rprompt 'yes'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra:plugin:vcs' enable "$VCS_INFO_backends[@]"
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra:plugin:vcs' format '%b: %i'
|
||||
prompt_borra_set_zstyle_if_not_set ':prezto:module:prompt:theme:borra:plugin:userhost' format '%u%F{blue}@%f%h'
|
||||
|
||||
# Set vcs_info parameters.
|
||||
zstyle ':vcs_info:*' check-for-changes 'true'
|
||||
zstyle ':vcs_info:*' unstagedstr ' %F{yellow}⚑%f'
|
||||
zstyle ':vcs_info:*' stagedstr ' %F{green}⚑%f'
|
||||
zstyle ':vcs_info:*' actionformats '%b%u%c [%a]'
|
||||
zstyle ':vcs_info:*' formats '%b%u%c'
|
||||
zstyle ':vcs_info:*+set-message:*' hooks 'git-status-untracked'
|
||||
}
|
||||
|
||||
prompt_borra_setup "$@"
|
@ -46,10 +46,14 @@ function prompt_sorin_setup {
|
||||
# Add hook for calling git-info before each command.
|
||||
add-zsh-hook precmd prompt_sorin_precmd
|
||||
|
||||
# Set editor-info parameters.
|
||||
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
|
||||
zstyle ':prezto:module:editor:info:keymap:primary' format ' %B%F{red}❯%F{yellow}❯%F{green}❯%f%b'
|
||||
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format ' %F{red}♺%f'
|
||||
zstyle ':prezto:module:editor:info:keymap:alternate' format ' %B%F{green}❮%F{yellow}❮%F{red}❮%f%b'
|
||||
|
||||
# Set git-info parameters.
|
||||
zstyle ':prezto:module:git:info' verbose 'yes'
|
||||
zstyle ':prezto:module:git:info:action' format ':%%B%F{yellow}%s%f%%b'
|
||||
zstyle ':prezto:module:git:info:added' format ' %%B%F{green}✚%f%%b'
|
||||
zstyle ':prezto:module:git:info:ahead' format ' %%B%F{yellow}⬆%f%%b'
|
||||
@ -58,7 +62,7 @@ function prompt_sorin_setup {
|
||||
zstyle ':prezto:module:git:info:commit' format ':%F{green}%.7c%f'
|
||||
zstyle ':prezto:module:git:info:deleted' format ' %%B%F{red}✖%f%%b'
|
||||
zstyle ':prezto:module:git:info:modified' format ' %%B%F{blue}✱%f%%b'
|
||||
zstyle ':prezto:module:git:info:position' format ':%F{green}%p%f'
|
||||
zstyle ':prezto:module:git:info:position' format ':%F{red}%p%f'
|
||||
zstyle ':prezto:module:git:info:renamed' format ' %%B%F{magenta}➜%f%%b'
|
||||
zstyle ':prezto:module:git:info:stashed' format ' %%B%F{cyan}✭%f%%b'
|
||||
zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{yellow}═%f%%b'
|
||||
|
@ -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,31 +6,35 @@
|
||||
# Sebastian Wiesner <lunaryorn@googlemail.com>
|
||||
#
|
||||
|
||||
# Load pythonz into the shell session.
|
||||
if [[ -s $HOME/.pythonz/bin/pythonz ]]; then
|
||||
path=($HOME/.pythonz/bin $path)
|
||||
fi
|
||||
# Load manually installed pyenv into the shell session.
|
||||
if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then
|
||||
path=("$HOME/.pyenv/bin" $path)
|
||||
eval "$(pyenv init -)"
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[python] && ! $+commands[pythonz] )); then
|
||||
return 1
|
||||
fi
|
||||
# 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/MANPATH.
|
||||
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH.
|
||||
else
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
path=($HOME/Library/Python/*/bin(N) $path)
|
||||
manpath=($HOME/Library/Python/*/{,share/}man(N) $manpath)
|
||||
else
|
||||
# This is subject to change.
|
||||
path=($HOME/.local/bin $path)
|
||||
manpath=($HOME/.local/{,share/}man(N) $manpath)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[python] && ! $+commands[pyenv] )); then
|
||||
return 1
|
||||
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
|
||||
@ -44,14 +48,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'
|
||||
|
||||
|
@ -23,6 +23,6 @@ Authors
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://rsync.samba.org
|
||||
[2]: http://www.bombich.com/rsync.html
|
||||
[2]: http://help.bombich.com/kb/overview/credits#opensource
|
||||
[3]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
||||
|
@ -17,7 +17,7 @@ fi
|
||||
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system'
|
||||
|
||||
# Mac OS X and HFS+ Enhancements
|
||||
# http://www.bombich.com/rsync.html
|
||||
# http://help.bombich.com/kb/overview/credits#opensource
|
||||
if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then
|
||||
_rsync_cmd="${_rsync_cmd} --crtimes --acls --xattrs --fileflags --protect-decmpfs --force-change"
|
||||
fi
|
||||
|
@ -59,6 +59,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.
|
||||
|
||||
|
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
|
||||
|
@ -17,18 +17,15 @@ if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then
|
||||
# Load manually installed rbenv into the shell session.
|
||||
elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then
|
||||
path=("$HOME/.rbenv/bin" $path)
|
||||
eval "$(rbenv init - zsh)"
|
||||
eval "$(rbenv init - --no-rehash zsh)"
|
||||
|
||||
# Load package manager installed rbenv into the shell session.
|
||||
elif (( $+commands[rbenv] )); then
|
||||
eval "$(rbenv init - zsh)"
|
||||
eval "$(rbenv init - --no-rehash zsh)"
|
||||
|
||||
# Install local gems according to operating system conventions.
|
||||
# Prepend local gems bin directories to PATH.
|
||||
else
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
export GEM_HOME="$HOME/Library/Ruby/Gems/1.8"
|
||||
path=("$GEM_HOME/bin" $path)
|
||||
fi
|
||||
path=($HOME/.gem/ruby/*/bin(N) $path)
|
||||
fi
|
||||
|
||||
# Return if requirements are not found.
|
||||
@ -46,15 +43,16 @@ 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
|
||||
|
@ -10,9 +10,15 @@ Settings
|
||||
|
||||
Starts a GNU Screen session automatically when Zsh is launched.
|
||||
|
||||
To enable this feature, add the following line to *zpreztorc*:
|
||||
To enable this feature when launching Zsh in a local terminal, add the
|
||||
following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:screen' auto-start 'yes'
|
||||
zstyle ':prezto:module:screen:auto-start' local 'yes'
|
||||
|
||||
To enable this feature when launching Zsh in a SSH connection, add the
|
||||
following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:screen:auto-start' remote 'yes'
|
||||
|
||||
Aliases
|
||||
-------
|
||||
@ -28,6 +34,7 @@ Authors
|
||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
- [Georges Discry](https://github.com/gdiscry)
|
||||
|
||||
[1]: http://www.gnu.org/software/screen/
|
||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
@ -3,6 +3,7 @@
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
# Georges Discry <georges@discry.be>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
@ -14,7 +15,10 @@ fi
|
||||
# Auto Start
|
||||
#
|
||||
|
||||
if [[ -z "$STY" ]] && zstyle -t ':prezto:module:screen' auto-start; then
|
||||
if [[ -z "$STY" ]] && ( \
|
||||
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) ||
|
||||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \
|
||||
); then
|
||||
session="$(
|
||||
screen -list 2> /dev/null \
|
||||
| sed '1d;$d' \
|
||||
|
@ -1,36 +0,0 @@
|
||||
SSH-Agent
|
||||
=========
|
||||
|
||||
Provides for an easier use of [ssh-agent][1].
|
||||
|
||||
Settings
|
||||
--------
|
||||
|
||||
### Agent Forwarding
|
||||
|
||||
To enable SSH-Agent forwarding, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:ssh-agent' forwarding 'yes'
|
||||
|
||||
### Identities
|
||||
|
||||
To load multiple identities, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:ssh-agent' identities 'id_rsa' 'id_rsa2' 'id_github'
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
||||
|
||||
- [Robby Russell](https://github.com/robbyrussell)
|
||||
- [Theodore Robert Campbell Jr](https://github.com/trcjr)
|
||||
- [Joseph M. Reagle Jr.](https://github.com/reagle)
|
||||
- [Florent Thoumie](https://github.com/flz)
|
||||
- [Jonas Pfenniger](https://github.com/zimbatm)
|
||||
- [Gareth Owen](https://github.com/gwjo)
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
|
||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
@ -1,62 +0,0 @@
|
||||
#
|
||||
# Provides for an easier use of ssh-agent.
|
||||
#
|
||||
# Authors:
|
||||
# Robby Russell <robby@planetargon.com>
|
||||
# Theodore Robert Campbell Jr <trcjr@stupidfoot.com>
|
||||
# Joseph M. Reagle Jr. <reagle@mit.edu>
|
||||
# Florent Thoumie <flz@xbsd.org>
|
||||
# Jonas Pfenniger <jonas@pfenniger.name>
|
||||
# gwjo <gowen72@gmail.com>
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[ssh-agent] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Load dependencies.
|
||||
pmodload 'helper'
|
||||
|
||||
_ssh_agent_env="${HOME}/.ssh/environment-${HOST}"
|
||||
_ssh_agent_forwarding=
|
||||
|
||||
function _ssh-agent-start {
|
||||
local -a identities
|
||||
|
||||
# Start ssh-agent and setup the environment.
|
||||
rm -f "${_ssh_agent_env}"
|
||||
ssh-agent > "${_ssh_agent_env}"
|
||||
chmod 600 "${_ssh_agent_env}"
|
||||
source "${_ssh_agent_env}" > /dev/null
|
||||
|
||||
# Load identities.
|
||||
zstyle -a ':prezto:module:ssh-agent' identities 'identities'
|
||||
|
||||
if (( ${#identities} > 0 )); then
|
||||
ssh-add "${HOME}/.ssh/${^identities[@]}"
|
||||
else
|
||||
ssh-add
|
||||
fi
|
||||
}
|
||||
|
||||
# Test if agent-forwarding is enabled.
|
||||
zstyle -b ':prezto:module:ssh-agent' forwarding '_ssh_agent_forwarding'
|
||||
if is-true "${_ssh_agent_forwarding}" && [[ -n "$SSH_AUTH_SOCK" ]]; then
|
||||
# Add a nifty symlink for screen/tmux if agent forwarding.
|
||||
[[ -L "$SSH_AUTH_SOCK" ]] || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen
|
||||
elif [[ -s "${_ssh_agent_env}" ]]; then
|
||||
# Source SSH settings, if applicable.
|
||||
source "${_ssh_agent_env}" > /dev/null
|
||||
ps -ef | grep "${SSH_AGENT_PID}" | grep -q 'ssh-agent$' || {
|
||||
_ssh-agent-start;
|
||||
}
|
||||
else
|
||||
_ssh-agent-start;
|
||||
fi
|
||||
|
||||
# Tidy up after ourselves.
|
||||
unfunction _ssh-agent-start
|
||||
unset _ssh_agent_{env,forwarding}
|
||||
|
28
modules/ssh/README.md
Normal file
28
modules/ssh/README.md
Normal file
@ -0,0 +1,28 @@
|
||||
SSH
|
||||
===
|
||||
|
||||
Provides for an easier use of [SSH][1] by setting up [ssh-agent][2].
|
||||
|
||||
This module is disabled on Mac OS X due to custom Apple SSH support rendering it
|
||||
unnecessary.
|
||||
|
||||
Settings
|
||||
--------
|
||||
|
||||
### Identities
|
||||
|
||||
To load multiple identities, add the following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github'
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
*The authors of this module should be contacted via the [issue tracker][3].*
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://www.openssh.com
|
||||
[2]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
|
||||
[3]: https://github.com/sorin-ionescu/prezto/issues
|
||||
|
51
modules/ssh/init.zsh
Normal file
51
modules/ssh/init.zsh
Normal file
@ -0,0 +1,51 @@
|
||||
#
|
||||
# Provides for an easier use of SSH by setting up ssh-agent.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if [[ "$OSTYPE" == darwin* ]] || (( ! $+commands[ssh-agent] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Set the path to the SSH directory.
|
||||
_ssh_dir="$HOME/.ssh"
|
||||
|
||||
# Set the path to the environment file if not set by another module.
|
||||
_ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env}"
|
||||
|
||||
# Set the path to the persistent authentication socket.
|
||||
_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock"
|
||||
|
||||
# Start ssh-agent if not started.
|
||||
if [[ ! -S "$SSH_AUTH_SOCK" ]]; then
|
||||
# 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.
|
||||
if [[ -S "$SSH_AUTH_SOCK" && "$SSH_AUTH_SOCK" != "$_ssh_agent_sock" ]]; then
|
||||
ln -sf "$SSH_AUTH_SOCK" "$_ssh_agent_sock"
|
||||
export SSH_AUTH_SOCK="$_ssh_agent_sock"
|
||||
fi
|
||||
|
||||
# Load identities.
|
||||
if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then
|
||||
zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities'
|
||||
if (( ${#_ssh_identities} > 0 )); then
|
||||
ssh-add "$_ssh_dir/${^_ssh_identities[@]}" 2> /dev/null
|
||||
else
|
||||
ssh-add 2> /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
# Clean up.
|
||||
unset _ssh_{dir,identities} _ssh_agent_{env,sock}
|
||||
|
@ -38,6 +38,18 @@ To enable all highlighters, add the following to *zpreztorc*:
|
||||
'cursor' \
|
||||
'root'
|
||||
|
||||
### Highlighting Styles
|
||||
|
||||
Each syntax highlighter defines styles used to highlight tokens.
|
||||
|
||||
To highlight, for example, builtins, commands, and functions in blue instead of
|
||||
green, add the following to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:syntax-highlighting' styles \
|
||||
'builtin' 'bg=blue' \
|
||||
'command' 'bg=blue' \
|
||||
'function' 'bg=blue'
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
|
Submodule modules/syntax-highlighting/external updated: 45194671af...f289a9f8e7
@ -11,11 +11,19 @@ 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 the highlighters.
|
||||
# Set highlighters.
|
||||
zstyle -a ':prezto:module:syntax-highlighting' highlighters 'ZSH_HIGHLIGHT_HIGHLIGHTERS'
|
||||
if (( ${#ZSH_HIGHLIGHT_HIGHLIGHTERS[@]} == 0 )); then
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets cursor)
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main)
|
||||
fi
|
||||
|
||||
# Set highlighting styles.
|
||||
typeset -A syntax_highlighting_styles
|
||||
zstyle -a ':prezto:module:syntax-highlighting' styles 'syntax_highlighting_styles'
|
||||
for syntax_highlighting_style in "${(k)syntax_highlighting_styles[@]}"; do
|
||||
ZSH_HIGHLIGHT_STYLES[$syntax_highlighting_style]="$syntax_highlighting_styles[$syntax_highlighting_style]"
|
||||
done
|
||||
unset syntax_highlighting_style{s,}
|
||||
|
||||
|
@ -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}"
|
||||
|
||||
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
|
||||
# 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
|
||||
|
||||
# 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 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.
|
||||
function set-titles-preexec {
|
||||
if zstyle -t ':prezto:module:terminal' auto-title; then
|
||||
set-titles-with-command "$2"
|
||||
add-zsh-hook preexec _terminal-set-titles-with-command
|
||||
fi
|
||||
}
|
||||
add-zsh-hook preexec set-titles-preexec
|
||||
|
||||
|
@ -10,12 +10,18 @@ Settings
|
||||
|
||||
Starts a tmux session automatically when Zsh is launched.
|
||||
|
||||
To enable this feature, add the following line to *zpreztorc*:
|
||||
To enable this feature when launching Zsh in a local terminal, add the
|
||||
following line to *zpreztorc*:
|
||||
|
||||
zstyle ':prezto:module:tmux' auto-start 'yes'
|
||||
zstyle ':prezto:module:tmux:auto-start' local 'yes'
|
||||
|
||||
It will create a background session named _#Prezto_ and attach every new shell
|
||||
to it.
|
||||
To enable this feature when launching Zsh in a SSH connection, add the
|
||||
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.
|
||||
|
||||
To avoid keeping open sessions, this module sets `destroy-unattached off` on
|
||||
the background session and `destroy-unattached on` on every other session
|
||||
@ -47,6 +53,7 @@ Authors
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
- [Colin Hebert](https://github.com/ColinHebert)
|
||||
- [Georges Discry](https://github.com/gdiscry)
|
||||
|
||||
[1]: http://tmux.sourceforge.net
|
||||
[2]: https://github.com/sorin-ionescu/prezto/issues/62
|
||||
|
@ -4,6 +4,7 @@
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
# Colin Hebert <hebert.colin@gmail.com>
|
||||
# Georges Discry <georges@discry.be>
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
@ -15,10 +16,16 @@ fi
|
||||
# Auto Start
|
||||
#
|
||||
|
||||
if [[ -z "$TMUX" ]] && zstyle -t ':prezto:module:tmux' auto-start; then
|
||||
if [[ -z "$TMUX" ]] && ( \
|
||||
( [[ -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'
|
||||
|
||||
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
|
||||
|
||||
|
@ -104,17 +104,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 +123,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'
|
||||
|
@ -38,7 +38,7 @@ small as possible and should only define environment variables.
|
||||
### zprofile
|
||||
|
||||
This file is similar to zlogin, but it is sourced before zshrc. It was added
|
||||
for [KornShell][1] fans. See the description of zlogin bellow for what it may
|
||||
for [KornShell][1] fans. See the description of zlogin below for what it may
|
||||
contain.
|
||||
|
||||
zprofile and zlogin are not meant to be used concurrently but can be done so.
|
||||
@ -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.
|
||||
|
||||
|
@ -9,16 +9,9 @@
|
||||
{
|
||||
# Compile the completion dump to increase startup speed.
|
||||
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
|
||||
if [[ "$zcompdump" -nt "${zcompdump}.zwc" || ! -s "${zcompdump}.zwc" ]]; then
|
||||
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
|
||||
zcompile "$zcompdump"
|
||||
fi
|
||||
|
||||
# Set environment variables for launchd processes.
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
for env_var in PATH MANPATH; do
|
||||
launchctl setenv "$env_var" "${(P)env_var}"
|
||||
done
|
||||
fi
|
||||
} &!
|
||||
|
||||
# Print a random, hopefully interesting, adage.
|
||||
|
@ -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'
|
||||
@ -39,7 +39,7 @@ zstyle ':prezto:load' pmodule \
|
||||
#
|
||||
|
||||
# Set the key mapping style to 'emacs' or 'vi'.
|
||||
zstyle ':prezto:module:editor' keymap 'emacs'
|
||||
zstyle ':prezto:module:editor' key-bindings 'emacs'
|
||||
|
||||
# Auto convert .... to ../..
|
||||
# zstyle ':prezto:module:editor' dot-expansion 'yes'
|
||||
@ -58,6 +58,19 @@ zstyle ':prezto:module:editor' keymap 'emacs'
|
||||
# Set the command prefix on non-GNU systems.
|
||||
# zstyle ':prezto:module:gnu-utility' prefix 'g'
|
||||
|
||||
#
|
||||
# History Substring Search
|
||||
#
|
||||
|
||||
# Set the query found color.
|
||||
# zstyle ':prezto:module:history-substring-search:color' found ''
|
||||
|
||||
# Set the query not found color.
|
||||
# zstyle ':prezto:module:history-substring-search:color' not-found ''
|
||||
|
||||
# Set the search globbing flags.
|
||||
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
||||
|
||||
#
|
||||
# Pacman
|
||||
#
|
||||
@ -78,50 +91,58 @@ zstyle ':prezto:module:prompt' theme 'sorin'
|
||||
# Screen
|
||||
#
|
||||
|
||||
# Auto start a session when Zsh is launched.
|
||||
# zstyle ':prezto:module:screen' auto-start 'yes'
|
||||
# Auto start a session when Zsh is launched in a local terminal.
|
||||
# zstyle ':prezto:module:screen:auto-start' local 'yes'
|
||||
|
||||
# Auto start a session when Zsh is launched in a SSH connection.
|
||||
# zstyle ':prezto:module:screen:auto-start' remote 'yes'
|
||||
|
||||
#
|
||||
# GPG-Agent
|
||||
# SSH
|
||||
#
|
||||
|
||||
# Enable SSH-Agent protocol emulation.
|
||||
# zstyle ':prezto:module:gpg-agent' ssh-support 'yes'
|
||||
|
||||
#
|
||||
# SSH-Agent
|
||||
#
|
||||
|
||||
# Enable ssh-agent forwarding.
|
||||
# zstyle ':prezto:module:ssh-agent' forwarding 'yes'
|
||||
|
||||
# Set ssh-agent identities to load.
|
||||
# zstyle ':prezto:module:ssh-agent' identities 'id_rsa' 'id_rsa2' 'id_github'
|
||||
# Set the SSH identities to load into the agent.
|
||||
# zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
|
||||
|
||||
#
|
||||
# Syntax Highlighting
|
||||
#
|
||||
|
||||
# Set syntax highlighters.
|
||||
# By default main, brackets, and cursor are enabled.
|
||||
# By default, only the main highlighter is enabled.
|
||||
# zstyle ':prezto:module:syntax-highlighting' highlighters \
|
||||
# 'main' \
|
||||
# 'brackets' \
|
||||
# 'pattern' \
|
||||
# 'cursor' \
|
||||
# 'root'
|
||||
#
|
||||
# Set syntax highlighting styles.
|
||||
# zstyle ':prezto:module:syntax-highlighting' styles \
|
||||
# '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
|
||||
#
|
||||
|
||||
# Auto start a session when Zsh is launched.
|
||||
# zstyle ':prezto:module:tmux' auto-start 'yes'
|
||||
# Auto start a session when Zsh is launched in a local terminal.
|
||||
# zstyle ':prezto:module:tmux:auto-start' local '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,96 +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
|
||||
eval "$(locale)"
|
||||
fi
|
||||
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
# Paths
|
||||
#
|
||||
|
||||
typeset -gU cdpath fpath mailpath manpath path
|
||||
typeset -gUT INFOPATH infopath
|
||||
|
||||
# Set the the list of directories that cd searches.
|
||||
# cdpath=(
|
||||
# $cdpath
|
||||
# )
|
||||
|
||||
# Set the list of directories that info searches for manuals.
|
||||
infopath=(
|
||||
/usr/local/share/info
|
||||
/usr/share/info
|
||||
$infopath
|
||||
)
|
||||
|
||||
# Set the list of directories that man searches for manuals.
|
||||
manpath=(
|
||||
/usr/local/share/man
|
||||
/usr/share/man
|
||||
$manpath
|
||||
)
|
||||
|
||||
for path_file in /etc/manpaths.d/*(.N); do
|
||||
manpath+=($(<$path_file))
|
||||
done
|
||||
unset path_file
|
||||
|
||||
# Set the list of directories that Zsh searches for programs.
|
||||
path=(
|
||||
/usr/local/{bin,sbin}
|
||||
/usr/{bin,sbin}
|
||||
/{bin,sbin}
|
||||
$path
|
||||
)
|
||||
|
||||
for path_file in /etc/paths.d/*(.N); do
|
||||
path+=($(<$path_file))
|
||||
done
|
||||
unset path_file
|
||||
|
||||
#
|
||||
# Temporary Files
|
||||
#
|
||||
|
||||
if [[ -d "$TMPDIR" ]]; then
|
||||
export TMPPREFIX="${TMPDIR%/}/zsh"
|
||||
if [[ ! -d "$TMPPREFIX" ]]; then
|
||||
mkdir -p "$TMPPREFIX"
|
||||
fi
|
||||
# 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