mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-10-16 11:40:46 +00:00
Compare commits
13 commits
ed58efb97a
...
3eee65c38a
Author | SHA1 | Date | |
---|---|---|---|
|
3eee65c38a | ||
|
99e2c31484 | ||
|
e52598a5cc | ||
|
d91944d47e | ||
|
865291cb7a | ||
|
9bcafe1c27 | ||
|
b58bf31444 | ||
|
f246f4612a | ||
|
ca467bd9d9 | ||
|
5889f4cfc9 | ||
|
3cb5a9097b | ||
|
aa9043f5ea | ||
|
bc0433e518 |
8 changed files with 144 additions and 29 deletions
|
@ -57,6 +57,16 @@ function takeurl() {
|
|||
cd "$thedir"
|
||||
}
|
||||
|
||||
function takezip() {
|
||||
local data thedir
|
||||
data="$(mktemp)"
|
||||
curl -L "$1" > "$data"
|
||||
unzip "$data" -d "./"
|
||||
thedir="$(unzip -l "$data" | awk 'NR==4 {print $4}' | sed 's/\/.*//')"
|
||||
rm "$data"
|
||||
cd "$thedir"
|
||||
}
|
||||
|
||||
function takegit() {
|
||||
git clone "$1"
|
||||
cd "$(basename ${1%%.git})"
|
||||
|
@ -65,6 +75,8 @@ function takegit() {
|
|||
function take() {
|
||||
if [[ $1 =~ ^(https?|ftp).*\.(tar\.(gz|bz2|xz)|tgz)$ ]]; then
|
||||
takeurl "$1"
|
||||
elif [[ $1 =~ ^(https?|ftp).*\.(zip)$ ]]; then
|
||||
takezip "$1"
|
||||
elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]]; then
|
||||
takegit "$1"
|
||||
else
|
||||
|
|
12
lib/git.zsh
12
lib/git.zsh
|
@ -162,6 +162,18 @@ function git_current_branch() {
|
|||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
# Outputs the name of the previously checked out branch
|
||||
# Usage example: git pull origin $(git_current_branch)
|
||||
# rev-parse --symbolic-full-name @{-1} only prints if it is a branch
|
||||
function git_previous_branch() {
|
||||
local ref
|
||||
ref=$(__git_prompt_git rev-parse --quiet --symbolic-full-name @{-1} 2> /dev/null)
|
||||
local ret=$?
|
||||
if [[ $ret != 0 ]] || [[ -z $ref ]]; then
|
||||
return # no git repo or non-branch previous ref
|
||||
fi
|
||||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
# Gets the number of commits ahead from remote
|
||||
function git_commits_ahead() {
|
||||
|
|
|
@ -56,27 +56,110 @@ autoload -Uz is-at-least
|
|||
if is-at-least 4.2.0; then
|
||||
# open browser on urls
|
||||
if [[ -n "$BROWSER" ]]; then
|
||||
_browser_fts=(htm html de org net com at cx nl se dk)
|
||||
_browser_fts=(htm html xhtml)
|
||||
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
|
||||
# open editable text files in text editor
|
||||
if [[ -n "$VISUAL" ]] || [[ -n "$EDITOR" ]]; then
|
||||
_aliases_launch_editor() {
|
||||
# directly launch matched files with executable bit and shebang present
|
||||
if [[ -x "${1}" ]]; then
|
||||
read -r <"${1}"
|
||||
if [[ ${#REPLY} -ge 3 ]] && [[ ${REPLY:0:2} = '#!' ]]; then
|
||||
"$@"
|
||||
return $?
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "$VISUAL" ]]; then
|
||||
$VISUAL "$@"
|
||||
else
|
||||
$EDITOR "$@"
|
||||
fi
|
||||
}
|
||||
# Taken from the /language/metadata/property[name="globs"] sections of the
|
||||
# gtksourceview language definition files in
|
||||
# /usr/share/gtksourceview-3.0/language-specs/*.lang
|
||||
_editor_fts=(
|
||||
abnf as adb ads 4th forth asp am awk prg bib bsv boo cg h c cmake ctest
|
||||
cbl cob cbd cdb cdc hh hp hpp h++ cpp cxx cc C c++ cs css CSSL csv cu cuh
|
||||
desktop kdelnk diff patch rej d docbook bat cmd sys dot gv dpatch dtd dtl
|
||||
e eif erl hrl fcl frt fs f f90 f95 for F F90 fs g gd gi gap gdb gs glslv
|
||||
glslf go groovy hs lhs hx pro idl igm ini jade pug java js node ijs json
|
||||
geojson topojson jl kt tex ltx sty cls dtx ins bbl l lex flex la lai lo
|
||||
ll logcat lua m4 ac in make mak mk page markdown md mkd m mac MAC dem DEM
|
||||
wxm WXM build mo mop mxml n nrx nai nsh m j ml mli mll mly ocl ooc sign
|
||||
impl cl p pas txt TXT pl pm al perl t php php3 php4 phtml pig pc po pot
|
||||
prolog proto pp py3 py pyw R Rout r Rhistory Rtspec rst rb rake gemspe rs
|
||||
scala scm sce sci sh bash sml sig rq sql rnw Rnw snw Snw swift sv svh t2t
|
||||
tcl tk tera texi texinfo thrift toml tml lock vala vapi vb v vhd xml xspf
|
||||
siv smil smi sml kino xul xbel abw zabw glabe jnlp mml rdf rss wml xmi fo
|
||||
xslfo xslt xsl y yacc yaml yml
|
||||
)
|
||||
for ft in $_editor_fts; do alias -s $ft=_aliases_launch_editor; done
|
||||
fi
|
||||
|
||||
# open image files in image viewer
|
||||
if [[ -n "$XIVIEWER" ]]; then
|
||||
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
|
||||
# List inspired by https://en.wikipedia.org/wiki/Image_file_formats
|
||||
_image_fts=(
|
||||
#: Raster formats
|
||||
# JPEG, JPEG2000, HEIF/HEVC, JBIG
|
||||
jpg jpeg jpe jif jfif jfi jp2 j2k jpf jpx jpm mj2 heif heic jbg jbig
|
||||
# BMP, BPG, GIF, ICO/ANI, PCX, PNG+MNG, TGA, TIFF, WebP (Web)
|
||||
bmp bpg gif dib ico cur ani pcx png mng tga tiff tif webp
|
||||
# NetPBM, XBM/XPM/XWD (ASCII)
|
||||
pbm bgm ppm pnm xbm xpm xwd
|
||||
# CIFF, DNG, DPX, ECW, FITS, ICS, RGBE (HDR & Raw)
|
||||
crw dng dpx ecw fits ics ids fit fts hdr
|
||||
# DDS ICNS OpenRaster SunRaster (Other)
|
||||
dds icns ora ras sun
|
||||
#: Vector formats
|
||||
# CGM WMF Gerber IGES SVG
|
||||
cgm wmf emf wmz emz gbr iges svg svgz
|
||||
)
|
||||
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
|
||||
if [[ -n "$XMVIEWER" ]]; then
|
||||
_media_fts=(
|
||||
#: Audio (container) formats
|
||||
# https://en.wikipedia.org/wiki/Audio_file_format#List_of_formats
|
||||
aac act aiff ape au awb dct dss flac gsm m4a m4b mp3 mpc oga opus ra sln
|
||||
tta vox wav wma wv
|
||||
#: Video (container) formats
|
||||
# https://en.wikipedia.org/wiki/Video_file_format#List_of_video_file_formats
|
||||
mkv flv f4v f4p f4a f4b vob ogv drc gifv avi mov qt wmv yuv rmvb asf amv
|
||||
m4v mpg mp2 m2v mpeg mpe mpv svi 3g2 mxf nsv
|
||||
#: Container formats that may store both
|
||||
3gp ogg mogg mp4 m4p rm webm
|
||||
)
|
||||
for ft in $_media_fts; do alias -s $ft=$XMVIEWER; done
|
||||
fi
|
||||
|
||||
#read documents
|
||||
alias -s pdf=acroread
|
||||
alias -s ps=gv
|
||||
alias -s dvi=xdvi
|
||||
alias -s chm=xchm
|
||||
alias -s djvu=djview
|
||||
#open complex document formats using the system viewer
|
||||
_document_fts=(
|
||||
# Long-term storage formats
|
||||
djvu dvi fb2 epub pdf ps rtf
|
||||
# Office Binary & Office OpenXML
|
||||
doc docx docm ppt pptx pptm xls xlsx xlsm
|
||||
# OpenDocument
|
||||
odt fodt ods fods odp fodp odg fodg odf
|
||||
# Uniform Office Format
|
||||
uof uot uos uop
|
||||
# StarOffice
|
||||
sdw sxw sdc sxc sdd sci sda sxd smf sxm
|
||||
# WordPerfect
|
||||
wpd wp wp4 wp5 wp6 wp7
|
||||
# Others
|
||||
abw gnm gnumeric pages hwp
|
||||
)
|
||||
if type xdg-open >/dev/null; then
|
||||
for ft in $_document_fts; do alias -s $ft=xdg-open; done
|
||||
elif type open >/dev/null; then
|
||||
for ft in $_document_fts; do alias -s $ft=open; done
|
||||
fi
|
||||
|
||||
#list whats inside packed file
|
||||
alias -s zip="unzip -l"
|
||||
|
|
|
@ -15,22 +15,23 @@ plugins=(... terraform)
|
|||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command |
|
||||
|--------|----------------------------|
|
||||
| `tf` | `terraform` |
|
||||
| `tfa` | `terraform apply` |
|
||||
| `tfc` | `terraform console` |
|
||||
| `tfd` | `terraform destroy` |
|
||||
| `tff` | `terraform fmt` |
|
||||
| `tffr` | `terraform fmt -recursive` |
|
||||
| `tfi` | `terraform init` |
|
||||
| `tfiu` | `terraform init -upgrade` |
|
||||
| `tfo` | `terraform output` |
|
||||
| `tfp` | `terraform plan` |
|
||||
| `tfv` | `terraform validate` |
|
||||
| `tfs` | `terraform state` |
|
||||
| `tft` | `terraform test` |
|
||||
| `tfsh` | `terraform show` |
|
||||
| Alias | Command |
|
||||
|---------|----------------------------------|
|
||||
| `tf` | `terraform` |
|
||||
| `tfa` | `terraform apply` |
|
||||
| `tfaa` | `terraform apply -auto-approve` |
|
||||
| `tfc` | `terraform console` |
|
||||
| `tfd` | `terraform destroy` |
|
||||
| `tff` | `terraform fmt` |
|
||||
| `tffr` | `terraform fmt -recursive` |
|
||||
| `tfi` | `terraform init` |
|
||||
| `tfiu` | `terraform init -upgrade` |
|
||||
| `tfo` | `terraform output` |
|
||||
| `tfp` | `terraform plan` |
|
||||
| `tfv` | `terraform validate` |
|
||||
| `tfs` | `terraform state` |
|
||||
| `tft` | `terraform test` |
|
||||
| `tfsh` | `terraform show` |
|
||||
|
||||
|
||||
## Prompt function
|
||||
|
|
|
@ -17,6 +17,7 @@ function tf_version_prompt_info() {
|
|||
|
||||
alias tf='terraform'
|
||||
alias tfa='terraform apply'
|
||||
alias tfaa='terraform apply -auto-approve'
|
||||
alias tfc='terraform console'
|
||||
alias tfd='terraform destroy'
|
||||
alias tff='terraform fmt'
|
||||
|
|
|
@ -51,6 +51,7 @@ Available search contexts are:
|
|||
| `packagist` | `https://packagist.org/?query=` |
|
||||
| `gopkg` | `https://pkg.go.dev/search?m=package&q=` |
|
||||
| `chatgpt` | `https://chatgpt.com/?q=` |
|
||||
| `reddit` | `https://www.reddit.com/search/?q=` |
|
||||
|
||||
Also there are aliases for bang-searching DuckDuckGo:
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ function web_search() {
|
|||
packagist "https://packagist.org/?query="
|
||||
gopkg "https://pkg.go.dev/search?m=package&q="
|
||||
chatgpt "https://chatgpt.com/?q="
|
||||
reddit "https://www.reddit.com/search/?q="
|
||||
)
|
||||
|
||||
# check whether the search engine is supported
|
||||
|
@ -85,6 +86,7 @@ alias npmpkg='web_search npmpkg'
|
|||
alias packagist='web_search packagist'
|
||||
alias gopkg='web_search gopkg'
|
||||
alias chatgpt='web_search chatgpt'
|
||||
alias reddit='web_search reddit'
|
||||
|
||||
#add your own !bang searches here
|
||||
alias wiki='web_search duckduckgo \!w'
|
||||
|
|
|
@ -30,8 +30,9 @@ local return_code="%(?..%F{red}%? ↵%f)"
|
|||
local user_host="${PR_USER}%F{cyan}@${PR_HOST}"
|
||||
local current_dir="%B%F{blue}%~%f%b"
|
||||
local git_branch='$(git_prompt_info)'
|
||||
local venv_prompt='$(virtualenv_prompt_info)'
|
||||
|
||||
PROMPT="╭─${user_host} ${current_dir} \$(ruby_prompt_info) ${git_branch}
|
||||
PROMPT="╭─${venv_prompt}${user_host} ${current_dir} \$(ruby_prompt_info) ${git_branch}
|
||||
╰─$PR_PROMPT "
|
||||
RPROMPT="${return_code}"
|
||||
|
||||
|
@ -39,5 +40,7 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%F{yellow}‹"
|
|||
ZSH_THEME_GIT_PROMPT_SUFFIX="› %f"
|
||||
ZSH_THEME_RUBY_PROMPT_PREFIX="%F{red}‹"
|
||||
ZSH_THEME_RUBY_PROMPT_SUFFIX="›%f"
|
||||
ZSH_THEME_VIRTUALENV_PREFIX="%F{red}("
|
||||
ZSH_THEME_VIRTUALENV_SUFFIX=")%f "
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue