diff options
Diffstat (limited to 'oh-my-zsh/plugins/perl')
-rw-r--r-- | oh-my-zsh/plugins/perl/README.md | 37 | ||||
-rw-r--r-- | oh-my-zsh/plugins/perl/perl.plugin.zsh | 56 |
2 files changed, 93 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/perl/README.md b/oh-my-zsh/plugins/perl/README.md new file mode 100644 index 0000000..dd9b7dc --- /dev/null +++ b/oh-my-zsh/plugins/perl/README.md @@ -0,0 +1,37 @@ +# Perl + +This plugin adds [perl](https://www.perl.org/) useful aliases/functions. + +To use it, add `perl` to the plugins array in your zshrc file: + +```zsh +plugins=(... perl) +``` + +## Aliases + +| Aliases | Command | Description | +| :------------ | :----------------- | :------------------------------------- | +| pbi | `perlbrew install` | Install specific perl version | +| pbl | `perlbrew list` | List all perl version installed | +| pbo | `perlbrew off` | Go back to the system perl | +| pbs | `perlbrew switch` | Turn it back on | +| pbu | `perlbrew use` | Use specific version of perl | +| pd | `perldoc` | Show the perl documentation | +| ple | `perl -wlne` | Use perl like awk/sed | +| latest-perl | `curl ...` | Show the latest stable release of Perl | + +## Functions + +* `newpl`: creates a basic Perl script file and opens it with $EDITOR. + +* `pgs`: Perl Global Substitution: `pgs <find_pattern> <replace_pattern> <filename>` + Looks for `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`. + +* `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]` + Lets you work with pipes or files (if no `<filename>` provided, use stdin). + +## Requirements + +In order to make this work, you will need to have perl installed. +More info on the usage and install: https://www.perl.org/get.html diff --git a/oh-my-zsh/plugins/perl/perl.plugin.zsh b/oh-my-zsh/plugins/perl/perl.plugin.zsh new file mode 100644 index 0000000..678e88d --- /dev/null +++ b/oh-my-zsh/plugins/perl/perl.plugin.zsh @@ -0,0 +1,56 @@ +# https://github.com/dbbolton +# +# Below are some useful Perl-related aliases/functions that I use with zsh. + + +# Aliases ################################################################### + +# perlbrew ######## +alias pbi='perlbrew install' +alias pbl='perlbrew list' +alias pbo='perlbrew off' +alias pbs='perlbrew switch' +alias pbu='perlbrew use' + +# Perl ############ + +# perldoc` +alias pd='perldoc' + +# use perl like awk/sed +alias ple='perl -wlne' + +# show the latest stable release of Perl +alias latest-perl='curl -s https://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\' + + + +# Functions ################################################################# + +# newpl - creates a basic Perl script file and opens it with $EDITOR +newpl () { + # set $EDITOR to 'vim' if it is undefined + [[ -z $EDITOR ]] && EDITOR=vim + + # if the file exists, just open it + [[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1 + + # if it doesn't, make it, and open it + [[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\ + "\n\n" > $1 && $EDITOR $1 +} + + +# pgs - Perl Global Substitution +# find pattern = 1st arg +# replace pattern = 2nd arg +# filename = 3rd arg +pgs() { # [find] [replace] [filename] + perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3" +} + + +# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files. +prep() { # [pattern] [filename unless STDOUT] + perl -nle 'print if /'"$1"'/;' $2 +} |