forked from ohmyzsh/ohmyzsh
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/master'
* upstream/master: (41 commits) refactor(git-glow): Add config interpolation for git-flow messages (ohmyzsh#7481) feat(git): Add aliases for 'git commit -S -s [-m]' (ohmyzsh#7616) feat(pm2): Adding a pm2 plugin (ohmyzsh#7684) feat(supervisor): Add aliases for supervisor (ohmyzsh#5819) perf(mercurial): speed up mercurial plugin (ohmyzsh#4591) feat(nvm): introduce customizable list of command that triggers lazy loading (ohmyzsh#9946) feat(zoxide): add new plugin for zoxide (a smarter cd CLI tool) (ohmyzsh#9950) feat(git): Add alias for 'git checkout --recurse-submodules' (ohmyzsh#9958) feat(pip): add alias for updating all requirements via pip (ohmyzsh#9965) style(mlh): update the official theme of Major League Hacking (ohmyzsh#9971) feat(kubectx): adding a new plugin for 'kubectx' (ohmyzsh#6114) style(kubectl): Being more explicit alias to the main CLI tool instead of to another alias (ohmyzsh#6567) feat(plugins): Add Ag completion (ohmyzsh#3534) feat(plugins): New plugins for samtools and bedtools (ohmyzsh#3574) feat(plugins): Plugin "debian": Switch order of "apt" and "aptitude" for detection (ohmyzsh#7533) feat(supervisord): autocomplete for restart command (ohmyzsh#5144) feat(plugins): Add helper function to get current mercurial bookmark (ohmyzsh#4970) feat(plugins): Add a new showpkg alias to ubuntu plugin (ohmyzsh#4653) feat(plugins): Add new isodate plugin for friendly date formatting commands (ohmyzsh#9963) feat(plugins): add gpr alias for /git pull -rebase/ which is easier to remember (ohmyzsh#9964) ...
- Loading branch information
Showing
56 changed files
with
1,017 additions
and
111 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# The Silver Searcher | ||
|
||
This plugin provides completion support for [`ag`](https://github.com/ggreer/the_silver_searcher). | ||
|
||
To use it, add ag to the plugins array in your zshrc file. | ||
|
||
```zsh | ||
plugins=(... aws) | ||
``` | ||
|
||
## INSTALLATION NOTES | ||
|
||
Besides oh-my-zsh, `ag` needs to be installed by following these steps: https://github.com/ggreer/the_silver_searcher#installing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#compdef ag | ||
#autoload | ||
|
||
typeset -A opt_args | ||
|
||
# Took the liberty of not listing every option… specially aliases and -D | ||
_ag () { | ||
local -a _1st_arguments | ||
_1st_arguments=( | ||
'--ackmate:Print results in AckMate-parseable format' | ||
{'-A','--after'}':[LINES] Print lines after match (Default: 2)' | ||
{'-B','--before'}':[LINES] Print lines before match (Default: 2)' | ||
'--break:Print newlines between matches in different files' | ||
'--nobreak:Do not print newlines between matches in different files' | ||
{'-c','--count'}':Only print the number of matches in each file' | ||
'--color:Print color codes in results (Default: On)' | ||
'--nocolor:Do not print color codes in results' | ||
'--color-line-number:Color codes for line numbers (Default: 1;33)' | ||
'--color-match:Color codes for result match numbers (Default: 30;43)' | ||
'--color-path:Color codes for path names (Default: 1;32)' | ||
'--column:Print column numbers in results' | ||
{'-H','--heading'}':Print file names (On unless searching a single file)' | ||
'--noheading:Do not print file names (On unless searching a single file)' | ||
'--line-numbers:Print line numbers even for streams' | ||
{'-C','--context'}':[LINES] Print lines before and after matches (Default: 2)' | ||
'-g:[PATTERN] Print filenames matching PATTERN' | ||
{'-l','--files-with-matches'}':Only print filenames that contain matches' | ||
{'-L','--files-without-matches'}':Only print filenames that do not contain matches' | ||
'--no-numbers:Do not print line numbers' | ||
{'-o','--only-matching'}':Prints only the matching part of the lines' | ||
'--print-long-lines:Print matches on very long lines (Default: 2k characters)' | ||
'--passthrough:When searching a stream, print all lines even if they do not match' | ||
'--silent:Suppress all log messages, including errors' | ||
'--stats:Print stats (files scanned, time taken, etc.)' | ||
'--vimgrep:Print results like vim :vimgrep /pattern/g would' | ||
{'-0','--null'}':Separate filenames with null (for "xargs -0")' | ||
|
||
{'-a','--all-types'}':Search all files (does not include hidden files / .gitignore)' | ||
'--depth:[NUM] Search up to NUM directories deep (Default: 25)' | ||
{'-f','--follow'}':Follow symlinks' | ||
{'-G','--file-search-regex'}':[PATTERN] Limit search to filenames matching PATTERN' | ||
'--hidden:Search hidden files (obeys .*ignore files)' | ||
{'-i','--ignore-case'}':Match case insensitively' | ||
'--ignore:[PATTERN] Ignore files/directories matching PATTERN' | ||
{'-m','--max-count'}':[NUM] Skip the rest of a file after NUM matches (Default: 10k)' | ||
{'-p','--path-to-agignore'}':[PATH] Use .agignore file at PATH' | ||
{'-Q','--literal'}':Do not parse PATTERN as a regular expression' | ||
{'-s','--case-sensitive'}':Match case' | ||
{'-S','--smart-case'}':Insensitive match unless PATTERN has uppercase (Default: On)' | ||
'--search-binary:Search binary files for matches' | ||
{'-t','--all-text'}':Search all text files (Hidden files not included)' | ||
{'-u','--unrestricted'}':Search all files (ignore .agignore and _all_)' | ||
{'-U','--skip-vcs-ignores'}':Ignore VCS files (stil obey .agignore)' | ||
{'-v','--invert-match'}':Invert match' | ||
{'-w','--word-regexp'}':Only match whole words' | ||
{'-z','--search-zip'}':Search contents of compressed (e.g., gzip) files' | ||
|
||
'--list-file-types:list of supported file types' | ||
) | ||
|
||
if [[ $words[-1] =~ "^-" ]]; then | ||
_describe -t commands "ag options" _1st_arguments && ret=0 | ||
else | ||
_files && ret=0 | ||
fi | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
## Aliases Cheatsheet | ||
|
||
**Maintainer:** [@hqingyi](https://github.com/hqingyi) | ||
|
||
With lots of 3rd-party amazing aliases installed, this plugin helps list the shortcuts | ||
that are currently available based on the plugins you have enabled. | ||
|
||
Enable this plugin by adding it to your `plugins` definition in `~/.zshrc`. | ||
|
||
``` | ||
plugins=(aliases) | ||
``` | ||
|
||
Requirements: Python needs to be installed. | ||
|
||
### Usage | ||
|
||
``` | ||
acs: group all alias | ||
acs $keywordquickly filter alias & highlight | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# with lots of 3rd-party amazing aliases installed, just need something to explore it quickly. | ||
# | ||
# - acs: alias cheatsheet | ||
# group alias by command, pass addition argv to grep. | ||
ALIASES_PLUGIN_ROOT=$(cd `dirname $0` && pwd) | ||
function acs(){ | ||
which python >>/dev/null | ||
[[ $? -eq 1 ]] && echo "[error]no python executable detected!" && return | ||
alias | python $ALIASES_PLUGIN_ROOT/cheatsheet.py $@ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/usr/bin/env python | ||
import sys | ||
import itertools | ||
import termcolor | ||
|
||
def parse(line): | ||
left = line[0:line.find('=')].strip() | ||
right = line[line.find('=')+1:].strip('\'"\n ') | ||
try: | ||
cmd = next(part for part in right.split() if len([char for char in '=<>' if char in part])==0) | ||
except StopIteration: | ||
cmd = right | ||
return (left, right, cmd) | ||
|
||
def cheatsheet(lines): | ||
exps = [ parse(line) for line in lines ] | ||
cheatsheet = {'_default': []} | ||
for key, group in itertools.groupby(exps, lambda exp:exp[2]): | ||
group_list = [ item for item in group ] | ||
if len(group_list)==1: | ||
target_aliases = cheatsheet['_default'] | ||
else: | ||
if key not in cheatsheet: | ||
cheatsheet[key] = [] | ||
target_aliases = cheatsheet[key] | ||
target_aliases.extend(group_list) | ||
return cheatsheet | ||
|
||
def pretty_print_group(key, aliases, hightlight=None): | ||
if len(aliases) == 0: | ||
return | ||
group_hl_formatter = lambda g, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'red') for part in ('[%s]' % g).split(hl)]) | ||
alias_hl_formatter = lambda alias, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'green') for part in ('\t%s = %s' % alias[0:2]).split(hl)]) | ||
group_formatter = lambda g: termcolor.colored('[%s]' % g, 'red') | ||
alias_formatter = lambda alias: termcolor.colored('\t%s = %s' % alias[0:2], 'green') | ||
if hightlight and len(hightlight)>0: | ||
print (group_hl_formatter(key, hightlight)) | ||
print ('\n'.join([alias_hl_formatter(alias, hightlight) for alias in aliases])) | ||
else: | ||
print (group_formatter(key)) | ||
print ('\n'.join([alias_formatter(alias) for alias in aliases])) | ||
print ('') | ||
|
||
def pretty_print(cheatsheet, wfilter): | ||
sorted_key = sorted(cheatsheet.keys()) | ||
for key in sorted_key: | ||
aliases = cheatsheet.get(key) | ||
if not wfilter: | ||
pretty_print_group(key, aliases, wfilter) | ||
else: | ||
pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) | ||
|
||
if __name__ == '__main__': | ||
lines = sys.stdin.readlines() | ||
pretty_print(cheatsheet(lines), sys.argv[1] if len(sys.argv)>1 else None) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
# coding: utf-8 | ||
# Copyright (c) 2008-2011 Volvox Development Team | ||
# | ||
# 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 the Software without restriction, including without limitation the rights | ||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
# copies of the Software, and to permit persons to whom the Software is | ||
# furnished to do so, subject to the following conditions: | ||
# | ||
# The above copyright notice and this permission notice shall be included in | ||
# all copies or substantial portions of the Software. | ||
# | ||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
# THE SOFTWARE. | ||
# | ||
# Author: Konstantin Lepa <konstantin.lepa@gmail.com> | ||
|
||
"""ANSII Color formatting for output in terminal.""" | ||
|
||
from __future__ import print_function | ||
import os | ||
|
||
|
||
__ALL__ = [ 'colored', 'cprint' ] | ||
|
||
VERSION = (1, 1, 0) | ||
|
||
ATTRIBUTES = dict( | ||
list(zip([ | ||
'bold', | ||
'dark', | ||
'', | ||
'underline', | ||
'blink', | ||
'', | ||
'reverse', | ||
'concealed' | ||
], | ||
list(range(1, 9)) | ||
)) | ||
) | ||
del ATTRIBUTES[''] | ||
|
||
|
||
HIGHLIGHTS = dict( | ||
list(zip([ | ||
'on_grey', | ||
'on_red', | ||
'on_green', | ||
'on_yellow', | ||
'on_blue', | ||
'on_magenta', | ||
'on_cyan', | ||
'on_white' | ||
], | ||
list(range(40, 48)) | ||
)) | ||
) | ||
|
||
|
||
COLORS = dict( | ||
list(zip([ | ||
'grey', | ||
'red', | ||
'green', | ||
'yellow', | ||
'blue', | ||
'magenta', | ||
'cyan', | ||
'white', | ||
], | ||
list(range(30, 38)) | ||
)) | ||
) | ||
|
||
|
||
RESET = '\033[0m' | ||
|
||
|
||
def colored(text, color=None, on_color=None, attrs=None): | ||
"""Colorize text. | ||
Available text colors: | ||
red, green, yellow, blue, magenta, cyan, white. | ||
Available text highlights: | ||
on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white. | ||
Available attributes: | ||
bold, dark, underline, blink, reverse, concealed. | ||
Example: | ||
colored('Hello, World!', 'red', 'on_grey', ['blue', 'blink']) | ||
colored('Hello, World!', 'green') | ||
""" | ||
if os.getenv('ANSI_COLORS_DISABLED') is None: | ||
fmt_str = '\033[%dm%s' | ||
if color is not None: | ||
text = fmt_str % (COLORS[color], text) | ||
|
||
if on_color is not None: | ||
text = fmt_str % (HIGHLIGHTS[on_color], text) | ||
|
||
if attrs is not None: | ||
for attr in attrs: | ||
text = fmt_str % (ATTRIBUTES[attr], text) | ||
|
||
text += RESET | ||
return text | ||
|
||
|
||
def cprint(text, color=None, on_color=None, attrs=None, **kwargs): | ||
"""Print colorize text. | ||
It accepts arguments of print function. | ||
""" | ||
|
||
print((colored(text, color, on_color, attrs)), **kwargs) | ||
|
||
|
||
if __name__ == '__main__': | ||
print('Current terminal type: %s' % os.getenv('TERM')) | ||
print('Test basic colors:') | ||
cprint('Grey color', 'grey') | ||
cprint('Red color', 'red') | ||
cprint('Green color', 'green') | ||
cprint('Yellow color', 'yellow') | ||
cprint('Blue color', 'blue') | ||
cprint('Magenta color', 'magenta') | ||
cprint('Cyan color', 'cyan') | ||
cprint('White color', 'white') | ||
print(('-' * 78)) | ||
|
||
print('Test highlights:') | ||
cprint('On grey color', on_color='on_grey') | ||
cprint('On red color', on_color='on_red') | ||
cprint('On green color', on_color='on_green') | ||
cprint('On yellow color', on_color='on_yellow') | ||
cprint('On blue color', on_color='on_blue') | ||
cprint('On magenta color', on_color='on_magenta') | ||
cprint('On cyan color', on_color='on_cyan') | ||
cprint('On white color', color='grey', on_color='on_white') | ||
print('-' * 78) | ||
|
||
print('Test attributes:') | ||
cprint('Bold grey color', 'grey', attrs=['bold']) | ||
cprint('Dark red color', 'red', attrs=['dark']) | ||
cprint('Underline green color', 'green', attrs=['underline']) | ||
cprint('Blink yellow color', 'yellow', attrs=['blink']) | ||
cprint('Reversed blue color', 'blue', attrs=['reverse']) | ||
cprint('Concealed Magenta color', 'magenta', attrs=['concealed']) | ||
cprint('Bold underline reverse cyan color', 'cyan', | ||
attrs=['bold', 'underline', 'reverse']) | ||
cprint('Dark blink concealed white color', 'white', | ||
attrs=['dark', 'blink', 'concealed']) | ||
print(('-' * 78)) | ||
|
||
print('Test mixing:') | ||
cprint('Underline red on grey color', 'red', 'on_grey', | ||
['underline']) | ||
cprint('Reversed green on red color', 'green', 'on_red', ['reverse']) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Bedtools plugin | ||
|
||
This plugin adds support for the [bedtools suite](http://bedtools.readthedocs.org/en/latest/): | ||
|
||
* Adds autocomplete options for all bedtools sub commands. |
Oops, something went wrong.