feat(revamp): add zsh and neovim configs, add an install script and a dependencies list

This commit is contained in:
2026-04-20 12:17:46 +02:00
parent f9f5b1e184
commit 27b1db55df
227 changed files with 13985 additions and 0 deletions
+113
View File
@@ -0,0 +1,113 @@
# Perl
Enables local [Perl][1] module installation on macOS and defines aliases.
## Local Module Installation
Perl versions older than 5.14 do not support the local installation of Perl
modules natively. This module allows for local installation of Perl modules on
macOS in _`~/Library/Perl/5.12`_ by altering the environment.
### Usage
For Perl versions older than 5.14, install _`local::lib`_.
```console
curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
tar xvf local-lib-1.008004.tar.gz
cd local-lib-1.008004
perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
make && make test && make install
```
Install _cpanminus_:
```console
curl -L http://cpanmin.us | perl - --self-upgrade
```
## Perlbrew
An alternative to the above is to use [Perlbrew][2], which allows for the
management of multiple, isolated Perl installations in the home directory.
## plenv
Yet another alternative is [_plenv_][3]. This is inspired from _rbenv_ and
enables switching between multiple binary installations.
The subcommands of _plenv_ is similar with _rbenv_.
## Aliases
Aliases are enabled by default. To disable them, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:perl:alias' skip 'yes'
```
### General
- `pl` is short for `perl`.
- `pld` looks up Perl documentation (`perldoc`).
- `ple` executes a one line program in a loop (`perl -wlne`).
### Perlbrew (plb)
- `plb` manages Perl environments.
- `plba` lists available Perl versions.
- `plbi` installs a Perl version.
- `plbl` lists installed Perl versions.
- `plbo` temporarily turns off Perlbrew.
- `plbO` turns off Perlbrew.
- `plbs` switches to a Perl version.
- `plbu` uninstalls a Perl version.
- `plbx` temporarily sets the Perl version to use.
### plenv (plv)
- `plv` manages Perl environments.
- `plvc` List all available plenv commands.
- `plvl` Set or show the local application-specific Perl version.
- `plvg` Set or show the global Perl version.
- `plvs` Set or show the shell-specific Perl version.
- `plvi` Install a Perl version using the perl-build plugin.
- `plvu` Uninstall a specific Perl version.
- `plvr` Rehash plenv shims (run this after installing executables).
- `plvv` Show the current Perl version and its origin.
- `plvV` List all Perl versions available to plenv.
- `plvw` Display the full path to an executable.
- `plvW` List all Perl versions that contain the given executable.
- `plvm` List cpan modules in current perl.
- `plvM` Migrate cpan modules from other version.
- `plvI` Install cpanm.
## Functions
- `perl-info` exposes information about the Perl environment via the
`$perl_info` associative array.
## Theming
To display the name of the current Perl version in a prompt, define the
following style in the `prompt_name_setup` function.
```sh
# %v - perl version.
zstyle ':prezto:module:perl:info:version' format 'version:%v'
```
Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call
`perl-info` in the `prompt_name_precmd` hook function.
## Authors
_The authors of this module should be contacted via the [issue tracker][4]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://www.perl.org
[2]: https://perlbrew.pl
[3]: https://github.com/tokuhirom/plenv
[4]: https://github.com/sorin-ionescu/prezto/issues
@@ -0,0 +1,34 @@
#
# Exposes information about the Perl environment via the $perl_info associative
# array.
#
# Authors:
# JINNOUCHI Yasushi <delphinus@remora.cx>
#
# function perl-info {
local version
local version_format
local version_formatted
# Clean up previous $perl_info.
unset perl_info
typeset -gA perl_info
if (( $+commands[perlbrew] )); then
version="${PERLBREW_PERL##*perl-}"
elif (( $+commands[plenv] )); then
version=$(plenv version-name)
elif (( $+commands[perl] )); then
version=$(perl -e 'printf "%vd", $^V')
fi
# Format version.
if [[ -n "$version" ]]; then
zstyle -s ':prezto:module:perl:info:version' format 'version_format'
zformat -f version_formatted "$version_format" "v:$version"
perl_info[version]="$version_formatted"
fi
# }
+99
View File
@@ -0,0 +1,99 @@
#
# Enables local Perl module installation on macOS and defines aliases.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[perl] )); then
return 1
fi
# Load dependencies.
pmodload 'helper'
#
# Load Perlbrew or plenv
#
# Load Perlbrew into the shell session.
if [[ -s "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/bashrc" ]]; then
source "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/bashrc"
# Load Perlbrew completion.
if [[ -s "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/perlbrew-completion.bash" ]]; then
source "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/perlbrew-completion.bash"
fi
# Load manually installed plenv into the shell session.
elif [[ -s "$HOME/.plenv/bin/plenv" ]]; then
path=("$HOME/.plenv/bin" $path)
eval "$(plenv init - --no-rehash zsh)"
# Load package manager installed plenv into the shell session.
elif (( $+commands[plenv] )); then
eval "$(plenv init - --no-rehash zsh)"
fi
#
# Local Module Installation
#
if is-darwin; then
# Perl is slow; cache its output.
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/perl-cache.zsh"
perl_path="$HOME/Library/Perl/5.12"
if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then
if [[ "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" || ! -s "$cache_file" ]]; then
mkdir -p "$cache_file:h"
perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file"
fi
source "$cache_file"
fi
unset cache_file perl_path
fi
#
# Aliases
#
if ! zstyle -t ':prezto:module:perl:alias' skip; then
# General
alias pl='perl'
alias pld='perldoc'
alias ple='perl -wlne'
# Perlbrew
if (( $+commands[perlbrew] )); then
alias plb='perlbrew'
alias plba='perlbrew available'
alias plbi='perlbrew install'
alias plbl='perlbrew list'
alias plbo='perlbrew off'
alias plbO='perlbrew switch-off'
alias plbs='perlbrew switch'
alias plbu='perlbrew use'
alias plbx='perlbrew uninstall'
elif (( $+commands[plenv] )); then
alias plv='plenv'
alias plvc='plenv commands'
alias plvl='plenv local'
alias plvg='plenv global'
alias plvs='plenv shell'
alias plvi='plenv install'
alias plvu='plenv uninstall'
alias plvr='plenv rehash'
alias plvv='plenv version'
alias plvV='plenv versions'
alias plvw='plenv which'
alias plvW='plenv whence'
alias plvm='plenv list-modules'
alias plvM='plenv migrate-modules'
alias plvI='plenv install-cpanm'
fi
fi