dot

packages and services management
Log | Files | Refs | README

commit 461a57f6f31b02614719879c789d8e6e281ff4d5
parent 01c59ef1a7cbd2c683cfe452d3741717bbbee920
Author: josuah <mail@josuah.net>
Date:   Tue, 11 Oct 2016 10:56:56 -0400

Added a config tool to manage the repo

Diffstat:
DSCRIPTS/build.sh | 167-------------------------------------------------------------------------------
DSCRIPTS/config | 7-------
DSCRIPTS/vim.sh | 19-------------------
Mabduco/config.h | 2+-
Abin/config | 44++++++++++++++++++++++++++++++++++++++++++++
Abin/config-build | 171+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RSCRIPTS/git.sh -> bin/config-git | 0
RSCRIPTS/link.sh -> bin/config-link | 0
RSCRIPTS/mail.sh -> bin/config-mail | 0
RSCRIPTS/sync.sh -> bin/config-sync | 0
Abin/config-vim | 15+++++++++++++++
Dbin/piped | 18------------------
Mshell/.config/shell/environment | 27+++++++++++++--------------
Mshell/.profile | 82++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mvim/.vim/vimrc | 15++++++---------
15 files changed, 292 insertions(+), 275 deletions(-)

diff --git a/SCRIPTS/build.sh b/SCRIPTS/build.sh @@ -1,167 +0,0 @@ -# Install sources from build receipes - - -# VARIABLES -# ------------------------------------------------------------------------------ - -PROGRAMS="${PROGRAMS:-$HOME/Programs}" -PREFIX="${LOCAL:-$HOME/.local}" -CONFIG="${CONFIG:-$HOME/Config}" - - -# FUNCTIONS -#------------------------------------------------------------------------------- - -help() -{ - printf '%s\n' " -USAGE - [-d|--download] [-i|--install] [-r|--remove] [-u|--update] PACKAGES - [-l|--link] - -PACKAGES" - find "$CONFIG/BUILD" -type f | while read file - do - name="${file#$CONFIG/BUILD/}" - - printf '\t%-12s ' "$name" - sed 's/^# //; q' "$file" - done | sort | more - exit 0 -} - -error() -{ - printf '%s: \033[1;31m%s\033[0m\n' "$(basename "$0")" "$1" 1>&2 - exit 1 -} - -info() -{ - printf '%s: \033[1m%s\033[0m\n' "$(basename "$0")" "$1" 1>&2 -} - -compile() -{ - local name="$1" tar="$2" - local PREFIX="$PROGRAMS/$name" - local dirs='bin doc etc include lib libexec man share' - - info "Installing $name" - - cd "$PREFIX" && mkdir -p $dirs - cd src && build "$name" - cd "$PREFIX" && rmdir -p --ignore-fail-on-non-empty * -} - -download() -{ - local name="$1" tar="$2" - local tmp="$(mktemp -u)" - - if [ -d "$PROGRAMS/$name/src" ] - then - error "'$name/src' already in $PROGRAMS" - else - info "Downloading $tar" - - case "$tar" in - *.tar ) opt='' ;; - *.tbz2 | *.tar.bz2 ) opt='j' ;; - *.tgz | *.tar.gz ) opt='z' ;; - *.txz | *.tar.xz ) opt='J' ;; - *) error 'not a known tar extension' ;; - esac - - mkdir -p "$tmp" "$PROGRAMS/$name" - wget -O - "$tar" | tar -xv"$opt" -f - -C "$tmp" 1> /dev/null - - mv "$tmp/"* "$PROGRAMS/$name/src" - #rm -r "$tmp" - fi -} - -remove() -{ - local name="$1" - - info "Removing $name" - rm -rf "$PROGRAMS/$name" -} - -index() -{ - local name="$1" - - info "Updating index in $PREFIX" - - find "$PROGRAMS/$name" -mindepth 2 -type f ! -path "*/src/*" \ - | while read path - do - mkdir -p "$(dirname "$PREFIX/${path#$PROGRAMS/*/}")" - ln -sf "$path" "$PREFIX/${path#$PROGRAMS/*/}" - done -} - -# -# Default build function -# -build() -{ - local build="$CONFIG/BUILD/$1" - - for patch in $(find "$CONFIG/$1" -name '*.diff') - do - patch -Np1 < "$patch" - done - - [ -f "$build/config.mk" ] && cp -f "$build/config.mk" . - [ -f "$build/config.h" ] && cp -f "$build/config.h" . - [ -f ./autogen.sh ] && ./autogen.sh - [ -f ./configure ] && ./configure --prefix="$PREFIX" - - make - make prefix="$PREFIX" PREFIX="$PREFIX" install clean - return 0 -} - - -# ALGORYTHM -#------------------------------------------------------------------------------- - -mkdir -p "$PROGRAMS" "$PREFIX" - -[ $# -eq 1 -a \( "$1" = '-l' -o "$1" != '--link' \) ] && index '' && exit - -[ $# -lt 2 ] && help -[ ! -f "$CONFIG/BUILD/$2" ] && error "$2 has no build script" - -# Build script specific to the program, with build() and tar='...' -. "$CONFIG/BUILD/$2" - -case "$1" in --d | --download ) - download "$2" "$tar" - index "$2" - ;; --i | --install ) - [ ! -d "$PROGRAMS/$name/src" ] && download "$2" "$tar" - compile "$2" - index "$2" - ;; --r | --remove ) - remove "$2" - ;; --u | --update ) - remove "$2" - download "$2" - compile "$2" - index "$2" - ;; -* | '' ) - help - ;; -esac - -# Remove broken links from the index -find -L "$PREFIX" -type l -exec rm {} \; diff --git a/SCRIPTS/config b/SCRIPTS/config @@ -1,7 +0,0 @@ -# ,--. ,-- * -# | ,--. ---. |- , ,--, -# | | | | | | | | | -# `--' `--' ' ' ' ' `--| 2016-10-10 -#--------------------- `--' ---------------------------------------------------- - - diff --git a/SCRIPTS/vim.sh b/SCRIPTS/vim.sh @@ -1,19 +0,0 @@ -# . . * ---. | * . . -# | / , --.-. |__' | , , ,--, , ---. |\ /| ,--. ---. ,--. ,--, ,--. .,-- -# |/ | | | | | | | | | | | | | | | | ,--| | | ,--| | | |--' | -# ' ' ' ' ' ' ' `--` `--| ' ' ' ' ' `--` ' ' `--` `--| `--' ' -#--------------------------- `--' ----------------------------- `--' ----------- - -bundle=~/.vim/bundle - -[ -d "$bundle" ] && rm -r "$bundle" ~/.vim/autoload/pathogen.vim -mkdir -p "$bundle" ~/.vim/autoload -wget -qO ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim - -sed '/^[[:space:]]*$/ d; /^[[:space:]]*#/d;' | while read plugin -do - wget -O- "http://github.com/$plugin/archive/master.tar.gz" \ - | tar -xvz -f- -C "$bundle" &> /dev/null & -done - -wait diff --git a/abduco/config.h b/abduco/config.h @@ -6,7 +6,7 @@ static char KEY_DETACH = CTRL('z'); /* redraw key to send a SIGWINCH signal to underlying process * (set to 0 to disable the redraw key) */ -static char KEY_REDRAW = 0; +static char KEY_REDRAW = CTRL('l'); /* Where to place the "abduco" directory storing all session socket files. * The first directory to succeed is used. */ diff --git a/bin/config b/bin/config @@ -0,0 +1,44 @@ +# ,--. ,-- * +# | ,--. ---. |- , ,--, +# | | | | | | | | | +# `--' `--' ' ' ' ' `--| 2016-10-11 +#--------------------- `--' ---------------------------------------------------- + + +# FUNCTIONS +#------------------------------------------------------------------------------- + +help() +{ + printf '%s\n' " +Usage: ${0##*/} COMMAND + +COMMAND" + + for script in "${0%/*}"/config-* + do + subcommand="${script#$0-}" + + printf '\t%-10s' "$subcommand" + sed '1 s/^# //; q' "$script" + done + + exit 0 +} + + +# ALGORYTHM +#------------------------------------------------------------------------------- + +[ $# -eq 0 ] && help + +if [ -l "$0-$1"* -o -f "$0-$1"* ] +then + subcommand="$1" + shift + "$0-$subcommand"* $* + exit $? +else + help +fi +;; diff --git a/bin/config-build b/bin/config-build @@ -0,0 +1,171 @@ +# Install sources from build receipes + + +# VARIABLES +# ------------------------------------------------------------------------------ + +PROGRAMS="${PROGRAMS:-$HOME/Programs}" +PREFIX="${LOCAL:-$HOME/.local}" +CONFIG="${CONFIG:-$HOME/Config}" + + +# FUNCTIONS +#------------------------------------------------------------------------------- + +help() +{ + printf '%s\n' " +Usage: ${0##*-} OPTION PACKAGE + +OPTION + d[ownload] Download PACKAGE's sources + i[nstall] Download then install PACKAGE + r[emove] Remove build PACKAGE and its sources + u[pdate] Delete, then download and install again PACKAGE + l[ink] Update links from ~${PROGRAMS#$HOME} to ~${PREFIX#$HOME} + +PACKAGE" + find "$CONFIG/BUILD" -type f | while read file + do + name="${file#$CONFIG/BUILD/}" + + printf '\t%-12s ' "$name" + sed 's/^# //; q' "$file" + done | sort | more + exit 0 +} + +error() +{ + printf '%s: \033[1;31m%s\033[0m\n' "$(basename "$0")" "$1" 1>&2 + exit 1 +} + +info() +{ + printf '%s: \033[1m%s\033[0m\n' "$(basename "$0")" "$1" 1>&2 +} + +compile() +{ + local name="$1" tar="$2" + local PREFIX="$PROGRAMS/$name" + local dirs='bin doc etc include lib libexec man share' + + info "Installing $name" + + cd "$PREFIX" && mkdir -p $dirs + cd src && build "$name" + cd "$PREFIX" && rmdir -p --ignore-fail-on-non-empty * +} + +download() +{ + local name="$1" tar="$2" + local tmp="$(mktemp -u)" + + [ -d "$PROGRAMS/$name/src" ] && error "'$name/src' already in $PROGRAMS" + + info "Downloading $tar" + + case "$tar" in + *.tar ) opt='' ;; + *.tbz2 | *.tar.bz2 ) opt='j' ;; + *.tgz | *.tar.gz ) opt='z' ;; + *.txz | *.tar.xz ) opt='J' ;; + *) error 'not a known tar extension' ;; + esac + + mkdir -p "$tmp" "$PROGRAMS/$name" + wget -O - "$tar" | tar -xv"$opt" -f - -C "$tmp" 1> /dev/null + + mv "$tmp/"* "$PROGRAMS/$name/src" + rm -rf "$tmp" +} + +remove() +{ + local name="$1" + + info "Removing $name" + rm -rf "$PROGRAMS/$name" +} + +index() +{ + local name="$1" + + info "Updating index in $PREFIX/$1" + + find "$PROGRAMS/$name" -mindepth 2 -type f ! -path "*/src/*" | + while read path + do + mkdir -p "$(dirname "$PREFIX/${path#$PROGRAMS/*/}")" + ln -sf "$path" "$PREFIX/${path#$PROGRAMS/*/}" + done +} + +# +# Default build function, to be overriden in the build recipes scripts +# +build() +{ + for patch in $(find "$CONFIG/$1" -name '*.diff') + do + patch -Np1 < "$patch" + done + + [ -f "$CONFIG/$1/config.mk" ] && cp -f "$CONFIG/$1/config.mk" . + [ -f "$CONFIG/$1/config.h" ] && cp -f "$CONFIG/$1/config.h" . + [ -f ./autogen.sh ] && ./autogen.sh + [ -f ./configure ] && ./configure --prefix="$PREFIX" + + make + make prefix="$PREFIX" PREFIX="$PREFIX" install clean + return 0 +} + + +# ALGORYTHM +#------------------------------------------------------------------------------- + +mkdir -p "$PROGRAMS" "$PREFIX" + +#[ $# -lt 2 ] && help + +# Build script specific to the program, with build() and tar='...' +if [ "$2" ] +then + [ ! -f "$CONFIG/BUILD/$2" ] && error "$2 has no build script" + . "$CONFIG/BUILD/$2" +fi + +case "$1" in +d | download ) + download "$2" "$tar" + index "$2" + ;; +i | install ) + [ ! -d "$PROGRAMS/$2/src" ] && download "$2" "$tar" + compile "$2" + index "$2" + ;; +r | remove ) + remove "$2" + ;; +u | update ) + remove "$2" + download "$2" + compile "$2" + index "$2" + ;; +l | link ) + index '' + ;; +* | '' ) + help + ;; +esac + +info "Removing broken links from $PREFIX" +find -L "$PREFIX" -type l -exec rm {} \; diff --git a/SCRIPTS/git.sh b/bin/config-git diff --git a/SCRIPTS/link.sh b/bin/config-link diff --git a/SCRIPTS/mail.sh b/bin/config-mail diff --git a/SCRIPTS/sync.sh b/bin/config-sync diff --git a/bin/config-vim b/bin/config-vim @@ -0,0 +1,15 @@ +# Downloads vim plugins from .vim/plugin into ~/.vim/bundle + +bundle=~/.vim/bundle + +[ -d "$bundle" ] && rm -r "$bundle" ~/.vim/autoload/pathogen.vim +mkdir -p "$bundle" ~/.vim/autoload +wget -qO ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim + +sed '/^[[:space:]]*$/ d; /^[[:space:]]*#/d;' | while read plugin +do + wget -O- "http://github.com/$plugin/archive/master.tar.gz" | + tar -xvz -f- -C "$bundle" 1> /dev/null & +done + +wait diff --git a/bin/piped b/bin/piped @@ -1,18 +0,0 @@ -#!/bin/sh -# * | -# ---. , ---. ,--. .--| -# | | | | | |--' | | -# |--' ' |--' `--' `--` 2016-10-07 -#-|------|---------------------------------------------------------------------- -# Put stdin to a file, open PAGER on it, and then print the file out. - -tmp="$(mktemp)" - -cat > "$tmp" - -(exec $PAGER "$tmp") 1>&2 - -cat "$tmp" -rm "$tmp" - -stty sane diff --git a/shell/.config/shell/environment b/shell/.config/shell/environment @@ -16,31 +16,30 @@ export EMAIL="mail@josuah.net" export EDITOR="vim" export ALTERNATE_EDITOR="vi" -export VISUAL="${EDITOR}" -export FCEDIT="${EDITOR}" -export PAGER="more" # Within tmux, less useless -export FILTER="fzy" # Like fzy, fzf, dmenu... +export VISUAL="$EDITOR" +export FCEDIT="$EDITOR" +export PAGER="more" # Within tmux, less is useless # DIRECTORIES #------------------------------------------------------------------------------- -export CONFIG="$HOME/Config" export PROGRAMS="$HOME/Programs" +export CONFIG="$HOME/Config" export LOCAL="$HOME/.local" -export MAIL="${HOME}/Mail/INBOX" -export ENV="${HOME}/.profile" -export XDG_CONFIG_HOME="${HOME}/.config" # If it is not set by default. -export XDG_CACHE_HOME="${HOME}/.cache" -export XDG_DATA_HOME="${HOME}/.local/share" -export ABDUCO_SOCKET_DIR="${XDG_CACHE_HOME}/" # With a trailing backslash. +export MAIL="$HOME/Mail/INBOX" +export ENV="$HOME/.profile" +export XDG_CONFIG_HOME="$HOME/.config" # If it is not set by default. +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_DATA_HOME="$HOME/.local/share" # PATHS #------------------------------------------------------------------------------- -export PATH="${LOCAL}/bin:${CONFIG}/bin:${PATH}" -export MANPATH="$LOCAL/share/man:$LOCAL/man:$MANPATH" +export PATH="$LOCAL/bin/$dir:$PATH" +export PATH="$LOCAL/bin:$CONFIG/bin:$PATH" export CPATH="$LOCAL/include:$CPATH" -export LD_LIBRARY_PATH="$LOCAL/lib:$LD_LIBRARY_PATH" +export MANPATH="$LOCAL/share/man:$LOCAL/man:$MANPATH" export LD_RUN_PATH="$LOCAL/lib:$LD_LIBRARY_PATH" +export LD_LIBRARY_PATH="$LOCAL/lib:$LD_LIBRARY_PATH" diff --git a/shell/.profile b/shell/.profile @@ -5,6 +5,9 @@ #------------------------------------------------------------------------------- # Shell configuration for any shell (dash, zsh, mksh, bash, busybox's ash...) +# Prevents to be run twice +[ "$PROFILE" ] && return 0 || PROFILE=1 + # Source other parts of shell configuration . ~/.config/shell/environment . ~/.config/shell/functions @@ -16,78 +19,76 @@ # Black Red Green Yellow Blue Purple Cyan White THEMES="\ solarized_light \ -P0ffddbb P1d0154b P2779900 P3ffa700 P4096daf P5dd6699 P600aa88 P7000000\ -P8bb9988 P9d0154b PA779900 PBffa700 PC096daf PD897f74 PE00aa88 PF222222\ +P0ffddbb P1d0154b P2779900 P3ffa700 P4096daf P5dd6699 P600aa88 P7000000 \ +P8bb9988 P9d0154b PA779900 PBffa700 PC096daf PD897f74 PE00aa88 PF222222 \ solarized_dark \ -P0002b36 P1dc322f P2859900 P3b58900 P4268bd2 P56c71c4 P62aa198 P793a1a1\ -P8657b83 P9dc322f PA859900 PBb58900 PC268bd2 PD6c71c4 PE2aa198 PFfdf6e3\ +P0002b36 P1dc322f P2859900 P3b58900 P4268bd2 P56c71c4 P62aa198 P793a1a1 \ +P8657b83 P9dc322f PA859900 PBb58900 PC268bd2 PD6c71c4 PE2aa198 PFfdf6e3 \ ghost_in_the_shell \ -P0000000 P191265C P2439a64 P3ccdd66 P455aaaa P5516583 P64a8f86 P799bbbb\ -P8334444 P9E71E5B PA72f4a0 PBf5ff8B PC99bbff PD676cb0 PE00ffff PFffffff\ +P0000000 P191265C P2439a64 P3ccdd66 P455aaaa P5516583 P64a8f86 P799bbbb \ +P8334444 P9E71E5B PA72f4a0 PBf5ff8B PC99bbff PD676cb0 PE00ffff PFffffff \ coal \ -P0000000 P1ee3333 P288ff44 P3ffcc55 P477aaaa P5888888 P655ee99 P7cccccc\ -P8555555 P9ff6666 PAaaff66 PBffff99 PCaaddff PDaaaaaa PE99ffbb PFffffff\ +P0000000 P1ee3333 P288ff44 P3ffcc55 P477aaaa P5888888 P655ee99 P7cccccc \ +P8555555 P9ff6666 PAaaff66 PBffff99 PCaaddff PDaaaaaa PE99ffbb PFffffff \ drakula \ -P0282a36 P1cc4343 P242c763 P3ffb86c P46272a4 P5bd93f9 P66fb9c9 P7e6e6d5\ -P8888db4 P9ff5555 PA50fa7b PBf1fa8c PC8196d6 PDff79c6 PE8be9fd PFffffff\ +P0282a36 P1cc4343 P242c763 P3ffb86c P46272a4 P5bd93f9 P66fb9c9 P7e6e6d5 \ +P8888db4 P9ff5555 PA50fa7b PBf1fa8c PC8196d6 PDff79c6 PE8be9fd PFffffff \ gotham \ -P00a0f14 P1c33027 P226a98b P3edb54c P4195465 P54e5165 P633859d P798d1ce\ -P8406068 P9d26939 PA30dbb3 PBffd280 PC268099 PD888ba5 PE599caa PFd3ebe9\ +P00a0f14 P1c33027 P226a98b P3edb54c P4195465 P54e5165 P633859d P798d1ce \ +P8406068 P9d26939 PA30dbb3 PBffd280 PC268099 PD888ba5 PE599caa PFd3ebe9 \ monokai \ -P048483e P1dc2566 P28fc029 P3d4c96e P455bcce P59358fe P656b7a5 P7acada1\ -P876715e P9fa2772 PAa7e22e PBe7db75 PC66d9ee PDae82ff PE66efd5 PFdfe1d3\ +P048483e P1dc2566 P28fc029 P3d4c96e P455bcce P59358fe P656b7a5 P7acada1 \ +P876715e P9fa2772 PAa7e22e PBe7db75 PC66d9ee PDae82ff PE66efd5 PFdfe1d3 \ gruvbox \ -P0282828 P1cc241d P298971a P3d79921 P4458588 P5b16286 P6689d6a P7d5c4a1\ -P8928374 P9fb4934 PAb8bb26 PBfabd2f PC83a598 PDd2869b PE8ec07c PFffffff\ +P0282828 P1cc241d P298971a P3d79921 P4458588 P5b16286 P6689d6a P7d5c4a1 \ +P8928374 P9fb4934 PAb8bb26 PBfabd2f PC83a598 PDd2869b PE8ec07c PFffffff \ zenburn \ -P0191d1b P19C6363 P260b48a P3dfaf8f P4506070 P5dc8cc3 P68cd0d3 P7dcdccc\ -P8709080 P9dca3a3 PAbfebbf PBf0dfaf PC94bff3 PDec93d3 PE93e0e3 PFffffff\ +P0191d1b P19C6363 P260b48a P3dfaf8f P4506070 P5dc8cc3 P68cd0d3 P7dcdccc \ +P8709080 P9dca3a3 PAbfebbf PBf0dfaf PC94bff3 PDec93d3 PE93e0e3 PFffffff \ " # PROMPT #------------------------------------------------------------------------------- -ps1() -{ - code="$?" +export PS1='$( + local code="$?" # Error code [ "$code" -eq 0 ] && color=32 || color=31 - printf '\n \033[1;30m>\033[0;%sm>\033[1m>\033[0m ' "$color" + printf "\n \033[1;30m>\033[0;%sm>\033[1m>\033[0m " "$color" # Update tmux status line at each new prompt [ "$TMUX" ] && tmux refresh-client -S -} - -export PS1='$(ps1)' -export PS2='│ ' +)' +export PS2=' > ' +export PS3=' > ' # ALIAS #------------------------------------------------------------------------------- -alias l='ls -F -w 80 --color' -alias ll='l -lh' -alias la='l -A' -alias lla='l -Alh' -alias v='$VISUAL' -alias p='$PAGER' -alias t='tmux attach &>/dev/null || tmux new' -alias f='find . -type f ! -path "*/.git/*" | fzf --margin=3,6' -alias d='find . -type d ! -path "*/.git/*" | fzf --margin=3,6' -alias c='cd "$(find . -maxdepth 4 -mindepth 1 -type d | fzf --margin=3,6)"' -alias g='grep --color=always' -alias myip='curl icanhazip.com' -alias lines='find . -name "*.[ch]" | xargs wc -l' +alias l='ls -F --color' +alias ll='l -lh' +alias la='l -A' +alias lla='l -Alh' +alias v='$VISUAL' +alias p='$PAGER' +alias t='tmux attach &>/dev/null || tmux new' +alias f='find . -type f ! -path "*/.git/*" | fzf --margin=3,6' +alias d='find . -type d ! -path "*/.git/*" | fzf --margin=3,6' +alias c='cd "$(find . -maxdepth 4 -mindepth 1 -type d | fzf --margin=3,6)"' +alias g='grep --color=always' +alias myip='curl icanhazip.com' +alias lines='find . -name "*.[ch]" | xargs wc -l' # STARTUP @@ -97,5 +98,6 @@ alias lines='find . -name "*.[ch]" | xargs wc -l' # Attach to tmux right away command -v tmux &> /dev/null && if [ -z "$TMUX" ] -then tmux attach &> /dev/null || tmux new +then + tmux attach &> /dev/null || tmux new fi diff --git a/vim/.vim/vimrc b/vim/.vim/vimrc @@ -1,7 +1,7 @@ -" * -" . , , --.-. .,-- ,--. -" \ / | | | | | | -" ' ' ' ' ' ' `--' 2016-10-08 +" . . * +" | / , --.-. .,-- ,--. +" |/ | | | | | | +" ' ' ' ' ' ' `--' 2016-10-11 "------------------------------------------------------------------------------- " Config for vim using vim's features rather than a lot of plugins @@ -53,11 +53,8 @@ nmap <Leader>t :pwd \| echo '' \| tags \| echo ''<CR>:tag nmap <Leader>" : echo '' \| registers <CR> nmap <Leader>' : echo '' \| marks <CR>:' nmap <Leader>m :silent !make clean<CR>:silent make \| redraw! \| clist<CR> -nmap <Leader>/ :exe ':' . system("swiper '" . expand("%:p") . "'") -\ \| redraw!<CR> -nmap <Leader>e :pwd \| echo ''<CR>:exe 'e' -\ system("find . -type f ! -path '*/.git/*' \| fzf-tmux") -\ \| redraw!<CR> +nmap <Leader>e :pwd \| exe 'e' + \ system("find -type f ! -path '*/.git/*' \| fzf-tmux")<CR> " <c>hange <o>ption <...> nmap col :set list ! \| set list ?<CR>