Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* 'master' of https://github.com/robbyrussell/oh-my-zsh:
  brew: fix disclaimer shown if mkdir is aliased
  Update endpoint from HTTP to HTTPS (ohmyzsh#5622)
  dircycle: fix error on insert-cycledleft if dirstack is empty
  Fix ohmyzsh#5604: No DIR ( directory ) colors (ohmyzsh#5605)
  Changed dsa --> rsa in zshrc.zsh-template file (ohmyzsh#5603)
  node: open module-specific node documentation (ohmyzsh#5572)
  Fix invalid "ls -G" alias.
  Check dircolors settings before using gls on darwin (ohmyzsh#5570)
  znt: Update to v2.2.7 (ohmyzsh#5576)
  common-aliases: check if `$XIVIEWER` is defined and minor fixes
  common-aliases: minor style fixes
  common-aliases: check if $BROWSER is defined on browser aliases
  PHP suffix alias should be removed
  Clarify how to open ~/.zshrc file in README.md
  • Loading branch information
freecastle committed Nov 14, 2016
2 parents 7929f3f + 62b0abd commit 01aa733
Show file tree
Hide file tree
Showing 13 changed files with 194 additions and 38 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ Oh My Zsh comes with a shit load of plugins to take advantage of. You can take a

#### Enabling Plugins

If you spot a plugin (or several) that you would like to use with Oh My Zsh, you will need to edit the `~/.zshrc` file. Once you open it with your favorite editor, you'll see a spot to list all the plugins that you'd like Oh My Zsh to load on initialization.
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.

For example, this line might begin to look like...
For example, this line might begin to look like this:

```shell
plugins=(git bundler osx rake ruby)
Expand Down
11 changes: 9 additions & 2 deletions lib/theme-and-appearance.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ autoload -U colors && colors
# Enable ls colors
export LSCOLORS="Gxfxcxdxbxegedabagacad"

# TODO organise this chaotic logic

if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
# Find the option for using colors in ls, depending on the version
if [[ "$OSTYPE" == netbsd* ]]; then
Expand All @@ -18,14 +20,19 @@ if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
colorls -G -d . &>/dev/null && alias ls='colorls -G'
elif [[ "$OSTYPE" == darwin* ]]; then
gls --color -d . &>/dev/null && alias ls='gls --color=tty' || alias ls='ls -G'
# this is a good alias, it works by default just using $LSCOLORS
ls -G . &>/dev/null && alias ls='ls -G'

# only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file)
# otherwise, gls will use the default color scheme which is ugly af
[[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty'
else
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
if [[ -z "$LS_COLORS" ]]; then
(( $+commands[dircolors] )) && eval "$(dircolors -b)"
fi

ls --color -d . &>/dev/null && alias ls='ls --color=tty' || alias ls='ls -G'
ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' }

# Take advantage of $LS_COLORS for completion as well.
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
Expand Down
2 changes: 1 addition & 1 deletion plugins/brew/brew.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ alias bubo='brew update && brew outdated'
alias bubc='brew upgrade && brew cleanup'
alias bubu='bubo && bubc'

if mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then
if command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then
print -P '%F{yellow}'Oh My Zsh brew plugin:
cat <<-'EOF'
Expand Down
17 changes: 10 additions & 7 deletions plugins/common-aliases/common-aliases.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,21 @@ alias mv='mv -i'
# depends on the SUFFIX :)
if is-at-least 4.2.0; then
# open browser on urls
_browser_fts=(htm html de org net com at cx nl se dk dk php)
for ft in $_browser_fts ; do alias -s $ft=$BROWSER ; done
if [[ -n "$BROWSER" ]]; then
_browser_fts=(htm html de org net com at cx nl se dk)
for ft in $_browser_fts; do alias -s $ft=$BROWSER; done
fi

_editor_fts=(cpp cxx cc c hh h inl asc txt TXT tex)
for ft in $_editor_fts ; do alias -s $ft=$EDITOR ; done
for ft in $_editor_fts; do alias -s $ft=$EDITOR; done

_image_fts=(jpg jpeg png gif mng tiff tif xpm)
for ft in $_image_fts ; do alias -s $ft=$XIVIEWER; done
if [[ -n "$XIVIEWER" ]]; then
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
for ft in $_image_fts; do alias -s $ft=$XIVIEWER; done
fi

_media_fts=(ape avi flv m4a mkv mov mp3 mpeg mpg ogg ogm rm wav webm)
for ft in $_media_fts ; do alias -s $ft=mplayer ; done
for ft in $_media_fts; do alias -s $ft=mplayer; done

#read documents
alias -s pdf=acroread
Expand All @@ -83,4 +87,3 @@ fi

# Make zsh know about hosts already accessed by SSH
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'

2 changes: 2 additions & 0 deletions plugins/dircycle/dircycle.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
# pushd -N: start counting from right of `dirs' output

switch-to-dir () {
[[ ${#dirstack} -eq 0 ]] && return

while ! builtin pushd -q $1 &>/dev/null; do
# We found a missing directory: pop it out of the dir stack
builtin popd -q $1
Expand Down
3 changes: 2 additions & 1 deletion plugins/node/node.plugin.zsh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Open the node api for your current version to the optional section.
# TODO: Make the section part easier to use.
function node-docs {
open_command "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
local section=${1:-all}
open_command "https://nodejs.org/docs/$(node --version)/api/$section.html"
}
17 changes: 17 additions & 0 deletions plugins/zsh-navigation-tools/NEWS
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-------------------------------------
CHANGES FROM PREVIOUS VERSIONS OF ZNT
-------------------------------------

Changes from 2.2.1 to 2.2.7
---------------------------

Tmux integration has been added – bind file znt-tmux.zsh in Tmux as
described in README.md and e.g. run local history on remote hosts. Tmux
opens new window with n-history, and pastes selected history entry into
immediate previous window (e.g. a remote session). Fixed plugin.zsh file
to not use (outer scope) positional parameters. This fixes problem with
Grlm's Zsh configuration. The file now doesn't use "test" builtin (but
[[ instead), because it can be shadowed by alias or command. Private
history has been fixed to not overwrite its history file with the same
content. This improves performance when switching to private history
view.
54 changes: 54 additions & 0 deletions plugins/zsh-navigation-tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,60 @@ want to copy your previous data (from e.g. ~/.zhistory) into the new location.

## News

* 06-10-2016
- Tmux-integration – Ctrl-b-h in Tmux to open n-history in new window.
Then select history entry, it will be copied to the original Tmux window.
Use this to execute local commands on remote hosts. All that is needed is
this line added to ~/.tmux.conf:

bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh"

* 16-05-2016
- n-kill has completion. It proposes *words* from what's in `ps -A`. Giving n-kill
arguments means grepping – it will start only with matching `ps` entries.

* 15-05-2016
- Fixed problem where zsh-syntax-highlighting could render n-history slow (for
long history entries).

* 14-05-2016
- Configuration can be set from zshrc. Example:

znt_list_instant_select=1
znt_list_border=0
znt_list_bold=1
znt_list_colorpair="green/black"
znt_functions_keywords=( "zplg" "zgen" "match" )
znt_cd_active_text="underline"
znt_env_nlist_coloring_color=$'\x1b[00;33m'
znt_cd_hotlist=( "~/.config/znt" "/usr/share/zsh/site-functions" "/usr/share/zsh"
"/usr/local/share/zsh/site-functions" "/usr/local/share/zsh"
"/usr/local/bin" )

* 10-05-2016
- Search query rotation – use Ctrl-A to rotate entered words right.
Words `1 2 3` become `3 1 2`.

* 09-05-2016
- New feature: n-help tool, available also from n-history via H key. It
displays help screen with various information on ZNT.

* 08-05-2016
- Approximate matching – pressing f or Ctrl-F will enter FIX mode, in
which 1 or 2 errors are allowed in what is searched. This utilizes
original Zsh approximate matching features and is intended to be used
after entering search query, when a typo is discovered.

* 06-05-2016
- Private history can be edited. Use e key or Ctrl-E for that when in
n-history. Your $EDITOR will start. This is a way to have handy set
of bookmarks prepared in private history's file.
- Border can be disabled. Use following snippet in ~/.config/znt/n-list.conf
or any other tool-targetted config file:

# Should draw the border?
local border=0

* 30-04-2016
- New feature: color themes. Use Ctrl-T and Ctrl-G to browse predefined
themes. They are listed in ~/.config/znt/n-list.conf. Use the file to
Expand Down
32 changes: 24 additions & 8 deletions plugins/zsh-navigation-tools/n-history
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ while (( 1 )); do
elif [ "$active_view" = "1" ]; then
if [ -s "$private_history_db" ]; then
local title=$'\x1b[00;32m'"Private history:"$'\x1b[00;00m\0'
() { fc -ap -R "$private_history_db"; list=( "$title" ${history[@]} ) }
() { fc -Rap "$private_history_db" 20000 0; list=( "$title" ${history[@]} ) }
else
list=( "Private history - history entries selected via this tool will be put here" )
fi
Expand Down Expand Up @@ -335,21 +335,37 @@ done

if [ "$REPLY" -gt 0 ]; then
selected="$reply[REPLY]"

# Append to private history
if [[ "$active_view" = "0" ]]; then
local newline=$'\n'
local selected_ph="${selected//$newline/\\$newline}"
print -r -- "$selected_ph" >> "$private_history_db"
fi

# TMUX?
if [[ "$ZNT_TMUX_MODE" = "1" ]]; then
tmux send -t "$ZNT_TMUX_ORIGIN_SESSION:$ZNT_TMUX_ORIGIN_WINDOW.$ZNT_TMUX_ORIGIN_PANE" "$selected"
tmux kill-window
return 0
# ZLE?
if [ "${(t)CURSOR}" = "integer-local-special" ]; then
elif [ "${(t)CURSOR}" = "integer-local-special" ]; then
zle .redisplay
zle .kill-buffer
LBUFFER+="$selected"

# Append to private history
local newline=$'\n'
selected="${selected//$newline/\\$newline}"
[ "$active_view" = "0" ] && print -r -- "$selected" >> "$private_history_db"
else
print -zr -- "$selected"
fi
else
[ "${(t)CURSOR}" = "integer-local-special" ] && zle redisplay
# TMUX?
if [[ "$ZNT_TMUX_MODE" = "1" ]]; then
tmux kill-window
# ZLE?
elif [[ "${(t)CURSOR}" = "integer-local-special" ]]; then
zle redisplay
fi
fi

return 0

# vim: set filetype=zsh:
3 changes: 2 additions & 1 deletion plugins/zsh-navigation-tools/n-list
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,9 @@ while (( 1 )); do
colsearch_pattern="${search_buffer// ##/|(#a2)}"
list=( "${(@M)list:#(#ia2)*$~search_pattern*}" )
else
# Patterns will be *foo*~^*bar* and (foo|bar)
# Pattern will be *foo*~^*bar* (inventor: Mikael Magnusson)
search_pattern="${search_buffer// ##/*~^*}"
# Pattern will be (foo|bar)
colsearch_pattern="${search_buffer// ##/|}"
list=( "${(@M)list:#(#i)*$~search_pattern*}" )
fi
Expand Down
50 changes: 50 additions & 0 deletions plugins/zsh-navigation-tools/znt-tmux.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/env zsh

# Copyright (c) 2016, Zsolt Lengyel
# Modifications copyright (c) 2016, Sebastian Gniazdowski

#
# This script opens a new, temporary tmux pane and runs n-history. When
# a selection is made, the result (history entry) is pasted back into
# original tmux pane, and the temporary pane is closed. This allows to
# use local history on remote machines.
#
# To use, put this line to your ~/.tmux.conf. The tool is invoked with:
# Ctrl+b h
#
# bind h run-shell -b "$ZNT_REPO_DIR/znt-tmux.zsh"
#

# get and save the current active tmux pane id
active_pane=$(tmux display -p -F ':#{session_id}:#I:#P:#{pane_active}:#{window_active}:#{session_attached}' )
a_active_pane=("${(@s/:/)active_pane}")

active_session=${a_active_pane[2]//$}
active_window=$a_active_pane[3]
active_pane=$a_active_pane[4]

# set variables for upcoming window
tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_MODE" 1
tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_SESSION" "$active_session"
tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_WINDOW" "$active_window"
tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_PANE" "$active_pane"

# create a new window in the active session and call it znt-hist
tmux new-window -t $active_session: -n znt-hist

# unset the variables, so only above single window has them
tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_MODE"
tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_SESSION"
tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_WINDOW"
tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_PANE"

# znt's session id
znt_active_pane=$(tmux display -p -F ':#{session_id}:#I:#P:#{pane_active}:#{window_active}:#{session_attached}' )
znt_a_active_pane=("${(@s/:/)znt_active_pane}")

znt_active_session=${znt_a_active_pane[2]//$}
znt_active_window=$znt_a_active_pane[3]
znt_active_pane=$znt_a_active_pane[4]

# call znt
tmux send -t "$znt_active_session:$znt_active_window.$znt_active_pane" n-history ENTER
35 changes: 20 additions & 15 deletions plugins/zsh-navigation-tools/zsh-navigation-tools.plugin.zsh
Original file line number Diff line number Diff line change
@@ -1,38 +1,43 @@
#!/usr/bin/env zsh

REPO_DIR="${0%/*}"
CONFIG_DIR="$HOME/.config/znt"
0="${(%):-%N}" # this gives immunity to functionargzero being unset
export ZNT_REPO_DIR="${0%/*}"
export ZNT_CONFIG_DIR="$HOME/.config/znt"

#
# Copy configs
#

if ! test -d "$HOME/.config"; then
mkdir "$HOME/.config"
if [[ ! -d "$HOME/.config" ]]; then
command mkdir "$HOME/.config"
fi

if ! test -d "$CONFIG_DIR"; then
mkdir "$CONFIG_DIR"
if [[ ! -d "$ZNT_CONFIG_DIR" ]]; then
command mkdir "$ZNT_CONFIG_DIR"
fi

# 9 files
set n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf
unset __ZNT_CONFIG_FILES
typeset -ga __ZNT_CONFIG_FILES
set +A __ZNT_CONFIG_FILES n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf

# Check for random 2 files if they exist
# This will shift 0 - 7 elements
shift $(( RANDOM % 8 ))
if ! test -f "$CONFIG_DIR/$1" || ! test -f "$CONFIG_DIR/$2"; then
shift $(( RANDOM % 8 )) __ZNT_CONFIG_FILES
if [[ ! -f "$ZNT_CONFIG_DIR/${__ZNT_CONFIG_FILES[1]}" || ! -f "$ZNT_CONFIG_DIR/${__ZNT_CONFIG_FILES[2]}" ]]; then
# Something changed - examine every file
set n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf
for i; do
if ! test -f "$CONFIG_DIR/$i"; then
cp "$REPO_DIR/.config/znt/$i" "$CONFIG_DIR"
set +A __ZNT_CONFIG_FILES n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf
unset __ZNT_CONFIG_FILE
typeset -g __ZNT_CONFIG_FILE
for __ZNT_CONFIG_FILE in "${__ZNT_CONFIG_FILES[@]}"; do
if [[ ! -f "$ZNT_CONFIG_DIR/$__ZNT_CONFIG_FILE" ]]; then
command cp "$ZNT_REPO_DIR/.config/znt/$__ZNT_CONFIG_FILE" "$ZNT_CONFIG_DIR"
fi
done
unset __ZNT_CONFIG_FILE
fi

# Don't leave positional parameters being set
set --
unset __ZNT_CONFIG_FILES

#
# Load functions
Expand Down
2 changes: 1 addition & 1 deletion templates/zshrc.zsh-template
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export LANG=en_US.UTF-8
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"
# export SSH_KEY_PATH="~/.ssh/rsa_id"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
Expand Down

0 comments on commit 01aa733

Please sign in to comment.