⚡ Termux variant
This commit is contained in:
parent
e9a01401bb
commit
fba5b40824
79
.XCompose
79
.XCompose
@ -1,79 +0,0 @@
|
||||
# jaandrle customizations
|
||||
include "/usr/share/X11/locale/cs_CZ.UTF-8/Compose"
|
||||
|
||||
<Multi_key> <backslash> <space> : " " U202F # thin nonbreaking space
|
||||
<Multi_key> <bar> <space> : "" U200B
|
||||
<Multi_key> <8> <8> : "∞" U221E
|
||||
<Multi_key> <equal> <equal>: "≡"
|
||||
<Multi_key> <asciitilde> <asciitilde>: "≈"
|
||||
<Multi_key> <equal> <asciitilde>: "≃"
|
||||
<Multi_key> <asterisk> <asterisk>: "★"
|
||||
<Multi_key> <c> <h> <e> <c> <k> : "✓"
|
||||
<Multi_key> <c> <r> <o> <s> <s> : "✗"
|
||||
|
||||
<Multi_key> <a> <minus> <8> : "↑"
|
||||
<Multi_key> <a> <minus> <6> : "→"
|
||||
<Multi_key> <a> <minus> <2> : "↓"
|
||||
<Multi_key> <a> <minus> <4> : "←"
|
||||
<Multi_key> <a> <minus> <5> : "↔"
|
||||
<Multi_key> <a> <minus> <7> : "↖"
|
||||
<Multi_key> <a> <minus> <9> : "↗"
|
||||
<Multi_key> <a> <minus> <3> : "↘"
|
||||
<Multi_key> <a> <minus> <1> : "↙"
|
||||
<Multi_key> <a> <minus> <KP_8> : "↑"
|
||||
<Multi_key> <a> <minus> <KP_6> : "→"
|
||||
<Multi_key> <a> <minus> <KP_2> : "↓"
|
||||
<Multi_key> <a> <minus> <KP_4> : "←"
|
||||
<Multi_key> <a> <minus> <KP_5> : "↔"
|
||||
<Multi_key> <a> <minus> <KP_7> : "↖"
|
||||
<Multi_key> <a> <minus> <KP_9> : "↗"
|
||||
<Multi_key> <a> <minus> <KP_3> : "↘"
|
||||
<Multi_key> <a> <minus> <KP_1> : "↙"
|
||||
|
||||
<Multi_key> <a> <equal> <8> : "⇑"
|
||||
<Multi_key> <a> <equal> <6> : "⇒"
|
||||
<Multi_key> <a> <equal> <2> : "⇓"
|
||||
<Multi_key> <a> <equal> <4> : "⇐"
|
||||
<Multi_key> <a> <equal> <5> : "⇔"
|
||||
<Multi_key> <a> <equal> <KP_8> : "⇑"
|
||||
<Multi_key> <a> <equal> <KP_6> : "⇒"
|
||||
<Multi_key> <a> <equal> <KP_2> : "⇓"
|
||||
<Multi_key> <a> <equal> <KP_4> : "⇐"
|
||||
<Multi_key> <a> <equal> <KP_5> : "⇔"
|
||||
|
||||
# Greek ambiguities: epsilon/eta, theta/tau, pi/phi/psi, omega/omicron
|
||||
<Multi_key> <g> <a> : "α"
|
||||
<Multi_key> <g> <b> : "β"
|
||||
<Multi_key> <g> <g> : "γ"
|
||||
<Multi_key> <g> <d> : "δ"
|
||||
<Multi_key> <g> <3> : "ε"
|
||||
<Multi_key> <g> <z> : "ζ"
|
||||
<Multi_key> <g> <e> : "η"
|
||||
<Multi_key> <g> <h> : "θ"
|
||||
<Multi_key> <g> <i> : "ι"
|
||||
<Multi_key> <g> <k> : "κ"
|
||||
<Multi_key> <g> <l> : "λ"
|
||||
<Multi_key> <g> <m> : "μ"
|
||||
<Multi_key> <g> <n> : "ν"
|
||||
<Multi_key> <g> <x> : "ξ"
|
||||
# note: no omicron
|
||||
<Multi_key> <g> <p> : "π"
|
||||
<Multi_key> <g> <p> : "Ϟ"
|
||||
<Multi_key> <g> <r> : "ρ"
|
||||
<Multi_key> <g> <s> : "σ"
|
||||
<Multi_key> <g> <t> : "τ"
|
||||
<Multi_key> <g> <u> : "ψ"
|
||||
<Multi_key> <g> <f> : "φ"
|
||||
<Multi_key> <g> <c> : "χ"
|
||||
<Multi_key> <g> <o> : "ω"
|
||||
|
||||
<Multi_key> <g> <G> : "Γ"
|
||||
<Multi_key> <g> <D> : "Δ"
|
||||
<Multi_key> <g> <H> : "Θ"
|
||||
<Multi_key> <g> <L> : "Λ"
|
||||
<Multi_key> <g> <X> : "Ξ"
|
||||
<Multi_key> <g> <P> : "Π"
|
||||
<Multi_key> <g> <S> : "Σ"
|
||||
<Multi_key> <g> <F> : "Φ"
|
||||
<Multi_key> <g> <U> : "Ψ"
|
||||
<Multi_key> <g> <O> : "Ω"
|
@ -1,141 +0,0 @@
|
||||
# Make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias dir='dir --color=auto'
|
||||
alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
alias diff='diff --color=auto'
|
||||
fi
|
||||
alias §rm='rm -vi'
|
||||
alias §cp='cp -vi'
|
||||
alias §mv='mv -vi'
|
||||
alias §df='df -Th'
|
||||
§du(){
|
||||
[[ "$1" == '--help' ]] && echo "§du; §du '../*'" && return 0
|
||||
du -h -x -s -- ${1:-*} | sort -r -h;
|
||||
}
|
||||
|
||||
alias §xclip-copy='xclip -selection clipboard'
|
||||
alias §xclip-paste='xclip -o -selection clipboard'
|
||||
|
||||
LAST_PWD_PATH="$BASH_DOTFILES/.bash_last_pwd"
|
||||
[ -f "$LAST_PWD_PATH" ] && OLDPWD=`cat $LAST_PWD_PATH`
|
||||
cd(){ builtin cd "$@" && echo `pwd` > "$LAST_PWD_PATH"; }
|
||||
|
||||
history_clean(){ awk '!seen[$0]++ {print $0}' $HOME/.bash_history; }
|
||||
history_edit(){ vim $HOME/.bash_history; }
|
||||
history_cat(){ LC_ALL=C cat ~/.bash_history; }
|
||||
history_most_used(){ LC_ALL=C cat ~/.bash_history | cut -d ';' -f 2- | §awk 1 | sort | uniq -c | sort -r -n | head -n ${1-10}; }
|
||||
|
||||
§(){
|
||||
[[ -z "$1" ]] && clear && return 0
|
||||
echo "$ [--help]= clear or [print this text]"
|
||||
alias | grep "alias §" --color=never
|
||||
declare -F | grep 'declare -f §' --color=never
|
||||
ls ~/bin | grep -P "^§" | sed 's/^§/~\/bin\/ §/'
|
||||
}
|
||||
|
||||
alias §ls='ls -pQFh --group-directories-first'
|
||||
alias §less='less -R -S'
|
||||
|
||||
alias §cd.='clear;§ls'
|
||||
§cd..(){ cd $(eval printf '../'%.0s {1..$1}); }
|
||||
§cd(){
|
||||
[[ "$1" == '--help' ]] && echo -e "
|
||||
Usage: §cd NUMBER|PATH
|
||||
See: dirs -v
|
||||
" && return 0
|
||||
[[ -z "$1" ]] && dirs -v | sed 1d && return 0
|
||||
[[ $1 =~ ^[0-9]+$ ]] && cd "$(dirs -l +$1)" && dirs -v | sed 1d && return 0
|
||||
builtin pushd "$1" >/dev/null && pushd .
|
||||
}
|
||||
alias cd-vifm='cd `vifm --choose-dir -`'
|
||||
mkcd(){ mkdir -p -- "$1" && cd -P -- "$1"; }
|
||||
|
||||
alias §find.='find . -maxdepth 1'
|
||||
|
||||
alias pdftk='java -jar $HOME/bin/pdftk-all.jar'
|
||||
bw-session(){
|
||||
bw logout
|
||||
login=`kwallet-query kdewallet -f accounts -r Bitwarden 2> /dev/null`
|
||||
export BW_CLIENTSECRET=`echo "$login" | jq -r .secret`
|
||||
export BW_CLIENTID=`echo "$login" | jq -r .id`
|
||||
bw login --apikey --raw
|
||||
export BW_SESSION=`bw unlock --raw $(echo "$login" | jq -r .pass)` && echo "Bitwarden session ON" || echo "Bitwarden session FAILED"
|
||||
unset BW_CLIENTSECRET
|
||||
unset BW_CLIENTID
|
||||
}
|
||||
|
||||
alias §psmem_all='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem'
|
||||
alias §psmem='§psmem_all | head -n 10'
|
||||
alias §pscpu_all='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu'
|
||||
alias §pscpu='§pscpu_all | head -n 10'
|
||||
alias §psnet_all='lsof -P -i -n'
|
||||
|
||||
§ping-test(){ # Pings ip address of noip.com and www.google.com.
|
||||
ping -c 1 -q 8.23.224.107 | grep --color=never -A 1 -i '\---'
|
||||
ping -c 1 -q www.google.com | grep --color=never -A 1 -i '\---'
|
||||
}
|
||||
§whoami(){
|
||||
[[ "$1" == '--help' ]] && echo '§whoami; §whoami --ip' && return 0
|
||||
local ip=$(curl -s ifconfig.me)
|
||||
[[ "$1" == '--ip' ]] && echo "$ip" && return 0
|
||||
local L=" %s\n"
|
||||
printf "\n"
|
||||
printf "$L" "USER: $(echo $USER)"
|
||||
printf "$L" "IP ADDR: $ip"
|
||||
printf "$L" "HOSTNAME: $(hostname -f)"
|
||||
printf "$L" "KERNEL: $(uname -rms)"
|
||||
printf "\n"
|
||||
}
|
||||
§cmdfu(){ curl "https://www.commandlinefu.com/commands/matching/$@/$(echo -n $@ | openssl base64)/plaintext"; }
|
||||
aai(){
|
||||
[[ "$1" == '--help' ]] && ai ask --help && return 0;
|
||||
echo "ai ask \"$*, thanks for your help\""; ai ask "\"$*, thanks for your help\"";
|
||||
}
|
||||
|
||||
alias npx-wca='npx -y web-component-analyzer'
|
||||
alias npx-qnm='npx -y qnm'
|
||||
alias npx-hint='npx -y hint'
|
||||
alias npx-markdown='nohup npx markserv'
|
||||
alias zfz=fzf-carroarmato0.fzf
|
||||
|
||||
§url-curl(){ curl --silent -I "$1" | grep -i location; }
|
||||
|
||||
alias bathelp='bat --plain --language=help'
|
||||
|
||||
rpg(){
|
||||
rpg-cli "$@"
|
||||
if ( [[ "$1" == "cd" ]] || [[ "$1" == "ls" ]] ); then
|
||||
[[ "$2" == "" ]] && $1 . && return 0
|
||||
[[ "$2" == ".." ]] && $1 .. && return 0
|
||||
[[ "-1" != "$(nodejsscript --print "s.ls().findIndex(e=> e==='$2'.replace(/\/$/, ''))")" ]] && $1 "$2" && return 0
|
||||
fi
|
||||
return 0
|
||||
|
||||
# [[ "$(rpg-cli pwd)" == "$(pwd)" ]] && return 0
|
||||
# cd "$(rpg-cli pwd)"
|
||||
}
|
||||
rpg-dungeon(){
|
||||
current=$(basename $PWD)
|
||||
number_re='^[0-9]+$'
|
||||
|
||||
if [[ $current =~ $number_re ]]; then
|
||||
next=$(($current + 1))
|
||||
command mkdir -p $next && cd $next && rpg ls
|
||||
elif [[ -d 1 ]] ; then
|
||||
cd 1 && rpg ls
|
||||
else
|
||||
command mkdir -p dungeon/1 && cd dungeon/1 && rpg ls
|
||||
fi
|
||||
}
|
||||
|
||||
# alias adb-device='adb devices | tail -n +2 | head -n 1 | §awk 1'
|
||||
# make-completion-wrapper, see https://gdhnotes.blogspot.com/2014/02/alias-bash-completion.html
|
@ -1,49 +0,0 @@
|
||||
eval "$(gh completion -s bash)"
|
||||
# gh tips: https://gist.github.com/ChristopherA/3cca24936fb2c84786a29f67bacacd3e
|
||||
# used ectension: heaths/gh-label
|
||||
[[ $- != *i* ]] && return # dont include rest in Vim
|
||||
|
||||
SCRIPT_DIR=$( builtin cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
source "$SCRIPT_DIR/complete-alias/complete_alias"
|
||||
complete -F _complete_alias gitdotfiles
|
||||
|
||||
alias C--asana='eval "$($HOME/bin/asana.mjs completion_bash)"'
|
||||
alias C--himalaya='\. "$BASH_DOTFILES/himalaya.completion"'
|
||||
alias C--uu='eval "$($HOME/bin/uu --completion-bash)"'
|
||||
alias C--bs='eval "$(bs .completion bash)"'
|
||||
alias C--jc='eval "$(jc -B)" … newer version needed'
|
||||
\. "$BASH_DOTFILES/cordova.completion"
|
||||
eval "$(node --completion-bash)"
|
||||
eval "$(npm completion)"
|
||||
eval "$(nodejsscript --completion bash)"
|
||||
|
||||
_npx() {
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
|
||||
if [[ $COMP_CWORD != 1 ]]; then
|
||||
case "${COMP_WORDS[1]}" in
|
||||
gulp)
|
||||
local compls=$(npx gulp --tasks-simple)
|
||||
if [[ $compls == *"__autocomplete_bash"* ]]; then
|
||||
compls="$compls $(npx gulp -L __autocomplete_bash --_l=$COMP_CWORD --_c=$cur)"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
COMPREPLY=($(compgen -W "$compls" -- "$cur"))
|
||||
return 0;
|
||||
fi
|
||||
|
||||
local dir=$(pwd -P)
|
||||
while [[ -n "$dir" ]]; do
|
||||
if [[ ! -d $dir/node_modules/.bin ]]; then
|
||||
dir=${dir%/*}
|
||||
continue
|
||||
fi
|
||||
local execs=( `cd $dir/node_modules/.bin; find -L . -type f -executable` )
|
||||
execs=( ${execs[@]/#.\//} )
|
||||
COMPREPLY=( $(compgen -W "${execs[*]} serve" -- "$cur" ) )
|
||||
break
|
||||
done
|
||||
}
|
||||
|
||||
complete -F _npx npx
|
@ -1,103 +0,0 @@
|
||||
function jaaENV {
|
||||
if [ "$1" = "--help" ]; then
|
||||
echo "Utility to combine nvm/sdk/… in one script/config file '.jaaENV'"
|
||||
echo " ↘ instead of 'nvm use 16 & sdk use …'"
|
||||
echo ""
|
||||
echo "Usage:"
|
||||
echo " jaaENV"
|
||||
echo " jaaENV [--help|--ls]"
|
||||
echo " jaaENV --save …to_save (example: jaaENV --save nodejs php)"
|
||||
echo ""
|
||||
echo "Description:"
|
||||
echo " - Without arguments loads infos from '.jaaENV'"
|
||||
echo " - 'ls' shows supported options to auto load"
|
||||
echo " - 'save' cerates config file '.jaaENV'"
|
||||
echo ""
|
||||
echo "Usage '.jaaENV' files: "
|
||||
echo " typical: '\nphp=5.6\nnodejs=16.13.0'"
|
||||
echo " link: '. ../.jaaENV' … use settings from parent folder"
|
||||
echo " Options:"
|
||||
echo " 'android_home': Exports 'ANDROID_HOME' (uses 'ANDROID_HOME_BAK') instead of new 'ANDROID_SDK_ROOT'. Value can be anything (use '1')."
|
||||
echo " 'jdk': Exports 'JAVA_HOME' based on wanted version (currently 11/1.8)"
|
||||
echo " 'nodejs'|'php': NodeJS/PHP versions"
|
||||
echo " 'gradle': Cordova uses folder scoped → so unnecesarly"
|
||||
echo ""
|
||||
echo "Install: "
|
||||
echo " gradle ⇒ https://sdkman.io/"
|
||||
echo " node ⇒ https://github.com/nvm-sh/nvm"
|
||||
echo " php ⇒ http://jdem.cz/fgyu56 + https://deb.sury.org/"
|
||||
echo ""
|
||||
echo "Tips:"
|
||||
echo " sudo update-alternatives --set php /usr/bin/php\$php"
|
||||
return 0
|
||||
fi
|
||||
if [ "$1" = "--save" ]; then
|
||||
shift
|
||||
rm -vi .jaaENV
|
||||
while test $# -gt 0
|
||||
do
|
||||
case "$1" in
|
||||
nodejs|node)
|
||||
local nodejs_version=`node --version`
|
||||
echo "nodejs=${nodejs_version:1}" >> .jaaENV
|
||||
;;
|
||||
gradle)
|
||||
local gradle_version=`gradle --version | head -n 3 | tail -n 1 | §awk 2`
|
||||
echo "gradle=$gradle_version" >> .jaaENV
|
||||
;;
|
||||
php)
|
||||
local php_version=`php --version | head -n 1 | §awk 2`
|
||||
echo "php=$php_version" >> .jaaENV
|
||||
;;
|
||||
*)
|
||||
echo "unknown '$1' – skipped"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
if [ "$1" = "--ls" ]; then
|
||||
echo ":: nvm ls ::\n"
|
||||
nvm ls
|
||||
echo ":: find /usr/bin/ -name php* ::\n"
|
||||
find /usr/bin/ -name php*
|
||||
echo ":: sdk ls gradle | cat :: "
|
||||
sdk ls gradle | cat
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -f "compose.yaml" ]; then
|
||||
jdk=$(grep -Po 'VERSION_JAVA=\K.*' compose.yaml)
|
||||
nodejs=$(grep -Po 'VERSION_NODEJS=\K.*' compose.yaml)
|
||||
else
|
||||
. ./.jaaENV
|
||||
fi
|
||||
if [ ! -z ${android_home+x} ]; then export ANDROID_HOME=$ANDROID_HOME_BAK; echo "\$ANDROID_HOME=$ANDROID_HOME"; else unset ANDROID_HOME; echo "\$ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"; fi
|
||||
if [ ! -z ${android_home_is_sdk+x} ]; then export ANDROID_HOME=$ANDROID_SDK_ROOT; echo "\$ANDROID_HOME=$ANDROID_HOME"; fi
|
||||
if [ ! -z ${jdk+x} ]; then
|
||||
if (( $(echo "$jdk > 9" | bc -l) )); then
|
||||
export JAVA_HOME_bk=$JAVA_HOME
|
||||
export JAVA_HOME=/snap/android-studio/current/android-studio/jre;
|
||||
elif [ ! -z ${JAVA_HOME_bk+x} ]; then
|
||||
export JAVA_HOME=$JAVA_HOME_bk
|
||||
fi
|
||||
echo "\$JAVA_HOME=$JAVA_HOME"
|
||||
fi
|
||||
if [ ! -z ${nodejs+x} ]; then nvm use $nodejs; fi
|
||||
if [ ! -z ${gradle+x} ]; then sdk use gradle $gradle | tr -d '\n'; echo ; fi
|
||||
if [ ! -z ${php+x} ]; then
|
||||
local php_local=`php --version | head -n 1 | §awk 2`
|
||||
if [[ "$php_local" == "$php"* ]]; then
|
||||
echo "php $php"
|
||||
else
|
||||
echo "php $php ← $php_local"
|
||||
sudo update-alternatives --set php /usr/bin/php$php
|
||||
sudo -k
|
||||
fi
|
||||
fi
|
||||
unset android_home
|
||||
unset nodejs
|
||||
unset gradle
|
||||
unset php
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
@ -1,61 +0,0 @@
|
||||
function setPromt {
|
||||
if [ "$color_prompt" != yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
return
|
||||
fi
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
;;
|
||||
*)
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
return
|
||||
;;
|
||||
esac
|
||||
PROMPT_COMMAND=updatePromt
|
||||
PS2="|"
|
||||
}
|
||||
function updatePromt {
|
||||
local prev_exit="$?"
|
||||
# color_helper_>>color<< (Note: \[\]= escaping)
|
||||
local chR="\[\e[1;91m\]" #red
|
||||
local chW="\[\033[00m\]" #white
|
||||
local chG="\[\033[01;32m\]" #green
|
||||
local chB="\[\033[0;34m\]" #blue
|
||||
local chP="\[\033[0;35m\]" #purple
|
||||
local chY="\[\033[0;33m\]" #yellow
|
||||
PS1=""
|
||||
if [ $prev_exit == 0 ]; then
|
||||
PS1+="$chG✓ $chW"
|
||||
else
|
||||
PS1+="$chR✗ $chW"
|
||||
fi
|
||||
local jobs="$(jobs | wc -l)"
|
||||
if [ $jobs != 0 ]; then
|
||||
PS1+="${chY}≡$jobs$chW"
|
||||
fi
|
||||
PS1+="${debian_chroot:+($debian_chroot)}"
|
||||
PS1+=" At ${chG}\A${chW}"
|
||||
PS1+=" by ${chP}\u${chW}"
|
||||
if sudo -n true 2>/dev/null; then
|
||||
PS1+="${chR} (sudo)${chW}"
|
||||
fi
|
||||
PS1+=" in "
|
||||
if \git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
local branch="$(\git symbolic-ref -q HEAD)"
|
||||
PS1+="[${branch#refs/heads/}"
|
||||
local status="$(git for-each-ref --format='%(upstream:trackshort)' refs/heads | awk '!seen[$1]++ {printf $1}')"
|
||||
status+="$(git status --porcelain | awk '!seen[$1]++ {printf $1}')"
|
||||
if [ "$statua"s ]; then
|
||||
PS1+="|$chY$status$chW"
|
||||
fi
|
||||
PS1+="] "
|
||||
fi
|
||||
PS1+="${chB}\w${chW}"
|
||||
PS1+="\n:"
|
||||
history -a
|
||||
}
|
||||
setPromt
|
||||
unset color_prompt
|
||||
unset -f setPromt
|
||||
|
||||
# vim: set filetype=sh tabstop=4 shiftwidth=4 textwidth=250 expandtab :
|
@ -1,3 +0,0 @@
|
||||
#THIS MUST BE AT THE END OF THE `$HOME/.bashrc` FOR SDKMAN TO WORK!!!
|
||||
export SDKMAN_DIR="$HOME/.sdkman"
|
||||
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
|
@ -1,7 +0,0 @@
|
||||
# IMPORT IN `$HOME/.profile`
|
||||
export ANDROID_HOME_BAK="$HOME/.local/share/umake/android/android-studio"
|
||||
export ANDROID_SDK_ROOT="$HOME/.local/share/umake/android/android-studio-sdk"
|
||||
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/
|
||||
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/
|
||||
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/
|
||||
export PATH=$PATH:$ANDROID_SDK_ROOT/emulator/
|
@ -1,11 +0,0 @@
|
||||
# Bash
|
||||
|
||||
## Related files
|
||||
- [../.bashrc](../.bashrc)
|
||||
- [../.profile](../.profile)
|
||||
- [../.inputrc](../.inputrc) – Vim bindings for bash
|
||||
- [../.XCompose](../.XCompose) – [Compose key - Wikipedia (en)](https://en.wikipedia.org/wiki/Compose_key), [Klávesa Compose a typografický exkurz z rychlíku (cs)](https://jaandrle.github.io/blog/2020-10/klavesa-compose-a-typografie/)
|
||||
- [./\*](./)
|
||||
|
||||
## Bash completion
|
||||
Completions on demand, use `C--*`, see [./.bash_completions](./.bash_completions)
|
@ -1 +0,0 @@
|
||||
Subproject commit 7f2555c2fe7a1f248ed2d4301e46c8eebcbbc4e2
|
@ -1,134 +0,0 @@
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
platforms() {
|
||||
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} platform ls | tr -d "[]',")" -- $1) )
|
||||
}
|
||||
|
||||
plugins() {
|
||||
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} plugin ls | tr -d "[]',")" -- $1) )
|
||||
}
|
||||
|
||||
get_cordova() {
|
||||
local cordova
|
||||
if [[ -n "${CORDOVA_BIN}" ]]; then return 0; fi
|
||||
cordova=$(eval echo ${COMP_WORDS[0]})
|
||||
if [[ -x $cordova ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||||
cordova=$(which cordova)
|
||||
if [[ $? -eq 0 ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||||
return 1
|
||||
}
|
||||
|
||||
get_top_level_dir() {
|
||||
local path
|
||||
path=$(pwd)
|
||||
while [ $path != '/' ]; do
|
||||
if [ -d $path/.cordova ]; then
|
||||
echo $path
|
||||
return 0
|
||||
fi
|
||||
path=$(dirname $path)
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
_cordova()
|
||||
{
|
||||
local cur prev opts
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
|
||||
# Skip over any initial command line switches
|
||||
local i=1
|
||||
while [[ $i -lt ${#COMP_WORDS[*]} ]] && [[ "${COMP_WORDS[${i}]}" == -* ]]; do
|
||||
i=$((i+1));
|
||||
done
|
||||
|
||||
# For the first word, supply all of the valid top-level commands
|
||||
if [[ ${COMP_CWORD} -eq $i ]]; then
|
||||
opts="help create info platform plugin prepare compile build clean run emulate serve"
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
|
||||
case "${COMP_WORDS[$i]}" in
|
||||
create)
|
||||
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||
COMPREPLY=( $(compgen -d -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
;;
|
||||
platform)
|
||||
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||
opts="add rm remove ls"
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
case "${COMP_WORDS[$((i+1))]}" in
|
||||
add)
|
||||
opts="ios android wp7 wp8 blackberry www"
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0;
|
||||
;;
|
||||
rm|remove)
|
||||
platforms ${cur}
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
plugin)
|
||||
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||
opts="add rm remove ls"
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
case "${COMP_WORDS[$((i+1))]}" in
|
||||
add)
|
||||
COMPREPLY=( $(compgen nospace -d -- ${cur}) )
|
||||
return 0;
|
||||
;;
|
||||
rm|remove)
|
||||
plugins ${cur}
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
prepare|compile|emulate)
|
||||
platforms ${cur}
|
||||
return 0
|
||||
;;
|
||||
build)
|
||||
platforms ${cur}
|
||||
COMPREPLY+=( $(compgen -W '--release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
run)
|
||||
platforms ${cur}
|
||||
COMPREPLY+=( $(compgen -W '--list --noprepare --nobuild --target --release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
serve)
|
||||
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||
platforms ${cur}
|
||||
return 0
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
complete -F _cordova cordova
|
File diff suppressed because it is too large
Load Diff
102
.bashrc
102
.bashrc
@ -1,65 +1,59 @@
|
||||
#### BASH Config file
|
||||
### Jan Andrle
|
||||
## Info:
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) for examples
|
||||
export EDITOR='vim'
|
||||
BASH_DOTFILES=$HOME/.bash
|
||||
[ -f $BASH_DOTFILES/.bash_aliases ] && . $BASH_DOTFILES/.bash_aliases
|
||||
shopt -s expand_aliases
|
||||
|
||||
[ -f $BASH_DOTFILES/.bash_jaaENV ] && . $BASH_DOTFILES/.bash_jaaENV
|
||||
[ -f $BASH_DOTFILES/.bash_sdkman ] && . $BASH_DOTFILES/.bash_sdkman
|
||||
[ -f $BASH_DOTFILES/.bash_nvm ] && . $BASH_DOTFILES/.bash_nvm
|
||||
# Install Ruby Gems to ~/.local/share/gems
|
||||
export GEM_HOME="$HOME/.local/share/gems"
|
||||
export PATH="$HOME/.local/share/gems/bin:$HOME/.local/bin:$PATH"
|
||||
[ -f $BASH_DOTFILES/.bash_completions ] && . $BASH_DOTFILES/.bash_completions # for Vim
|
||||
export GREP_COLOR="1;32"
|
||||
export EDITOR="vim"
|
||||
export SUDO_EDITOR="vim"
|
||||
export VISUAL="vim"
|
||||
|
||||
[[ -f /etc/bashrc ]] && . /etc/bashrc # Source global definitions
|
||||
[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH"
|
||||
[[ $- != *i* ]] && return # If not running interactively, don't do anything
|
||||
|
||||
## General
|
||||
set -o vi # VIM mode for bash
|
||||
export HISTCONTROL=ignoreboth:erasedups
|
||||
shopt -s histappend cmdhist
|
||||
shopt -s histverify
|
||||
export HISTSIZE=1000
|
||||
export HISTFILESIZE=2000
|
||||
|
||||
set -o vi
|
||||
bind -m vi-command 'Control-l: clear-screen'
|
||||
bind -m vi-insert 'Control-l: clear-screen'
|
||||
|
||||
export MANPAGER="/bin/sh -c \"col -b | vim --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\""
|
||||
shopt -s checkwinsize # dynamic columns update after every cmd
|
||||
|
||||
## History
|
||||
export HISTCONTROL=ignoreboth:erasedups # No duplicate entries and started with spaces. See bash(1) for more options
|
||||
shopt -s histappend cmdhist # saving multiline + append
|
||||
export HISTFILESIZE=10000 # increase history file size (default is 500)
|
||||
export HISTSIZE=${HISTFILESIZE} # increase history size (default is 500)
|
||||
export HSTR_CONFIG=hicolor,prompt-bottom
|
||||
export HSTR_PROMPT='?: '
|
||||
|
||||
## UI/UX
|
||||
# clors for .inputrc (set colored-stats On)
|
||||
export LS_COLORS=$LS_COLORS:'tw=01;04;34:ow=01;04;34:'
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
[ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ] && debian_chroot=$(cat /etc/debian_chroot)
|
||||
# Set a fancy prompt (non-color, unless we know we "want" color)
|
||||
[[ $TERM == "xterm-color" ]] || [[ $TERM == *-256color ]] && color_prompt=yes
|
||||
[ ! -x /usr/bin/tput ] || ! tput setaf 1 >&/dev/null && color_prompt=
|
||||
|
||||
[ -f $BASH_DOTFILES/.bash_promt ] && . $BASH_DOTFILES/.bash_promt
|
||||
alias myip='curl -s -m 5 https://ipleak.net/json/'
|
||||
alias q='exit'
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias dir='dir --color=auto'
|
||||
alias vdir='vdir --color=auto'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
alias diff='diff --color=auto'
|
||||
fi
|
||||
fi
|
||||
export GPG_TTY=$(tty)
|
||||
alias myls='ls -pQFhA --group-directories-first'
|
||||
alias myrm='rm -vi'
|
||||
alias mycp='cp -vi'
|
||||
alias mymv='mv -vi'
|
||||
alias mydf='df -Th'
|
||||
alias myless='less -R -S'
|
||||
mylsl(){ mls -l $* --color=always | mless; }
|
||||
|
||||
# HSTR configuration - add this to ~/.bashrc
|
||||
# if this is interactive shell, then bind hstr to Ctrl-space
|
||||
if [[ $- =~ .*i.* ]]; then bind '"\C-@": "\e^ihstr -- \n"'; fi
|
||||
myup(){ cd $(eval printf '../'%.0s {1..$1}); }
|
||||
mkcd(){ mkdir -p "${1:?}" && cd "${1}"; }
|
||||
update(){ ~/update.sh && mv ~/update_new.sh ~/update.sh; }
|
||||
myping(){ # Pings ip address of noip.com and www.google.com.
|
||||
ping -c 1 -q 8.23.224.107 | grep --color=never -A 1 -i '\---'
|
||||
ping -c 1 -q www.google.com | grep --color=never -A 1 -i '\---'
|
||||
}
|
||||
pushd(){ builtin pushd "$@" >/dev/null && dirs -v; }
|
||||
popd() { builtin popd "$@" >/dev/null && dirs -v; }
|
||||
usevim() { ln -s $PREFIX/bin/vim ~/bin/termux-file-editor; }
|
||||
|
||||
LAST_PWD_PATH="$(dirname "${BASH_SOURCE[0]}")/.bash_last_pwd"
|
||||
[ -f "$LAST_PWD_PATH" ] && OLDPWD=`cat $LAST_PWD_PATH`
|
||||
cd(){ builtin cd "$@" && echo `pwd` > "$LAST_PWD_PATH"; }
|
||||
|
||||
# termux-setup-storage
|
||||
|
@ -1,16 +0,0 @@
|
||||
[Behavior]
|
||||
hideDockIcon=false
|
||||
hideMainWindowWhenStarted=true
|
||||
|
||||
[MainWindow]
|
||||
pos=@Point(0 0)
|
||||
size=@Size(640 480)
|
||||
|
||||
[RepoTreeView]
|
||||
expandedCategories-e77d1fb=Moje knihovny\tNed\xe1vno aktualizovan\xe9\tSd\xedleno se skupinama
|
||||
|
||||
[Settings]
|
||||
computerName=TUXEDO-InfinityBook-s15gen6
|
||||
|
||||
[UsedServerAddresses]
|
||||
main=https://seafile.jaandrle.cz/
|
@ -1,50 +0,0 @@
|
||||
{
|
||||
"version": "4.1.33",
|
||||
"hide_promotional_message": false,
|
||||
"beta_enabled": "No",
|
||||
"ignore_all_lsp": false,
|
||||
"creation_time": "2022-04-13T07:50:41.488698952Z",
|
||||
"guuid": null,
|
||||
"semantic_status": {},
|
||||
"enable_telemetry": true,
|
||||
"user_understands_that_enabling_tabnine_cloud_sends_code_to_tabnine_servers": true,
|
||||
"deep_completions_work_mode": "Hybrid",
|
||||
"hosted_deep_completions_enabled": "Disabled",
|
||||
"tabnine_cloud_host": null,
|
||||
"tabnine_cloud_certificate_domain": null,
|
||||
"tabnine_cloud_port": null,
|
||||
"cloud_whitelist": [],
|
||||
"num_of_suggestions": 5,
|
||||
"line_suggestions": null,
|
||||
"rlhf": null,
|
||||
"omit_prefix_suggestions": null,
|
||||
"api_key": null,
|
||||
"api_base_url": null,
|
||||
"binary_update_interval_seconds": null,
|
||||
"local_enabled": "Unset",
|
||||
"disable_local_when_using_battery": false,
|
||||
"hide_deep_information_message": false,
|
||||
"enable_power_saving_mode": false,
|
||||
"rate_limit_interval_seconds": null,
|
||||
"rate_limit_amount": null,
|
||||
"generation": 47,
|
||||
"local_model_size": null,
|
||||
"model_hash_override": null,
|
||||
"local_indexing": null,
|
||||
"heartbeat_interval_seconds": null,
|
||||
"last_service_level": "Cloud",
|
||||
"override_beams": null,
|
||||
"override_context_length": null,
|
||||
"onboarding": null,
|
||||
"has_git_repos": null,
|
||||
"gusr": null,
|
||||
"exclude_file_masks": null,
|
||||
"inline_suggestions_mode": true,
|
||||
"use_specialized_model_if_available": null,
|
||||
"snippets_enabled_v2": true,
|
||||
"inline_suggestions_mode_clients": null,
|
||||
"tabnine_hub_port": null,
|
||||
"manually_selected_model": null,
|
||||
"hybrid_rendering_mode": null,
|
||||
"force_local_hub": false
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
[core]
|
||||
version = 1.8
|
||||
debug = 0
|
||||
poll_interval = 1
|
||||
show_auth_warn = 1
|
||||
window_size = [957, 993]
|
||||
enabled_plugins = ["libnotifyplugin"]
|
||||
plugins_order = ["libnotifyplugin", "spamfilterplugin", "userscriptplugin", "soundplugin"]
|
||||
|
||||
[libnotifyplugin]
|
||||
show_account_errors = 1
|
||||
show_account_name = 1
|
||||
show_avatar = 1
|
||||
newest_first = 1
|
||||
group_mails = 1
|
||||
max_visible_mails = 10
|
||||
show_unread_count = 1
|
||||
|
||||
[Account 16a4e497]
|
||||
backend = imap
|
||||
name = CentrumCZ
|
||||
type = internal
|
||||
server = imap.centrum.cz
|
||||
user = andrle.jan
|
||||
proxy = 0
|
||||
unsecure = 0
|
||||
enabled = 1
|
||||
webmail =
|
||||
port =
|
||||
pxytype =
|
||||
pxyurl =
|
||||
pxyport =
|
||||
pxyusr =
|
||||
pxypass =
|
||||
uuid = 16a4e497
|
||||
folders = ["INBOX", "Hromadn\u00e1", "_Prace", "_Sluzby"]
|
||||
|
@ -1,38 +0,0 @@
|
||||
# A valid snippet should starts with:
|
||||
#
|
||||
# snippet trigger_word [ "description" [ options ] ]
|
||||
#
|
||||
# and end with:
|
||||
#
|
||||
# endsnippet
|
||||
#
|
||||
# Snippet options:
|
||||
#
|
||||
# b - Beginning of line.
|
||||
# i - In-word expansion.
|
||||
# w - Word boundary.
|
||||
# r - Regular expression
|
||||
# e - Custom context snippet
|
||||
# A - Snippet will be triggered automatically, when condition matches.
|
||||
#
|
||||
# Basic example:
|
||||
#
|
||||
# snippet emitter "emitter properties" b
|
||||
# private readonly ${1} = new Emitter<$2>()
|
||||
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
|
||||
# endsnippet
|
||||
#
|
||||
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
|
||||
snippet cmt "/* | */"
|
||||
${1}/* ${0} */
|
||||
endsnippet
|
||||
|
||||
snippet f "inline function"
|
||||
${1}function${2}(${3}){${0}}
|
||||
endsnippet
|
||||
|
||||
snippet fun "function"
|
||||
${1}function ${2:name}(${3:params}){
|
||||
${0:/* code */}
|
||||
}
|
||||
endsnippet
|
@ -1,20 +0,0 @@
|
||||
# an idea from https://github.com/robinpokorny/git3moji
|
||||
# [![git3moji–v1.0](https://img.shields.io/badge/git3moji–v1.0-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square)](https://robinpokorny.github.io/git3moji/)
|
||||
snippet zap--⚡️–features-primary-concerns-3 ""
|
||||
:zap:
|
||||
endsnippet
|
||||
snippet bug--🐛-fixes-3 ""
|
||||
:bug:
|
||||
endsnippet
|
||||
snippet zapcop--⚡️👮-refactoring-3 ""
|
||||
:zap::cop:
|
||||
endsnippet
|
||||
snippet tv--📺–ci-tooling-configuration-3 ""
|
||||
:tv:
|
||||
endsnippet
|
||||
snippet cop--👮–tests-linting-comments-3 ""
|
||||
:cop:
|
||||
endsnippet
|
||||
snippet abc--🔤-documentation-3 ""
|
||||
:abc:
|
||||
endsnippet
|
@ -1,204 +0,0 @@
|
||||
snippet alembic--experimenting-new-things "" b
|
||||
:alembic:
|
||||
endsnippet
|
||||
snippet alien--updating-code-due-to-external-api-changes "" b
|
||||
:alien:
|
||||
endsnippet
|
||||
snippet ambulance--critical-hotfix "" b
|
||||
:ambulance:
|
||||
endsnippet
|
||||
snippet apple--fixing-something-on-macos "" b
|
||||
:apple:
|
||||
endsnippet
|
||||
snippet arrow_down--downgrading-dependencies "" b
|
||||
:arrow_down:
|
||||
endsnippet
|
||||
snippet arrow_up--upgrading-dependencies "" b
|
||||
:arrow_up:
|
||||
endsnippet
|
||||
snippet art--improving-structure--format-of-the-code "" b
|
||||
:art:
|
||||
endsnippet
|
||||
snippet beers--writing-code-drunkenly "" b
|
||||
:beers:
|
||||
endsnippet
|
||||
snippet bento--adding-or-updating-assets "" b
|
||||
:bento:
|
||||
endsnippet
|
||||
snippet bookmark--releasing--version-tags "" b
|
||||
:bookmark:
|
||||
endsnippet
|
||||
snippet boom--introducing-breaking-changes "" b
|
||||
:boom:
|
||||
endsnippet
|
||||
snippet bug--fixing-a-bug "" b
|
||||
:bug:
|
||||
endsnippet
|
||||
snippet building_construction--making-architectural-changes "" b
|
||||
:building_construction:
|
||||
endsnippet
|
||||
snippet bulb--documenting-source-code "" b
|
||||
:bulb:
|
||||
endsnippet
|
||||
snippet busts_in_silhouette--add-contributor(s) "" b
|
||||
:busts_in_silhouette:
|
||||
endsnippet
|
||||
snippet camera_flash--adding-or-updating-snapshots "" b
|
||||
:camera_flash:
|
||||
endsnippet
|
||||
snippet card_file_box--performing-database-related-changes "" b
|
||||
:card_file_box:
|
||||
endsnippet
|
||||
snippet chart_with_upwards_trend--adding-analytics-or-tracking-code "" b
|
||||
:chart_with_upwards_trend:
|
||||
endsnippet
|
||||
snippet checkered_flag--fixing-something-on-windows "" b
|
||||
:checkered_flag:
|
||||
endsnippet
|
||||
snippet children_crossing--improving-user-experience--usability "" b
|
||||
:children_crossing:
|
||||
endsnippet
|
||||
snippet clown_face--mocking-things "" b
|
||||
:clown_face:
|
||||
endsnippet
|
||||
snippet construction--work-in-progress "" b
|
||||
:construction:
|
||||
endsnippet
|
||||
snippet construction_worker--adding-ci-build-system "" b
|
||||
:construction_worker:
|
||||
endsnippet
|
||||
snippet dizzy--adding-or-updating-animations-and-transitions "" b
|
||||
:dizzy:
|
||||
endsnippet
|
||||
snippet egg--adding-an-easter-egg "" b
|
||||
:egg:
|
||||
endsnippet
|
||||
snippet fire--removing-code-or-files "" b
|
||||
:fire:
|
||||
endsnippet
|
||||
snippet globe_with_meridians--internationalization-and-localization "" b
|
||||
:globe_with_meridians:
|
||||
endsnippet
|
||||
snippet goal_net--catching-errors"-b
|
||||
:goal_net:
|
||||
endsnippet
|
||||
snippet green_apple--fixing-something-on-ios "" b
|
||||
:green_apple:
|
||||
endsnippet
|
||||
snippet green_heart--fixing-ci-build "" b
|
||||
:green_heart:
|
||||
endsnippet
|
||||
snippet heavy_minus_sign--removing-a-dependency "" b
|
||||
:heavy_minus_sign:
|
||||
endsnippet
|
||||
snippet heavy_plus_sign--adding-a-dependency "" b
|
||||
:heavy_plus_sign:
|
||||
endsnippet
|
||||
snippet iphone--working-on-responsive-design "" b
|
||||
:iphone:
|
||||
endsnippet
|
||||
snippet label--adding-or-updating-types--flow--typescript "" b
|
||||
:label:
|
||||
endsnippet
|
||||
snippet lipstick--updating-the-ui-and-style-files "" b
|
||||
:lipstick:
|
||||
endsnippet
|
||||
snippet lock--fixing-security-issues "" b
|
||||
:lock:
|
||||
endsnippet
|
||||
snippet loud_sound--adding-logs "" b
|
||||
:loud_sound:
|
||||
endsnippet
|
||||
snippet mag--improving-seo "" b
|
||||
:mag:
|
||||
endsnippet
|
||||
snippet memo--add-or-update-documentation "" b
|
||||
:memo:
|
||||
endsnippet
|
||||
snippet mute--removing-logs "" b
|
||||
:mute:
|
||||
endsnippet
|
||||
snippet ok_hand--updating-code-due-to-code-review-changes "" b
|
||||
:ok_hand:
|
||||
endsnippet
|
||||
snippet package--updating-compiled-files-or-packages "" b
|
||||
:package:
|
||||
endsnippet
|
||||
snippet page_facing_up--adding-or-updating-license "" b
|
||||
:page_facing_up:
|
||||
endsnippet
|
||||
snippet pencil--writing-docs "" b
|
||||
:pencil:
|
||||
endsnippet
|
||||
snippet pencil2--fixing-typos "" b
|
||||
:pencil2:
|
||||
endsnippet
|
||||
snippet penguin--fixing-something-on-linux "" b
|
||||
:penguin:
|
||||
endsnippet
|
||||
snippet poop--writing-bad-code-that-needs-to-be-improved "" b
|
||||
:poop:
|
||||
endsnippet
|
||||
snippet pushpin--pinning-dependencies-to-specific-versions "" b
|
||||
:pushpin:
|
||||
endsnippet
|
||||
snippet recycle--refactoring-code "" b
|
||||
:recycle:
|
||||
endsnippet
|
||||
snippet rewind--reverting-changes "" b
|
||||
:rewind:
|
||||
endsnippet
|
||||
snippet robot--fixing-something-on-android "" b
|
||||
:robot:
|
||||
endsnippet
|
||||
snippet rocket--deploying-stuff "" b
|
||||
:rocket:
|
||||
endsnippet
|
||||
snippet rotating_light--removing-linter-warnings "" b
|
||||
:rotating_light:
|
||||
endsnippet
|
||||
snippet see_no_evil--adding-or-updating-a- "" b
|
||||
:see_no_evil:
|
||||
endsnippet
|
||||
snippet seedling--adding-or-updating-seed-files"-b
|
||||
:seedling:
|
||||
endsnippet
|
||||
snippet sparkles--introducing-new-features "" b
|
||||
:sparkles:
|
||||
endsnippet
|
||||
snippet speech_balloon--updating-text-and-literals "" b
|
||||
:speech_balloon:
|
||||
endsnippet
|
||||
snippet tada--initial-commit "" b
|
||||
:tada:
|
||||
endsnippet
|
||||
snippet triangular_flag_on_post--adding--updating--or-removing-feature-flags "" b
|
||||
:triangular_flag_on_post:
|
||||
endsnippet
|
||||
snippet truck--moving-or-renaming-files "" b
|
||||
:truck:
|
||||
endsnippet
|
||||
snippet twisted_rightwards_arrows--merging-branches "" b
|
||||
:twisted_rightwards_arrows:
|
||||
endsnippet
|
||||
snippet wastebasket--deprecating-code-that-needs-to-be-cleaned-up "" b
|
||||
:wastebasket:
|
||||
endsnippet
|
||||
snippet whale--work-about-docker "" b
|
||||
:whale:
|
||||
endsnippet
|
||||
snippet wheel_of_dharma--work-about-kubernetes "" b
|
||||
:wheel_of_dharma:
|
||||
endsnippet
|
||||
snippet wheelchair--improving-accessibility "" b
|
||||
:wheelchair:
|
||||
endsnippet
|
||||
snippet white_check_mark--updating-tests "" b
|
||||
:white_check_mark:
|
||||
endsnippet
|
||||
snippet wrench--changing-configuration-files "" b
|
||||
:wrench:
|
||||
endsnippet
|
||||
snippet zap--improving-performance "" b
|
||||
:zap:
|
||||
endsnippet
|
@ -1,60 +0,0 @@
|
||||
# A valid snippet should starts with:
|
||||
#
|
||||
# snippet trigger_word [ "description" [ options ] ]
|
||||
#
|
||||
# and end with:
|
||||
#
|
||||
# endsnippet
|
||||
#
|
||||
# Snippet options:
|
||||
#
|
||||
# b - Beginning of line.
|
||||
# i - In-word expansion.
|
||||
# w - Word boundary.
|
||||
# r - Regular expression
|
||||
# e - Custom context snippet
|
||||
# A - Snippet will be triggered automatically, when condition matches.
|
||||
#
|
||||
# Basic example:
|
||||
#
|
||||
# snippet emitter "emitter properties" b
|
||||
# private readonly ${1} = new Emitter<$2>()
|
||||
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
|
||||
# endsnippet
|
||||
#
|
||||
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
|
||||
snippet sceleton "HTML5" b
|
||||
<!DOCTYPE html>
|
||||
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
|
||||
<html class="no-js" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
|
||||
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
|
||||
<!-- DEL https://github.com/jensimmons/cssremedy -->
|
||||
|
||||
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
|
||||
<title></title>
|
||||
<meta name="description" content="">
|
||||
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
|
||||
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
|
||||
</head>
|
||||
<body>
|
||||
<!-- DEL -->
|
||||
</body>
|
||||
</html>
|
||||
endsnippet
|
||||
|
||||
snippet cmt "comment"
|
||||
<!-- ${0} -->
|
||||
endsnippet
|
||||
|
||||
snippet viewport_cordova "viewport used in cordova apps"
|
||||
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
|
||||
endsnippet
|
||||
snippet csp_cordova "CSP used in cordova"
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
|
||||
endsnippet
|
@ -1,87 +0,0 @@
|
||||
snippet sceleton_node "nodejs" b
|
||||
#!/usr/bin/env node
|
||||
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||
${0}
|
||||
endsnippet
|
||||
snippet sceleton_cli "nodejsscript" b
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
${0}
|
||||
endsnippet
|
||||
snippet sceleton_zx "zx" b
|
||||
#!/usr/bin/env zx
|
||||
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||
${0}
|
||||
endsnippet
|
||||
snippet jshint "JSHint header" b
|
||||
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
|
||||
/* global ${0} */
|
||||
endsnippet
|
||||
snippet global "JSHint global"
|
||||
/* global ${0} */
|
||||
endsnippet
|
||||
snippet global_ns "JSHint global"
|
||||
/* ${1} *//* global ${0} */
|
||||
endsnippet
|
||||
snippet devel "JSHint devel"
|
||||
${1}/* jshint devel: true *///gulp.keep.line${0}
|
||||
endsnippet
|
||||
|
||||
snippet log "console.log"
|
||||
${1}console.log('${0}');
|
||||
endsnippet
|
||||
snippet stor "localStorage"
|
||||
${1}localStorage.${2:g}etItem("${0}");
|
||||
endsnippet
|
||||
|
||||
snippet import "import with backward order"
|
||||
import ${2:values} from "${1:specifier}";$0
|
||||
endsnippet
|
||||
snippet promise "return? new Promise"
|
||||
${1:return }new Promise(function(resolve, reject){
|
||||
${0:/* async code */}
|
||||
});
|
||||
endsnippet
|
||||
snippet for "classical loop"
|
||||
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
|
||||
${0:/* statement */}
|
||||
}
|
||||
endsnippet
|
||||
snippet foreach "PHP-like name" b
|
||||
for(${2:const} ${3:element} of ${1:iterable}){
|
||||
${0:/* statement */}
|
||||
}
|
||||
endsnippet
|
||||
snippet switch "classical switch"
|
||||
switch (${1}){
|
||||
case ${2}:
|
||||
${0}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
endsnippet
|
||||
snippet desctr "object destructure"
|
||||
${1:const} { $0 }= ${2:def};
|
||||
endsnippet
|
||||
snippet ready "document ready"
|
||||
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
|
||||
endsnippet
|
||||
snippet readyEvent "vanilla JS content ready event name"
|
||||
${1}DOMContentLoaded${0}
|
||||
endsnippet
|
||||
|
||||
snippet selid
|
||||
${1}document.getElementById('${0}')
|
||||
endsnippet
|
||||
snippet seltag
|
||||
${1}getElementsByTagName('${0}')
|
||||
endsnippet
|
||||
snippet selclass
|
||||
${1}getElementsByClassName('${0}')
|
||||
endsnippet
|
||||
snippet sel
|
||||
${1}querySelector('${0}')
|
||||
endsnippet
|
||||
snippet selall
|
||||
${1}querySelectorAll('${0}')
|
||||
endsnippet
|
@ -1,14 +0,0 @@
|
||||
snippet jshint "JSHint config for package.json" b
|
||||
"jshintConfig": {
|
||||
"esversion": 6,
|
||||
"browser": "true",
|
||||
"undef": "true",
|
||||
"latedef": "true",
|
||||
"maxparams": 4,
|
||||
"maxdepth": 3,
|
||||
"maxcomplexity": 17,
|
||||
"globals": {
|
||||
"gulp_place": false
|
||||
}
|
||||
}
|
||||
endsnippet
|
@ -1,25 +0,0 @@
|
||||
# A valid snippet should starts with:
|
||||
#
|
||||
# snippet trigger_word [ "description" [ options ] ]
|
||||
#
|
||||
# and end with:
|
||||
#
|
||||
# endsnippet
|
||||
#
|
||||
# Snippet options:
|
||||
#
|
||||
# b - Beginning of line.
|
||||
# i - In-word expansion.
|
||||
# w - Word boundary.
|
||||
# r - Regular expression
|
||||
# e - Custom context snippet
|
||||
# A - Snippet will be triggered automatically, when condition matches.
|
||||
#
|
||||
# Basic example:
|
||||
#
|
||||
# snippet emitter "emitter properties" b
|
||||
# private readonly ${1} = new Emitter<$2>()
|
||||
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
|
||||
# endsnippet
|
||||
#
|
||||
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
|
@ -1 +0,0 @@
|
||||
extends php, html
|
@ -1,9 +0,0 @@
|
||||
snippet sceleton "bash" b
|
||||
#!/usr/bin/env ${1:bash}
|
||||
set -eou pipefail
|
||||
${0}
|
||||
endsnippet
|
||||
snippet info "script name and version" b
|
||||
this="${0##*/}"
|
||||
version="`date +%Y-%m-%d`"
|
||||
endsnippet
|
@ -1 +0,0 @@
|
||||
extends javascript, html
|
@ -1,19 +0,0 @@
|
||||
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||
git_protocol: ssh
|
||||
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||
editor:
|
||||
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||
prompt: enabled
|
||||
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
|
||||
pager:
|
||||
# Aliases allow you to create nicknames for gh commands
|
||||
aliases:
|
||||
§modules: issue list --label "modules (auxiliary)" --state "closed"
|
||||
§grepAsana_: '!grep "Issue is synchronized with this \[Asana task\]" | §awk -F "(" 2 | §awk -F ")" 1 | §awk -F "/" 6'
|
||||
§indigo: api user/orgs -q '.[0].login'
|
||||
§workflow-test: '!git commit -mWIP .github/workflows/$1 && git push && gh workflow run --ref $(git rev-parse --abbrev-ref HEAD) $@'
|
||||
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
|
||||
http_unix_socket:
|
||||
# What web browser gh should use when opening URLs. If blank, will refer to environment.
|
||||
browser:
|
||||
version: "1"
|
@ -1,39 +0,0 @@
|
||||
name = "Jan Andrle"
|
||||
downloads-dir = "~/Stažené"
|
||||
|
||||
[centrum]
|
||||
default = true
|
||||
email = "andrle.jan@centrum.cz"
|
||||
|
||||
imap-host = "imap.centrum.cz"
|
||||
imap-port = 993
|
||||
imap-login = "andrle.jan@centrum.cz"
|
||||
imap-passwd-cmd = "bw get password mail-centrum"
|
||||
|
||||
smtp-host = "smtp.centrum.cz"
|
||||
smtp-port = 465
|
||||
smtp-login = "andrle.jan@centrum.cz"
|
||||
smtp-passwd-cmd = "bw get password mail-centrum"
|
||||
|
||||
[centrum.mailboxes]
|
||||
sent = "Odeslan&AOE- po&AWE-ta"
|
||||
draft = "Koncepty"
|
||||
|
||||
[indigo]
|
||||
email = "jan.andrle@indigo.cz"
|
||||
|
||||
imap-host = "imap.gmail.com"
|
||||
imap-port = 993
|
||||
imap-login = "jan.andrle@indigo.cz"
|
||||
imap-passwd-cmd = "bw get password mail-gmail-indigo"
|
||||
|
||||
smtp-host = "smtp.gmail.com"
|
||||
smtp-port = 465
|
||||
smtp-login = "jan.andrle@indigo.cz"
|
||||
smtp-passwd-cmd = "bw get password mail-gmail-indigo"
|
||||
|
||||
[indigo.mailboxes]
|
||||
sent = "Odeslan&AOE- po&AWE-ta"
|
||||
draft = "Koncepty"
|
||||
|
||||
# vim: ft=apachestyle cms=#\ %s :
|
@ -1,8 +0,0 @@
|
||||
[
|
||||
{ "type": "text", "value": "Složka 'Příchozí'" },
|
||||
{ "type": "himalaya", "value": [ "-m", "inbox", "list" ], "label": "inbox" },
|
||||
{ "type": "text", "value": "Složka 'Hromadná'" },
|
||||
{ "type": "himalaya", "value": [ "-m", "Hromadn&AOE-", "list" ], "label": "Hromadná" },
|
||||
{ "type": "text", "value": "Složka 'Práce'" },
|
||||
{ "type": "himalaya", "value": [ "-m", "_Prace", "list" ], "label": "_Prace" }
|
||||
]
|
@ -1,2 +0,0 @@
|
||||
[Mouse]
|
||||
cursorTheme=breeze_cursors
|
@ -1,8 +0,0 @@
|
||||
[General]
|
||||
ColorScheme=BreezeDark
|
||||
|
||||
[Icons]
|
||||
Theme=breeze-dark
|
||||
|
||||
[KDE]
|
||||
widgetStyle=Breeze
|
@ -1,2 +0,0 @@
|
||||
[Greeter]
|
||||
Theme=org.kde.breezedark.desktop
|
@ -1,3 +0,0 @@
|
||||
[KSplash]
|
||||
Engine=KSplashQML
|
||||
Theme=org.kde.breezedark.desktop
|
@ -1,11 +0,0 @@
|
||||
[TabBox]
|
||||
DesktopLayout=org.kde.breeze.desktop
|
||||
DesktopListLayout=org.kde.breeze.desktop
|
||||
LayoutName=org.kde.breeze.desktop
|
||||
|
||||
[Windows]
|
||||
Placement=Centered
|
||||
|
||||
[org.kde.kdecoration2]
|
||||
library=org.kde.breeze
|
||||
theme=Breeze
|
@ -1 +0,0 @@
|
||||
org.kde.breezedark.desktop
|
@ -1,2 +0,0 @@
|
||||
[Theme]
|
||||
name=default
|
@ -1,37 +0,0 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"scripts": {
|
||||
"§vim_plugins.mjs": {
|
||||
"npx": false,
|
||||
"completions": {
|
||||
"path": [],
|
||||
"clone": [
|
||||
"-t",
|
||||
"--target",
|
||||
"-b",
|
||||
"--branch"
|
||||
],
|
||||
"C": "clone",
|
||||
"remove": [],
|
||||
"R": "remove",
|
||||
"rm": "remove",
|
||||
"list": [
|
||||
"-t",
|
||||
"--type"
|
||||
],
|
||||
"L": "list",
|
||||
"ls": "list",
|
||||
"export": [],
|
||||
"status": [],
|
||||
"S": "status",
|
||||
"pull": [],
|
||||
"P": "pull",
|
||||
"update": "pull"
|
||||
},
|
||||
"completions_all": [
|
||||
"--help",
|
||||
"--version"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
/* --print/--echo aliases */
|
||||
Reflect.defineProperty($, "nosed", { get(){ return this.stdin.text(""); }, });
|
||||
Reflect.defineProperty($, "nojq", { get(){ return this.stdin.json(null); }, });
|
||||
Reflect.defineProperty($, "noawk", { get(){ return this.stdin.lines([]); }, });
|
||||
|
||||
/* deprecated/fallback */
|
||||
globalThis.cyclicLoop= function*(items){
|
||||
if(!items) items= 'win32'===process.platform ? '|/-\\' : "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏";
|
||||
const { length }= items;
|
||||
for(let i=0; true; i++){
|
||||
if(i===length) i= 0;
|
||||
yield items[i];
|
||||
}
|
||||
}
|
||||
|
||||
Reflect.defineProperty($, "clipboard", {
|
||||
get(){ return s.$().run`xclip -o -selection clipboard`; }
|
||||
})
|
@ -1,11 +0,0 @@
|
||||
[General]
|
||||
color=#FF2E88
|
||||
has-screenshot-permission=true
|
||||
language=ces, eng
|
||||
last-update-check=0
|
||||
mode=parse
|
||||
notification=true
|
||||
show-introduction=false
|
||||
tray=false
|
||||
update=false
|
||||
version=false
|
@ -1,133 +0,0 @@
|
||||
/*
|
||||
* breeze-dark.rasi
|
||||
* rofi theme inspired by plasma breeze
|
||||
* MonsieurBedard
|
||||
*/
|
||||
|
||||
* {
|
||||
/* Base */
|
||||
default-background: rgba(49, 52, 56, 97.5%); // <- change this for transparency
|
||||
default-foreground: rgba(239, 240, 241, 100%);
|
||||
default-border: rgba(97, 101, 105, 100%);
|
||||
alternative-background: rgba(35, 38, 41, 100%);
|
||||
invisible: rgba(0, 0, 0, 0%);
|
||||
|
||||
/* Colors */
|
||||
hard-blue: rgba(240, 84, 76, 100%);
|
||||
light-blue: rgba(240, 84, 76, 25%);
|
||||
|
||||
hard-red: rgba(141, 58, 80, 100%);
|
||||
light-red: rgba(77, 31, 37, 100%);
|
||||
|
||||
hard-green: rgba(39, 161, 69, 100%);
|
||||
light-green: rgba(19, 55, 35, 100%);
|
||||
|
||||
/* Universal */
|
||||
background-color: @invisible;
|
||||
border-color: @default-border;
|
||||
font: "Noto Sans 10";
|
||||
text-color: @default-foreground;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: @default-background;
|
||||
border: 1;
|
||||
border-radius: 3;
|
||||
border-color: @default-border;
|
||||
padding: 7;
|
||||
}
|
||||
|
||||
#mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#message {
|
||||
border: 1;
|
||||
border-radius: 3;
|
||||
padding: 5;
|
||||
background-color: @alternative-background;
|
||||
}
|
||||
|
||||
#textbox {
|
||||
background-color: @entry-background;
|
||||
}
|
||||
|
||||
#listview {
|
||||
fixed-height: 0;
|
||||
spacing: 2;
|
||||
scrollbar: false;
|
||||
padding: 2 0 0;
|
||||
}
|
||||
|
||||
#element {
|
||||
padding: 5;
|
||||
border: 1;
|
||||
border-radius: 3;
|
||||
border-color: @invisible;
|
||||
}
|
||||
|
||||
#element.normal.normal {
|
||||
background-color: @invisible;
|
||||
}
|
||||
|
||||
#element.normal.urgent {
|
||||
background-color: @light-red;
|
||||
}
|
||||
|
||||
#element.normal.active {
|
||||
background-color: @light-green;
|
||||
}
|
||||
|
||||
#element.selected.normal {
|
||||
background-color: @light-blue;
|
||||
border-color: @hard-blue;
|
||||
}
|
||||
|
||||
#element.selected.urgent {
|
||||
background-color: @light-red;
|
||||
border-color: @hard-red;
|
||||
}
|
||||
|
||||
#element.selected.active {
|
||||
background-color: @light-green;
|
||||
border-color: @hard-green;
|
||||
}
|
||||
|
||||
#mode-switcher {
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
#button {
|
||||
border: 0 0 3 0;
|
||||
border-color: @invisible;
|
||||
padding: 3;
|
||||
}
|
||||
|
||||
#button.selected {
|
||||
border-color: @hard-blue;
|
||||
}
|
||||
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
padding: 1;
|
||||
}
|
||||
|
||||
#case-indicator {
|
||||
spacing: 0;
|
||||
padding: 3px;
|
||||
background-color: @alternative-background;
|
||||
border: 1 1 1 0;
|
||||
border-radius: 0 2 2 0;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: @alternative-background;
|
||||
padding: 3px;
|
||||
border: 1 0 1 1;
|
||||
border-radius: 2 0 0 2;
|
||||
}
|
||||
|
||||
#prompt {
|
||||
padding: 3 7 3 0;
|
||||
}
|
@ -1 +0,0 @@
|
||||
@theme "~/.config/rofi/breeze-dark.rasi"
|
@ -1,7 +0,0 @@
|
||||
[[Accounts]]
|
||||
Name = 'jaandrle'
|
||||
Server = 'https://fosstodon.org'
|
||||
ClientID = 'ggYBuM2y_jtFV_3wR4tGdJUoNh-4ZfVRl1SByK5bihU'
|
||||
ClientSecret = 'j7ClbSP2UY8syZgV4E-7Kk1bf8Ph_6GQ7szcqVfqDtI'
|
||||
AccessToken = '1iO5wZL-nXcC3dZGjxNHLcbbFoSZ3fmutno96oD_ZY8'
|
||||
|
@ -1,830 +0,0 @@
|
||||
# Configuration file for tut
|
||||
|
||||
[general]
|
||||
# Shows a confirmation view before actions such as favorite, delete toot, boost
|
||||
# etc.
|
||||
# default=true
|
||||
confirmation=true
|
||||
|
||||
# Enable support for using the mouse in tut to select items.
|
||||
# default=false
|
||||
mouse-support=false
|
||||
|
||||
# Timelines adds windows of feeds. You can customize the number of feeds, what
|
||||
# they should show and the key to activate them.
|
||||
#
|
||||
# Available timelines: home, direct, local, federated, special, bookmarks,
|
||||
# saved, favorited, notifications, lists, mentions, tag
|
||||
#
|
||||
# The one named special are the home timeline with only boosts and/or replies.
|
||||
#
|
||||
# Tag is special as you need to add the tag after, see the example below.
|
||||
#
|
||||
# The syntax is:
|
||||
# timelines=feed,[name],[keys...],[showBoosts],[showReplies]
|
||||
#
|
||||
# Tha values in brackets are optional. You can see the syntax for keys under the
|
||||
# [input] section.
|
||||
#
|
||||
# showBoosts and showReplies must be formated as bools. So either true or false.
|
||||
# They always defaults to true.
|
||||
#
|
||||
# Some examples:
|
||||
#
|
||||
# home timeline with the name Home
|
||||
# timelines=home,Home
|
||||
#
|
||||
# local timeline with the name Local and it gets focus when you press 2. It will
|
||||
# also hide boosts in the timeline, but show toots that are replies.
|
||||
# timelines=local,Local,'2',false,true
|
||||
#
|
||||
# notification timeline with the name [N]otifications and it gets focus when you
|
||||
# press n or N
|
||||
# timelines=notifications,[N]otifications,'n','N'
|
||||
#
|
||||
# tag timeline for #linux with the name Linux and it gets focus when you press
|
||||
# timelines=tag linux,Linux,"F2"
|
||||
#
|
||||
#
|
||||
# If you don't set any timelines it will default to this:
|
||||
# timelines=home
|
||||
# timelines=notifications,[N]otifications,'n','N'
|
||||
#
|
||||
timelines=lists,Lists,'1'
|
||||
timelines=home,Home,'2'
|
||||
timelines=notifications,Notifications,'3'
|
||||
timelines=tag webdev,Webdev,'4'
|
||||
|
||||
|
||||
# The date format to be used. See https://godoc.org/time#Time.Format
|
||||
# default=2006-01-02 15:04
|
||||
date-format=2006-01-02 15:04
|
||||
|
||||
# Format for dates the same day. See date-format for more info.
|
||||
# default=15:04
|
||||
date-today-format=15:04
|
||||
|
||||
# This displays relative dates instead for statuses that are one day or older
|
||||
# the output is 1y2m1d (1 year 2 months and 1 day)
|
||||
#
|
||||
# The value is an integear
|
||||
# -1 = don't use relative dates
|
||||
# 0 = always use relative dates, except for dates < 1 day
|
||||
# 1 - ∞ = number of days to use relative dates
|
||||
#
|
||||
# Example: date-relative=28 will display a relative date for toots that are
|
||||
# between 1-28 days old. Otherwhise it will use the short or long format.
|
||||
# default=-1
|
||||
date-relative=-1
|
||||
|
||||
# The max width of text before it wraps when displaying toots.
|
||||
# 0 = no restriction.
|
||||
# default=0
|
||||
max-width=0
|
||||
|
||||
# Where do you want the list of toots to be placed?
|
||||
# Valid values: left, right, top, bottom.
|
||||
# default=left
|
||||
list-placement=right
|
||||
|
||||
# If you have notification-feed set to true you can display it under the main
|
||||
# list of toots (row) or place it to the right of the main list of toots
|
||||
# (column).
|
||||
# default=row
|
||||
list-split=column
|
||||
|
||||
# You can change the proportions of the list view in relation to the content
|
||||
# view list-proportion=1 and content-proportoin=3 will result in the content
|
||||
# taking up 3 times more space.
|
||||
# Must be n > 0
|
||||
# default=1
|
||||
list-proportion=2
|
||||
|
||||
# See list-proportion
|
||||
# default=2
|
||||
content-proportion=1
|
||||
|
||||
# Hide notifications of this type. If you have multiple you separate them with a
|
||||
# comma. Valid types: mention, status, boost, follow, follow_request, favorite,
|
||||
# poll, edit.
|
||||
# default=
|
||||
notifications-to-hide=
|
||||
|
||||
# If you always want to quote original message when replying.
|
||||
# default=false
|
||||
quote-reply=false
|
||||
|
||||
# If you want to show icons in the list of toots.
|
||||
# default=true
|
||||
show-icons=true
|
||||
|
||||
# If you've learnt all the shortcut keys you can remove the help text and only
|
||||
# show the key in tui. So it gets less cluttered.
|
||||
# default=false
|
||||
short-hints=false
|
||||
|
||||
# If you want to display the filter that filtered a toot.
|
||||
# default=true
|
||||
show-filter-phrase=true
|
||||
|
||||
# If you want to show a message in the cmdbar on how to access the help text.
|
||||
# default=true
|
||||
show-help=true
|
||||
|
||||
# If you always want tut to jump to the newest post. May ruin your reading
|
||||
# experience.
|
||||
# default=false
|
||||
stick-to-top=false
|
||||
|
||||
# If you want to display the username of the person being boosted instead of the
|
||||
# person that boosted.
|
||||
# default=false
|
||||
show-boosted-user=false
|
||||
|
||||
# 0 = No terminal title
|
||||
# 1 = Show title in terminal and top bar
|
||||
# 2 = Only show terminal title, and no top bar in tut.
|
||||
# default=0
|
||||
terminal-title=0
|
||||
|
||||
# If you don't want the whole UI to update, and only the text content you can
|
||||
# set this option to true. This will lead to some artifacts being left on the
|
||||
# screen when emojis are present. But it will keep the UI from flashing on every
|
||||
# single toot in some terminals.
|
||||
# default=true
|
||||
redraw-ui=true
|
||||
|
||||
# The leader is used as a shortcut to run commands as you can do in Vim. By
|
||||
# default this is disabled and you enable it by setting a leader-key. It can
|
||||
# only consist of one char and I like to use comma as leader key. So to set it
|
||||
# you write leader-key=,
|
||||
# default=
|
||||
leader-key=
|
||||
|
||||
# Number of milliseconds before the leader command resets. So if you tap the
|
||||
# leader-key by mistake or are to slow it empties all the input after X
|
||||
# milliseconds.
|
||||
# default=1000
|
||||
leader-timeout=1000
|
||||
|
||||
# You set actions for the leader-key with one or more leader-action. It consists
|
||||
# of two parts first the action then the shortcut. And they're separated by a
|
||||
# comma.
|
||||
#
|
||||
# Available commands: blocking, bookmarks, boosts, clear-notifications,
|
||||
# close-window, compose, direct, edit, favorited, favorites, federated,
|
||||
# followers, following, history, home, list-placement, list-split, lists, local,
|
||||
# mentions, move-window-left, move-window-right, move-window-up,
|
||||
# move-window-down, move-window-home, move-window-end, muting, newer,
|
||||
# notifications, preferences, profile, proportions, refetch, saved, special-all,
|
||||
# special-boosts, special-replies, stick-to-top, switch, tag, tags, window
|
||||
#
|
||||
# The ones named special-* are the home timeline with only boosts and/or
|
||||
# replies. All contains both, -boosts only boosts and -replies only replies.
|
||||
#
|
||||
# The shortcuts are up to you, but keep them quite short and make sure they
|
||||
# don't collide. If you have one shortcut that is "f" and an other one that is
|
||||
# "fav", the one with "f" will always run and "fav" will never run.
|
||||
#
|
||||
# Some special leaders:
|
||||
# tag is special as you need to add the tag after, e.g. tag linux
|
||||
# window is special as it's a shortcut for switching between the timelines
|
||||
# you've set under general and they are zero indexed. window 0 = your first
|
||||
# timeline, window 1 = your second and so on.
|
||||
# list-placement as it takes the argument top, right, bottom or left
|
||||
# list-split as it takes the argument column or row
|
||||
# proportions takes the arguments [int] [int], where the first integer is the
|
||||
# list and the other content, e.g. proportions 1 3. See list-proportion above
|
||||
# for more information.
|
||||
# switch let's you go to a timeline if it already exists, if it doesn't it will
|
||||
# open the timeline in a new window. The syntax is almost the same as in
|
||||
# timelines= and is displayed under the examples.
|
||||
#
|
||||
# Some examples:
|
||||
# leader-action=local,lo
|
||||
# leader-action=lists,li
|
||||
# leader-action=federated,fed
|
||||
# leader-action=direct,d
|
||||
# leader-action=history,h
|
||||
# leader-action=tag linux,tl
|
||||
# leader-action=window 0,h
|
||||
# leader-action=list-placement bottom,b
|
||||
# leader-action=list-split column,c
|
||||
# leader-action=proportions 1 3,3
|
||||
#
|
||||
# Syntax for switch:
|
||||
# leader-action=switch feed,shortcut,[name],[showBoosts],[showReplies]
|
||||
# showBoosts can be either true or false and they are both optional. Here are
|
||||
# some examples:
|
||||
#
|
||||
# leader-action=switch home,h,false,true
|
||||
# leader-action=switch tag tut,tt
|
||||
#
|
||||
|
||||
|
||||
[media]
|
||||
# Your image viewer.
|
||||
# default=xdg-open
|
||||
image-viewer=xdg-open
|
||||
|
||||
# Open the image viewer in the same terminal as toot. Only for terminal based
|
||||
# viewers.
|
||||
# default=false
|
||||
image-terminal=false
|
||||
|
||||
# If images should open one by one e.g. "imv image.png" multiple times. If set
|
||||
# to false all images will open at the same time like this "imv image1.png
|
||||
# image2.png image3.png". Not all image viewers support this, so try it first.
|
||||
# default=true
|
||||
image-single=true
|
||||
|
||||
# If you want to open the images in reverse order. In some image viewers this
|
||||
# will display the images in the "right" order.
|
||||
# default=false
|
||||
image-reverse=false
|
||||
|
||||
# Your video viewer.
|
||||
# default=xdg-open
|
||||
video-viewer=xdg-open
|
||||
|
||||
# Open the video viewer in the same terminal as toot. Only for terminal based
|
||||
# viewers.
|
||||
# default=false
|
||||
video-terminal=false
|
||||
|
||||
# If videos should open one by one. See image-single.
|
||||
# default=true
|
||||
video-single=true
|
||||
|
||||
# If you want your videos in reverse order. In some video apps this will play
|
||||
# the files in the "right" order.
|
||||
# default=false
|
||||
video-reverse=false
|
||||
|
||||
# Your audio viewer.
|
||||
# default=xdg-open
|
||||
audio-viewer=xdg-open
|
||||
|
||||
# Open the audio viewer in the same terminal as toot. Only for terminal based
|
||||
# viewers.
|
||||
# default=false
|
||||
audio-terminal=false
|
||||
|
||||
# If audio should open one by one. See image-single.
|
||||
# default=true
|
||||
audio-single=true
|
||||
|
||||
# If you want to play the audio files in reverse order. In some audio apps this
|
||||
# will play the files in the "right" order.
|
||||
# default=false
|
||||
audio-reverse=false
|
||||
|
||||
# Your web browser.
|
||||
# default=xdg-open
|
||||
link-viewer=xdg-open
|
||||
|
||||
# Open the browser in the same terminal as toot. Only for terminal based
|
||||
# browsers.
|
||||
# default=false
|
||||
link-terminal=false
|
||||
|
||||
[open-custom]
|
||||
# This sections allows you to set up to five custom programs to open URLs with.
|
||||
# If the url points to an image, you can set c1-name to img and c1-use to imv.
|
||||
# If the program runs in a terminal and you want to run it in the same terminal
|
||||
# as tut. Set cX-terminal to true. The name will show up in the UI, so keep it
|
||||
# short so all five fits.
|
||||
#
|
||||
# c1-name=name
|
||||
# c1-use=program
|
||||
# c1-terminal=false
|
||||
#
|
||||
# c2-name=name
|
||||
# c2-use=program
|
||||
# c2-terminal=false
|
||||
#
|
||||
# c3-name=name
|
||||
# c3-use=program
|
||||
# c3-terminal=false
|
||||
#
|
||||
# c4-name=name
|
||||
# c4-use=program
|
||||
# c4-terminal=false
|
||||
#
|
||||
# c5-name=name
|
||||
# c5-use=program
|
||||
# c5-terminal=false
|
||||
|
||||
[open-pattern]
|
||||
# Here you can set your own glob patterns for opening matching URLs in the
|
||||
# program you want them to open up in. You could for example open Youtube videos
|
||||
# in your video player instead of your default browser.
|
||||
#
|
||||
# You must name the keys foo-pattern, foo-use and foo-terminal, where use is the
|
||||
# program that will open up the URL. To see the syntax for glob pattern you can
|
||||
# follow this URL https://github.com/gobwas/glob#syntax. foo-terminal is if the
|
||||
# program runs in the terminal and should open in the same terminal as tut
|
||||
# itself.
|
||||
#
|
||||
# Example for youtube.com and youtu.be to open up in mpv instead of the browser.
|
||||
#
|
||||
# y1-pattern=*youtube.com/watch*
|
||||
# y1-use=mpv
|
||||
# y1-terminal=false
|
||||
#
|
||||
# y2-pattern=*youtu.be/*
|
||||
# y2-use=mpv
|
||||
# y2-terminal=false
|
||||
|
||||
[desktop-notification]
|
||||
# Notification when someone follows you.
|
||||
# default=false
|
||||
followers=false
|
||||
|
||||
# Notification when someone favorites one of your toots.
|
||||
# default=false
|
||||
favorite=false
|
||||
|
||||
# Notification when someone mentions you.
|
||||
# default=false
|
||||
mention=false
|
||||
|
||||
# Notification when someone edits their toot.
|
||||
# default=false
|
||||
update=false
|
||||
|
||||
# Notification when someone boosts one of your toots.
|
||||
# default=false
|
||||
boost=false
|
||||
|
||||
# Notification of poll results.
|
||||
# default=false
|
||||
poll=true
|
||||
|
||||
# Notification when there is new posts in current timeline.
|
||||
# default=false
|
||||
posts=false
|
||||
|
||||
[style]
|
||||
# All styles can be represented in their HEX value like #ffffff or with their
|
||||
# name, so in this case white. The only special value is "default" which equals
|
||||
# to transparent, so it will be the same color as your terminal.
|
||||
#
|
||||
# You can also use xrdb colors like this xrdb:color1 The program will use colors
|
||||
# prefixed with an * first then look for URxvt or XTerm if it can't find any
|
||||
# color prefixed with an asterisk. If you don't want tut to guess the prefix you
|
||||
# can set the prefix yourself. If the xrdb color can't be found a preset color
|
||||
# will be used. You'll have to set theme=none for this to work.
|
||||
|
||||
# The xrdb prefix used for colors in .Xresources.
|
||||
# default=guess
|
||||
xrdb-prefix=guess
|
||||
|
||||
# You can use some themes that comes bundled with tut. Check out the themes
|
||||
# available on the URL below. If a theme is named "nord.ini" you just write
|
||||
# theme=nord
|
||||
#
|
||||
# https://github.com/RasmusLindroth/tut/tree/master/config/themes
|
||||
#
|
||||
# You can also create a theme file in your config directory e.g.
|
||||
# ~/.config/tut/themes/foo.ini and then set theme=foo.
|
||||
#
|
||||
# If you want to use your own theme but don't want to create a new file, set
|
||||
# theme=none and then you can create your own theme below.
|
||||
# default=default
|
||||
theme=default
|
||||
|
||||
# The background color used on most elements.
|
||||
# default=
|
||||
background=
|
||||
|
||||
# The text color used on most of the text.
|
||||
# default=
|
||||
text=
|
||||
|
||||
# The color to display subtle elements or subtle text. Like lines and help text.
|
||||
# default=
|
||||
subtle=
|
||||
|
||||
# The color for errors or warnings
|
||||
# default=
|
||||
warning-text=
|
||||
|
||||
# This color is used to display username.
|
||||
# default=
|
||||
text-special-one=
|
||||
|
||||
# This color is used to display username and key hints.
|
||||
# default=
|
||||
text-special-two=
|
||||
|
||||
# The color of the bar at the top
|
||||
# default=
|
||||
top-bar-background=
|
||||
|
||||
# The color of the text in the bar at the top.
|
||||
# default=
|
||||
top-bar-text=
|
||||
|
||||
# The color of the bar at the bottom
|
||||
# default=
|
||||
status-bar-background=
|
||||
|
||||
# The color of the text in the bar at the bottom.
|
||||
# default=
|
||||
status-bar-text=
|
||||
|
||||
# The color of the bar at the bottom in view mode.
|
||||
# default=
|
||||
status-bar-view-background=
|
||||
|
||||
# The color of the text in the bar at the bottom in view mode.
|
||||
# default=
|
||||
status-bar-view-text=
|
||||
|
||||
# The color of the text in the command bar at the bottom.
|
||||
# default=
|
||||
command-text=
|
||||
|
||||
# Background of selected list items.
|
||||
# default=
|
||||
list-selected-background=
|
||||
|
||||
# The text color of selected list items.
|
||||
# default=
|
||||
list-selected-text=
|
||||
|
||||
# The background color of selected list items that are out of focus.
|
||||
# default=
|
||||
list-selected-inactive-background=
|
||||
|
||||
# The text color of selected list items that are out of focus.
|
||||
# default=
|
||||
list-selected-inactive-text=
|
||||
|
||||
# The main color of the text for key hints
|
||||
# default=
|
||||
controls-text=
|
||||
|
||||
# The highlight color of for key hints
|
||||
# default=
|
||||
controls-highlight=
|
||||
|
||||
# The background color in dropdowns and autocompletions
|
||||
# default=
|
||||
autocomplete-background=
|
||||
|
||||
# The text color in dropdowns at autocompletions
|
||||
# default=
|
||||
autocomplete-text=
|
||||
|
||||
# The background color for selected value in dropdowns and autocompletions
|
||||
# default=
|
||||
autocomplete-selected-background=
|
||||
|
||||
# The text color for selected value in dropdowns and autocompletions
|
||||
# default=
|
||||
autocomplete-selected-text=
|
||||
|
||||
# The background color on selected button and the text color of unselected
|
||||
# buttons
|
||||
# default=
|
||||
button-color-one=
|
||||
|
||||
# The text color on selected button and the background color of unselected
|
||||
# buttons
|
||||
# default=
|
||||
button-color-two=
|
||||
|
||||
# The background on named timelines.
|
||||
# default=
|
||||
timeline-name-background=
|
||||
|
||||
# The text color on named timelines
|
||||
# default=
|
||||
timeline-name-text=
|
||||
|
||||
[input]
|
||||
# You can edit the keys for tut below.
|
||||
#
|
||||
# The syntax is a bit weird, but it works. And I'll try to explain it as well as
|
||||
# I can.
|
||||
#
|
||||
# Example:
|
||||
# status-favorite="[F]avorite","Un[F]avorite",'f','F'
|
||||
# status-delete="[D]elete",'d','D'
|
||||
#
|
||||
# status-favorite and status-delete differs because favorite can be in two
|
||||
# states, so you will have to add two key hints.
|
||||
# Most keys will only have on key hint. Look at the default value for reference.
|
||||
#
|
||||
# Key hints must be in some of the following formats. Remember the quotation
|
||||
# marks.
|
||||
# "" = empty
|
||||
# "[D]elete" = Delete with a highlighted D
|
||||
# "Un[F]ollow" = UnFollow with a highlighted F
|
||||
# "[Enter]" = Enter where everything is highlighted
|
||||
# "Yan[K]" = YanK with a highlighted K
|
||||
#
|
||||
# After the hint (or hints) you must set the keys. You can do this in two ways,
|
||||
# with single quotation marks or double ones.
|
||||
#
|
||||
# The single ones are for single chars like 'a', 'b', 'c' and double marks are
|
||||
# for special keys like "Enter". Remember that they are case sensitive.
|
||||
#
|
||||
# To find the names of special keys you have to go to the following site and
|
||||
# look for "var KeyNames = map[Key]string{"
|
||||
#
|
||||
# https://github.com/gdamore/tcell/blob/master/key.go
|
||||
|
||||
# Keys for moving down
|
||||
# default="",'j','J',"Down"
|
||||
global-down="",'j','J',"Down"
|
||||
|
||||
# Keys for moving up
|
||||
# default="",'k','K',"Up"
|
||||
global-up="",'k','K',"Up"
|
||||
|
||||
# To select items
|
||||
# default="","Enter"
|
||||
global-enter="","Enter"
|
||||
|
||||
# To go back
|
||||
# default="[Esc]","Esc"
|
||||
global-back="[Backspace]","Backspace2"
|
||||
|
||||
# To go back and exit Tut
|
||||
# default="[Q]uit",'q','Q'
|
||||
global-exit="[Q]uit",'q','Q'
|
||||
|
||||
# Move to the top
|
||||
# default="",'g',"Home"
|
||||
main-home="",'g',"Home"
|
||||
|
||||
# Move to the bottom
|
||||
# default="",'G',"End"
|
||||
main-end="",'G',"End"
|
||||
|
||||
# Go to previous feed
|
||||
# default="",'h','H',"Left"
|
||||
main-prev-feed="",'h','H',"Left"
|
||||
|
||||
# Go to next feed
|
||||
# default="",'l','L',"Right"
|
||||
main-next-feed="",'l','L',"Right"
|
||||
|
||||
# Focus on the previous feed window
|
||||
# default="","Backtab"
|
||||
main-prev-window="","Backtab"
|
||||
|
||||
# Focus on the next feed window
|
||||
# default="","Tab"
|
||||
main-next-window="","Tab"
|
||||
|
||||
# Focus on the notification list
|
||||
# default="[N]otifications",'n','N'
|
||||
main-notification-focus="[N]otifications",'n','N'
|
||||
|
||||
# Compose a new toot
|
||||
# default="",'c','C'
|
||||
main-compose="",'c','C'
|
||||
|
||||
# Open avatar
|
||||
# default="[A]vatar",'a','A'
|
||||
status-avatar="[A]vatar",'a','A'
|
||||
|
||||
# Boost a toot
|
||||
# default="[B]oost","Un[B]oost",'b','B'
|
||||
status-boost="[B]oost","Un[B]oost",'b','B'
|
||||
|
||||
# Edit a toot
|
||||
# default="[E]dit",'e','E'
|
||||
status-edit="[E]dit",'E'
|
||||
|
||||
# Delete a toot
|
||||
# default="[D]elete",'d','D'
|
||||
status-delete="[D]elete",'d','D'
|
||||
|
||||
# Favorite a toot
|
||||
# default="[F]avorite","Un[F]avorite",'f','F'
|
||||
status-favorite="[F]avorite","Un[F]avorite",'f','F'
|
||||
|
||||
# Open toots media files
|
||||
# default="[M]edia",'m','M'
|
||||
status-media="M[e]dia",'e'
|
||||
|
||||
# Open links
|
||||
# default="[O]pen",'o','O'
|
||||
status-links="[O]pen",'o','O'
|
||||
|
||||
# Open poll
|
||||
# default="[P]oll",'p','P'
|
||||
status-poll="Pol[l]",'l'
|
||||
|
||||
# Reply to toot
|
||||
# default="[R]eply",'r','R'
|
||||
status-reply="[R]eply",'r','R'
|
||||
|
||||
# Save/bookmark a toot
|
||||
# default="[S]ave","Un[S]ave",'s','S'
|
||||
status-bookmark="[S]ave","Un[S]ave",'s','S'
|
||||
|
||||
# View thread
|
||||
# default="[T]hread",'t','T'
|
||||
status-thread="[T]hread",'t','T'
|
||||
|
||||
# Open user profile
|
||||
# default="[U]ser",'u','U'
|
||||
status-user="[P]rofile",'p','P'
|
||||
|
||||
# Open the view mode
|
||||
# default="[V]iew",'v','V'
|
||||
status-view-focus="[V]iew",'v','V'
|
||||
|
||||
# Yank the url of the toot
|
||||
# default="[Y]ank",'y','Y'
|
||||
status-yank="[Y]ank",'y','Y'
|
||||
|
||||
# Show the content in a content warning
|
||||
# default="Press [Z] to toggle cw",'z','Z'
|
||||
status-toggle-cw="Press [x] to toggle cw",'x','X'
|
||||
|
||||
# Show the content of a filtered toot
|
||||
# default="Press [Z] to view filtered toot",'z','Z'
|
||||
status-show-filtered="Press [x] to view filtered toot",'x','X'
|
||||
|
||||
# View avatar
|
||||
# default="[A]vatar",'a','A'
|
||||
user-avatar="[A]vatar",'a','A'
|
||||
|
||||
# Block the user
|
||||
# default="[B]lock","Un[B]lock",'b','B'
|
||||
user-block="[B]lock","Un[B]lock",'b','B'
|
||||
|
||||
# Follow user
|
||||
# default="[F]ollow","Un[F]ollow",'f','F'
|
||||
user-follow="Follo[w]","UnFollo[w]",'w','W'
|
||||
|
||||
# Follow user
|
||||
# default="Follow [R]equest","Follow [R]equest",'r','R'
|
||||
user-follow-request-decide="Follow [R]equest","Follow [R]equest",'r','R'
|
||||
|
||||
# Mute user
|
||||
# default="[M]ute","Un[M]ute",'m','M'
|
||||
user-mute="[M]ute","Un[M]ute",'m','M'
|
||||
|
||||
# Open links
|
||||
# default="[O]pen",'o','O'
|
||||
user-links="[O]pen",'o','O'
|
||||
|
||||
# View user profile
|
||||
# default="[U]ser",'u','U'
|
||||
user-user="[P]rofile",'p','P'
|
||||
|
||||
# Open view mode
|
||||
# default="[V]iew",'v','V'
|
||||
user-view-focus="[V]iew",'v','V'
|
||||
|
||||
# Yank the user URL
|
||||
# default="[Y]ank",'y','Y'
|
||||
user-yank="[Y]ank",'y','Y'
|
||||
|
||||
# Open list
|
||||
# default="[O]pen",'o','O'
|
||||
list-open-feed="[O]pen",'o','O'
|
||||
|
||||
# List all users in a list
|
||||
# default="[U]sers",'u','U'
|
||||
list-user-list="[U]sers",'u','U'
|
||||
|
||||
# Add user to list
|
||||
# default="[A]dd",'a','A'
|
||||
list-user-add="[A]dd",'a','A'
|
||||
|
||||
# Delete user from list
|
||||
# default="[D]elete",'d','D'
|
||||
list-user-delete="[D]elete",'d','D'
|
||||
|
||||
# Open URL
|
||||
# default="[O]pen",'o','O'
|
||||
link-open="[O]pen",'o','O'
|
||||
|
||||
# Yank the URL
|
||||
# default="[Y]ank",'y','Y'
|
||||
link-yank="[Y]ank",'y','Y'
|
||||
|
||||
# Open tag feed
|
||||
# default="[O]pen",'o','O'
|
||||
tag-open-feed="[O]pen",'o','O'
|
||||
|
||||
# Toggle follow on tag
|
||||
# default="[F]ollow","Un[F]ollow",'f','F'
|
||||
tag-follow="[F]ollow","Un[F]ollow",'f','F'
|
||||
|
||||
# Edit content warning text on new toot
|
||||
# default="[C]W text",'c','C'
|
||||
compose-edit-cw="[C]W text",'c','C'
|
||||
|
||||
# Edit the text on new toot
|
||||
# default="[E]dit text",'e','E'
|
||||
compose-edit-text="[E]dit text",'e','E'
|
||||
|
||||
# Include a quote when replying
|
||||
# default="[I]nclude quote",'i','I'
|
||||
compose-include-quote="[I]nclude quote",'i','I'
|
||||
|
||||
# Focus on adding media to toot
|
||||
# default="[M]edia",'m','M'
|
||||
compose-media-focus="[M]edia",'m','M'
|
||||
|
||||
# Post the new toot
|
||||
# default="[P]ost",'p','P'
|
||||
compose-post="[P]ost",'p','P'
|
||||
|
||||
# Toggle content warning on toot
|
||||
# default="[T]oggle CW",'t','T'
|
||||
compose-toggle-content-warning="[T]oggle CW",'t','T'
|
||||
|
||||
# Edit the visibility on new toot
|
||||
# default="[V]isibility",'v','V'
|
||||
compose-visibility="[V]isibility",'v','V'
|
||||
|
||||
# Edit the language of a toot
|
||||
# default="[L]ang",'l','L'
|
||||
compose-language="[L]ang",'L'
|
||||
|
||||
# Switch to creating a poll
|
||||
# default="P[O]ll",'o','O'
|
||||
compose-poll="Pol[l]",'l'
|
||||
|
||||
# Delete media file
|
||||
# default="[D]elete",'d','D'
|
||||
media-delete="[D]elete",'d','D'
|
||||
|
||||
# Edit the description on media file
|
||||
# default="[E]dit desc",'e','E'
|
||||
media-edit-desc="[E]dit desc",'e','E'
|
||||
|
||||
# Add a new media file
|
||||
# default="[A]dd",'a','A'
|
||||
media-add="[A]dd",'a','A'
|
||||
|
||||
# Vote on poll
|
||||
# default="[V]ote",'v','V'
|
||||
vote-vote="[V]ote",'v','V'
|
||||
|
||||
# Select item to vote on
|
||||
# default="[Enter] to select",' ', "Enter"
|
||||
vote-select="[Enter] to select",' ', "Enter"
|
||||
|
||||
# Add a new poll option
|
||||
# default="[A]dd",'a','A'
|
||||
poll-add="[A]dd",'a','A'
|
||||
|
||||
# Edit a poll option
|
||||
# default="[E]dit",'e','E'
|
||||
poll-edit="[E]dit",'e','E'
|
||||
|
||||
# Delete a poll option
|
||||
# default="[D]elete",'d','D'
|
||||
poll-delete="[D]elete",'d','D'
|
||||
|
||||
# Toggle voting on multiple options
|
||||
# default="Toggle [M]ultiple",'m','M'
|
||||
poll-multi-toggle="Toggle [M]ultiple",'m','M'
|
||||
|
||||
# Change the expiration of poll
|
||||
# default="E[X]pires",'x','X'
|
||||
poll-expiration="E[X]pires",'x','X'
|
||||
|
||||
# Change display name
|
||||
# default="[N]ame",'n','N'
|
||||
preference-name="[N]ame",'n','N'
|
||||
|
||||
# Change default visibility of toots
|
||||
# default="[V]isibility",'v','V'
|
||||
preference-visibility="[V]isibility",'v','V'
|
||||
|
||||
# Change bio in profile
|
||||
# default="[B]io",'b','B'
|
||||
preference-bio="[B]io",'b','B'
|
||||
|
||||
# Save your preferences
|
||||
# default="[S]ave",'s','S'
|
||||
preference-save="[S]ave",'s','S'
|
||||
|
||||
# Edit profile fields
|
||||
# default="[F]ields",'f','F'
|
||||
preference-fields="[F]ields",'f','F'
|
||||
|
||||
# Add new field
|
||||
# default="[A]dd",'a','A'
|
||||
preference-fields-add="[A]dd",'a','A'
|
||||
|
||||
# Edit current field
|
||||
# default="[E]dit",'e','E'
|
||||
preference-fields-edit="[E]dit",'e','E'
|
||||
|
||||
# Delete current field
|
||||
# default="[D]elete",'d','D'
|
||||
preference-fields-delete="[D]elete",'d','D'
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +0,0 @@
|
||||
# Vifm
|
||||
[Vifm - Manual](https://vifm.info/manual.shtml).
|
||||
|
||||
## Related files
|
||||
- [./\*](./)
|
||||
|
||||
## Additional
|
||||
- [How to use bat as a fileviewer · Issue #404 · vifm/vifm](https://github.com/vifm/vifm/issues/404)
|
@ -1,81 +0,0 @@
|
||||
" You can edit this file by hand.
|
||||
" The " character at the beginning of a line comments out the line.
|
||||
" Blank lines are ignored.
|
||||
|
||||
" The Default color scheme is used for any directory that does not have
|
||||
" a specified scheme and for parts of user interface like menus. A
|
||||
" color scheme set for a base directory will also
|
||||
" be used for the sub directories.
|
||||
|
||||
" The standard ncurses colors are:
|
||||
" Default = -1 = None, can be used for transparency or default color
|
||||
" Black = 0
|
||||
" Red = 1
|
||||
" Green = 2
|
||||
" Yellow = 3
|
||||
" Blue = 4
|
||||
" Magenta = 5
|
||||
" Cyan = 6
|
||||
" White = 7
|
||||
|
||||
" Light versions of colors are also available (set bold attribute):
|
||||
" LightBlack
|
||||
" LightRed
|
||||
" LightGreen
|
||||
" LightYellow
|
||||
" LightBlue
|
||||
" LightMagenta
|
||||
" LightCyan
|
||||
" LightWhite
|
||||
|
||||
" Available attributes (some of them can be combined):
|
||||
" bold
|
||||
" underline
|
||||
" reverse or inverse
|
||||
" standout
|
||||
" italic (on unsupported systems becomes reverse)
|
||||
" none
|
||||
|
||||
" Vifm supports 256 colors you can use color numbers 0-255
|
||||
" (requires properly set up terminal: set your TERM environment variable
|
||||
" (directly or using resources) to some color terminal name (e.g.
|
||||
" xterm-256color) from /usr/lib/terminfo/; you can check current number
|
||||
" of colors in your terminal with tput colors command)
|
||||
|
||||
" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color
|
||||
|
||||
highlight clear
|
||||
|
||||
highlight Win cterm=none ctermfg=white ctermbg=black
|
||||
highlight Directory cterm=bold ctermfg=cyan ctermbg=default
|
||||
highlight Link cterm=bold ctermfg=yellow ctermbg=default
|
||||
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
|
||||
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
|
||||
highlight Device cterm=bold ctermfg=red ctermbg=default
|
||||
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
|
||||
highlight Executable cterm=bold ctermfg=green ctermbg=default
|
||||
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
|
||||
highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default
|
||||
highlight TopLine cterm=none ctermfg=black ctermbg=white
|
||||
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
|
||||
highlight StatusLine cterm=bold ctermfg=black ctermbg=white
|
||||
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
|
||||
highlight CmdLine cterm=none ctermfg=white ctermbg=black
|
||||
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
|
||||
highlight Border cterm=none ctermfg=black ctermbg=white
|
||||
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
|
||||
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
|
||||
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
|
||||
highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight TabLine cterm=none ctermfg=white ctermbg=black
|
||||
highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default
|
||||
highlight User1 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User2 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User3 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User4 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User5 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User6 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User7 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User8 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight User9 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||
highlight OtherWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
@ -1,26 +0,0 @@
|
||||
" codedark like color scheme for vifm
|
||||
" Reset all styles first
|
||||
highlight clear
|
||||
|
||||
highlight Win cterm=none ctermfg=188 ctermbg=none
|
||||
highlight Border cterm=none ctermfg=none ctermbg=none
|
||||
|
||||
highlight TopLine cterm=none ctermfg=117 ctermbg=235
|
||||
highlight TopLineSel cterm=bold ctermfg=75 ctermbg=235
|
||||
highlight StatusLine cterm=bold ctermfg=65 ctermbg=234
|
||||
highlight ErrorMsg cterm=bold ctermfg=203 ctermbg=235
|
||||
highlight JobLine cterm=bold ctermfg=75 ctermbg=235
|
||||
highlight WildMenu cterm=bold ctermfg=188 ctermbg=235
|
||||
highlight CmdLine cterm=none ctermfg=188 ctermbg=235
|
||||
|
||||
highlight CurrLine cterm=none ctermfg=none ctermbg=0
|
||||
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
|
||||
highlight Selected cterm=none ctermfg=none ctermbg=235
|
||||
|
||||
highlight Directory cterm=none ctermfg=179 ctermbg=none
|
||||
highlight Executable cterm=none ctermfg=176 ctermbg=none
|
||||
highlight Link cterm=none ctermfg=173 ctermbg=none
|
||||
highlight BrokenLink cterm=none ctermfg=164 ctermbg=none
|
||||
highlight Device cterm=none ctermfg=187 ctermbg=none
|
||||
highlight Fifo cterm=none ctermfg=187 ctermbg=none
|
||||
highlight Socket cterm=none ctermfg=187 ctermbg=none
|
@ -1,27 +0,0 @@
|
||||
" ph
|
||||
|
||||
highlight clear
|
||||
|
||||
highlight Win cterm=none ctermfg=248 ctermbg=234
|
||||
highlight Directory cterm=bold ctermfg=033 ctermbg=234
|
||||
highlight Link cterm=bold ctermfg=yellow ctermbg=234
|
||||
highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default
|
||||
highlight Socket cterm=bold ctermfg=125 ctermbg=default
|
||||
highlight Device cterm=bold ctermfg=red ctermbg=default
|
||||
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
|
||||
highlight Executable cterm=bold ctermfg=166 ctermbg=default
|
||||
highlight Selected cterm=bold ctermfg=255 ctermbg=237
|
||||
highlight CurrLine cterm=bold ctermfg=default ctermbg=237
|
||||
highlight TopLine cterm=bold ctermfg=black ctermbg=235
|
||||
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
|
||||
highlight StatusLine cterm=bold ctermfg=black ctermbg=235
|
||||
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
|
||||
highlight CmdLine cterm=none ctermfg=white ctermbg=black
|
||||
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
|
||||
highlight Border cterm=none ctermfg=black ctermbg=234
|
||||
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
|
||||
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
|
||||
|
||||
if $USER == 'root'
|
||||
highlight Border ctermbg=red
|
||||
endif
|
@ -1,29 +0,0 @@
|
||||
" zenburn like color scheme for vifm
|
||||
" http://kippura.org/zenburnpage/
|
||||
|
||||
" Reset all styles first
|
||||
highlight clear
|
||||
|
||||
highlight Border cterm=none ctermfg=235 ctermbg=237
|
||||
|
||||
highlight TopLine cterm=none ctermfg=108 ctermbg=235
|
||||
highlight TopLineSel cterm=bold ctermfg=186 ctermbg=235
|
||||
|
||||
highlight Win cterm=none ctermfg=188 ctermbg=237
|
||||
highlight Directory cterm=none ctermfg=108 ctermbg=237
|
||||
highlight CurrLine cterm=none ctermfg=223 ctermbg=235
|
||||
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
|
||||
highlight Selected cterm=none ctermfg=116 ctermbg=238
|
||||
|
||||
highlight JobLine cterm=bold ctermfg=116 ctermbg=238
|
||||
highlight StatusLine cterm=bold ctermfg=144 ctermbg=236
|
||||
highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=237
|
||||
highlight WildMenu cterm=bold ctermfg=235 ctermbg=144
|
||||
highlight CmdLine cterm=none ctermfg=188 ctermbg=237
|
||||
|
||||
highlight Executable cterm=none ctermfg=172 ctermbg=237
|
||||
highlight Link cterm=none ctermfg=142 ctermbg=237
|
||||
highlight BrokenLink cterm=none ctermfg=174 ctermbg=237
|
||||
highlight Device cterm=none ctermfg=228 ctermbg=237
|
||||
highlight Fifo cterm=none ctermfg=109 ctermbg=237
|
||||
highlight Socket cterm=none ctermfg=110 ctermbg=237
|
@ -1,857 +0,0 @@
|
||||
vifm-!! vifm-help.txt /*vifm-!!*
|
||||
vifm-$ vifm-help.txt /*vifm-$*
|
||||
vifm-$HOME vifm-help.txt /*vifm-$HOME*
|
||||
vifm-$MYVIFMRC vifm-help.txt /*vifm-$MYVIFMRC*
|
||||
vifm-$VIFM vifm-help.txt /*vifm-$VIFM*
|
||||
vifm-$VIFM_FUSE_FILE vifm-help.txt /*vifm-$VIFM_FUSE_FILE*
|
||||
vifm-% vifm-help.txt /*vifm-%*
|
||||
vifm-%C vifm-help.txt /*vifm-%C*
|
||||
vifm-%D vifm-help.txt /*vifm-%D*
|
||||
vifm-%F vifm-help.txt /*vifm-%F*
|
||||
vifm-%IU vifm-help.txt /*vifm-%IU*
|
||||
vifm-%Iu vifm-help.txt /*vifm-%Iu*
|
||||
vifm-%L vifm-help.txt /*vifm-%L*
|
||||
vifm-%M vifm-help.txt /*vifm-%M*
|
||||
vifm-%N vifm-help.txt /*vifm-%N*
|
||||
vifm-%Pl vifm-help.txt /*vifm-%Pl*
|
||||
vifm-%Pz vifm-help.txt /*vifm-%Pz*
|
||||
vifm-%S vifm-help.txt /*vifm-%S*
|
||||
vifm-%U vifm-help.txt /*vifm-%U*
|
||||
vifm-%a vifm-help.txt /*vifm-%a*
|
||||
vifm-%b vifm-help.txt /*vifm-%b*
|
||||
vifm-%c vifm-help.txt /*vifm-%c*
|
||||
vifm-%d vifm-help.txt /*vifm-%d*
|
||||
vifm-%f vifm-help.txt /*vifm-%f*
|
||||
vifm-%i vifm-help.txt /*vifm-%i*
|
||||
vifm-%l vifm-help.txt /*vifm-%l*
|
||||
vifm-%m vifm-help.txt /*vifm-%m*
|
||||
vifm-%n vifm-help.txt /*vifm-%n*
|
||||
vifm-%pc vifm-help.txt /*vifm-%pc*
|
||||
vifm-%pd vifm-help.txt /*vifm-%pd*
|
||||
vifm-%ph vifm-help.txt /*vifm-%ph*
|
||||
vifm-%pu vifm-help.txt /*vifm-%pu*
|
||||
vifm-%pw vifm-help.txt /*vifm-%pw*
|
||||
vifm-%px vifm-help.txt /*vifm-%px*
|
||||
vifm-%py vifm-help.txt /*vifm-%py*
|
||||
vifm-%q vifm-help.txt /*vifm-%q*
|
||||
vifm-%r vifm-help.txt /*vifm-%r*
|
||||
vifm-%s vifm-help.txt /*vifm-%s*
|
||||
vifm-%u vifm-help.txt /*vifm-%u*
|
||||
vifm-%v vifm-help.txt /*vifm-%v*
|
||||
vifm-' vifm-help.txt /*vifm-'*
|
||||
vifm-'aproposprg' vifm-help.txt /*vifm-'aproposprg'*
|
||||
vifm-'autocd' vifm-help.txt /*vifm-'autocd'*
|
||||
vifm-'autochpos' vifm-help.txt /*vifm-'autochpos'*
|
||||
vifm-'caseoptions' vifm-help.txt /*vifm-'caseoptions'*
|
||||
vifm-'cd' vifm-help.txt /*vifm-'cd'*
|
||||
vifm-'cdpath' vifm-help.txt /*vifm-'cdpath'*
|
||||
vifm-'cf' vifm-help.txt /*vifm-'cf'*
|
||||
vifm-'chaselinks' vifm-help.txt /*vifm-'chaselinks'*
|
||||
vifm-'classify' vifm-help.txt /*vifm-'classify'*
|
||||
vifm-'co' vifm-help.txt /*vifm-'co'*
|
||||
vifm-'columns' vifm-help.txt /*vifm-'columns'*
|
||||
vifm-'confirm' vifm-help.txt /*vifm-'confirm'*
|
||||
vifm-'cpo' vifm-help.txt /*vifm-'cpo'*
|
||||
vifm-'cpoptions' vifm-help.txt /*vifm-'cpoptions'*
|
||||
vifm-'cvoptions' vifm-help.txt /*vifm-'cvoptions'*
|
||||
vifm-'deleteprg' vifm-help.txt /*vifm-'deleteprg'*
|
||||
vifm-'dirsize' vifm-help.txt /*vifm-'dirsize'*
|
||||
vifm-'dotdirs' vifm-help.txt /*vifm-'dotdirs'*
|
||||
vifm-'dotfiles' vifm-help.txt /*vifm-'dotfiles'*
|
||||
vifm-'fastrun' vifm-help.txt /*vifm-'fastrun'*
|
||||
vifm-'fcs' vifm-help.txt /*vifm-'fcs'*
|
||||
vifm-'fillchars' vifm-help.txt /*vifm-'fillchars'*
|
||||
vifm-'findprg' vifm-help.txt /*vifm-'findprg'*
|
||||
vifm-'followlinks' vifm-help.txt /*vifm-'followlinks'*
|
||||
vifm-'fusehome' vifm-help.txt /*vifm-'fusehome'*
|
||||
vifm-'gd' vifm-help.txt /*vifm-'gd'*
|
||||
vifm-'gdefault' vifm-help.txt /*vifm-'gdefault'*
|
||||
vifm-'grepprg' vifm-help.txt /*vifm-'grepprg'*
|
||||
vifm-'hi' vifm-help.txt /*vifm-'hi'*
|
||||
vifm-'histcursor' vifm-help.txt /*vifm-'histcursor'*
|
||||
vifm-'history' vifm-help.txt /*vifm-'history'*
|
||||
vifm-'hls' vifm-help.txt /*vifm-'hls'*
|
||||
vifm-'hlsearch' vifm-help.txt /*vifm-'hlsearch'*
|
||||
vifm-'ic' vifm-help.txt /*vifm-'ic'*
|
||||
vifm-'iec' vifm-help.txt /*vifm-'iec'*
|
||||
vifm-'ignorecase' vifm-help.txt /*vifm-'ignorecase'*
|
||||
vifm-'incsearch' vifm-help.txt /*vifm-'incsearch'*
|
||||
vifm-'iooptions' vifm-help.txt /*vifm-'iooptions'*
|
||||
vifm-'is' vifm-help.txt /*vifm-'is'*
|
||||
vifm-'laststatus' vifm-help.txt /*vifm-'laststatus'*
|
||||
vifm-'lines' vifm-help.txt /*vifm-'lines'*
|
||||
vifm-'locateprg' vifm-help.txt /*vifm-'locateprg'*
|
||||
vifm-'ls' vifm-help.txt /*vifm-'ls'*
|
||||
vifm-'lsoptions' vifm-help.txt /*vifm-'lsoptions'*
|
||||
vifm-'lsview' vifm-help.txt /*vifm-'lsview'*
|
||||
vifm-'mediaprg' vifm-help.txt /*vifm-'mediaprg'*
|
||||
vifm-'milleroptions' vifm-help.txt /*vifm-'milleroptions'*
|
||||
vifm-'millerview' vifm-help.txt /*vifm-'millerview'*
|
||||
vifm-'mintimeoutlen' vifm-help.txt /*vifm-'mintimeoutlen'*
|
||||
vifm-'nu' vifm-help.txt /*vifm-'nu'*
|
||||
vifm-'number' vifm-help.txt /*vifm-'number'*
|
||||
vifm-'numberwidth' vifm-help.txt /*vifm-'numberwidth'*
|
||||
vifm-'nuw' vifm-help.txt /*vifm-'nuw'*
|
||||
vifm-'previewoptions' vifm-help.txt /*vifm-'previewoptions'*
|
||||
vifm-'previewprg' vifm-help.txt /*vifm-'previewprg'*
|
||||
vifm-'quickview' vifm-help.txt /*vifm-'quickview'*
|
||||
vifm-'relativenumber' vifm-help.txt /*vifm-'relativenumber'*
|
||||
vifm-'rnu' vifm-help.txt /*vifm-'rnu'*
|
||||
vifm-'ruf' vifm-help.txt /*vifm-'ruf'*
|
||||
vifm-'rulerformat' vifm-help.txt /*vifm-'rulerformat'*
|
||||
vifm-'runexec' vifm-help.txt /*vifm-'runexec'*
|
||||
vifm-'scb' vifm-help.txt /*vifm-'scb'*
|
||||
vifm-'scrollbind' vifm-help.txt /*vifm-'scrollbind'*
|
||||
vifm-'scrolloff' vifm-help.txt /*vifm-'scrolloff'*
|
||||
vifm-'scs' vifm-help.txt /*vifm-'scs'*
|
||||
vifm-'sessionoptions' vifm-help.txt /*vifm-'sessionoptions'*
|
||||
vifm-'sh' vifm-help.txt /*vifm-'sh'*
|
||||
vifm-'shcf' vifm-help.txt /*vifm-'shcf'*
|
||||
vifm-'shell' vifm-help.txt /*vifm-'shell'*
|
||||
vifm-'shellcmdflag' vifm-help.txt /*vifm-'shellcmdflag'*
|
||||
vifm-'shm' vifm-help.txt /*vifm-'shm'*
|
||||
vifm-'shortmess' vifm-help.txt /*vifm-'shortmess'*
|
||||
vifm-'showtabline' vifm-help.txt /*vifm-'showtabline'*
|
||||
vifm-'sizefmt' vifm-help.txt /*vifm-'sizefmt'*
|
||||
vifm-'slowfs' vifm-help.txt /*vifm-'slowfs'*
|
||||
vifm-'smartcase' vifm-help.txt /*vifm-'smartcase'*
|
||||
vifm-'so' vifm-help.txt /*vifm-'so'*
|
||||
vifm-'sort' vifm-help.txt /*vifm-'sort'*
|
||||
vifm-'sortgroups' vifm-help.txt /*vifm-'sortgroups'*
|
||||
vifm-'sortnumbers' vifm-help.txt /*vifm-'sortnumbers'*
|
||||
vifm-'sortorder' vifm-help.txt /*vifm-'sortorder'*
|
||||
vifm-'ssop' vifm-help.txt /*vifm-'ssop'*
|
||||
vifm-'stal' vifm-help.txt /*vifm-'stal'*
|
||||
vifm-'statusline' vifm-help.txt /*vifm-'statusline'*
|
||||
vifm-'stl' vifm-help.txt /*vifm-'stl'*
|
||||
vifm-'suggestoptions' vifm-help.txt /*vifm-'suggestoptions'*
|
||||
vifm-'syncregs' vifm-help.txt /*vifm-'syncregs'*
|
||||
vifm-'syscalls' vifm-help.txt /*vifm-'syscalls'*
|
||||
vifm-'tablabel' vifm-help.txt /*vifm-'tablabel'*
|
||||
vifm-'tabprefix' vifm-help.txt /*vifm-'tabprefix'*
|
||||
vifm-'tabscope' vifm-help.txt /*vifm-'tabscope'*
|
||||
vifm-'tabstop' vifm-help.txt /*vifm-'tabstop'*
|
||||
vifm-'tabsuffix' vifm-help.txt /*vifm-'tabsuffix'*
|
||||
vifm-'timefmt' vifm-help.txt /*vifm-'timefmt'*
|
||||
vifm-'timeoutlen' vifm-help.txt /*vifm-'timeoutlen'*
|
||||
vifm-'title' vifm-help.txt /*vifm-'title'*
|
||||
vifm-'tm' vifm-help.txt /*vifm-'tm'*
|
||||
vifm-'to' vifm-help.txt /*vifm-'to'*
|
||||
vifm-'trash' vifm-help.txt /*vifm-'trash'*
|
||||
vifm-'trashdir' vifm-help.txt /*vifm-'trashdir'*
|
||||
vifm-'ts' vifm-help.txt /*vifm-'ts'*
|
||||
vifm-'tuioptions' vifm-help.txt /*vifm-'tuioptions'*
|
||||
vifm-'ul' vifm-help.txt /*vifm-'ul'*
|
||||
vifm-'undolevels' vifm-help.txt /*vifm-'undolevels'*
|
||||
vifm-'vicmd' vifm-help.txt /*vifm-'vicmd'*
|
||||
vifm-'viewcolumns' vifm-help.txt /*vifm-'viewcolumns'*
|
||||
vifm-'vifminfo' vifm-help.txt /*vifm-'vifminfo'*
|
||||
vifm-'vimhelp' vifm-help.txt /*vifm-'vimhelp'*
|
||||
vifm-'vixcmd' vifm-help.txt /*vifm-'vixcmd'*
|
||||
vifm-'wildmenu' vifm-help.txt /*vifm-'wildmenu'*
|
||||
vifm-'wildstyle' vifm-help.txt /*vifm-'wildstyle'*
|
||||
vifm-'wmnu' vifm-help.txt /*vifm-'wmnu'*
|
||||
vifm-'wordchars' vifm-help.txt /*vifm-'wordchars'*
|
||||
vifm-'wrap' vifm-help.txt /*vifm-'wrap'*
|
||||
vifm-'wrapscan' vifm-help.txt /*vifm-'wrapscan'*
|
||||
vifm-'ws' vifm-help.txt /*vifm-'ws'*
|
||||
vifm-( vifm-help.txt /*vifm-(*
|
||||
vifm-) vifm-help.txt /*vifm-)*
|
||||
vifm-, vifm-help.txt /*vifm-,*
|
||||
vifm--+c vifm-help.txt /*vifm--+c*
|
||||
vifm---choose-dir vifm-help.txt /*vifm---choose-dir*
|
||||
vifm---choose-files vifm-help.txt /*vifm---choose-files*
|
||||
vifm---delimiter vifm-help.txt /*vifm---delimiter*
|
||||
vifm---help vifm-help.txt /*vifm---help*
|
||||
vifm---logging vifm-help.txt /*vifm---logging*
|
||||
vifm---no-configs vifm-help.txt /*vifm---no-configs*
|
||||
vifm---on-choose vifm-help.txt /*vifm---on-choose*
|
||||
vifm---remote vifm-help.txt /*vifm---remote*
|
||||
vifm---remote-expr vifm-help.txt /*vifm---remote-expr*
|
||||
vifm---select vifm-help.txt /*vifm---select*
|
||||
vifm---server-list vifm-help.txt /*vifm---server-list*
|
||||
vifm---server-name vifm-help.txt /*vifm---server-name*
|
||||
vifm---version vifm-help.txt /*vifm---version*
|
||||
vifm--c vifm-help.txt /*vifm--c*
|
||||
vifm--f vifm-help.txt /*vifm--f*
|
||||
vifm--h vifm-help.txt /*vifm--h*
|
||||
vifm--v vifm-help.txt /*vifm--v*
|
||||
vifm-. vifm-help.txt /*vifm-.*
|
||||
vifm-/ vifm-help.txt /*vifm-\/*
|
||||
vifm-0 vifm-help.txt /*vifm-0*
|
||||
vifm-: vifm-help.txt /*vifm-:*
|
||||
vifm-:! vifm-help.txt /*vifm-:!*
|
||||
vifm-:!! vifm-help.txt /*vifm-:!!*
|
||||
vifm-:alink vifm-help.txt /*vifm-:alink*
|
||||
vifm-:apropos vifm-help.txt /*vifm-:apropos*
|
||||
vifm-:au vifm-help.txt /*vifm-:au*
|
||||
vifm-:autocmd vifm-help.txt /*vifm-:autocmd*
|
||||
vifm-:bar vifm-help.txt /*vifm-:bar*
|
||||
vifm-:bmark vifm-help.txt /*vifm-:bmark*
|
||||
vifm-:bmarks vifm-help.txt /*vifm-:bmarks*
|
||||
vifm-:bmgo vifm-help.txt /*vifm-:bmgo*
|
||||
vifm-:c vifm-help.txt /*vifm-:c*
|
||||
vifm-:ca vifm-help.txt /*vifm-:ca*
|
||||
vifm-:cabbrev vifm-help.txt /*vifm-:cabbrev*
|
||||
vifm-:cd vifm-help.txt /*vifm-:cd*
|
||||
vifm-:cds vifm-help.txt /*vifm-:cds*
|
||||
vifm-:change vifm-help.txt /*vifm-:change*
|
||||
vifm-:chmod vifm-help.txt /*vifm-:chmod*
|
||||
vifm-:chown vifm-help.txt /*vifm-:chown*
|
||||
vifm-:clone vifm-help.txt /*vifm-:clone*
|
||||
vifm-:cm vifm-help.txt /*vifm-:cm*
|
||||
vifm-:cmap vifm-help.txt /*vifm-:cmap*
|
||||
vifm-:cno vifm-help.txt /*vifm-:cno*
|
||||
vifm-:cnorea vifm-help.txt /*vifm-:cnorea*
|
||||
vifm-:cnoreabbrev vifm-help.txt /*vifm-:cnoreabbrev*
|
||||
vifm-:cnoremap vifm-help.txt /*vifm-:cnoremap*
|
||||
vifm-:co vifm-help.txt /*vifm-:co*
|
||||
vifm-:colo vifm-help.txt /*vifm-:colo*
|
||||
vifm-:colorscheme vifm-help.txt /*vifm-:colorscheme*
|
||||
vifm-:com vifm-help.txt /*vifm-:com*
|
||||
vifm-:comc vifm-help.txt /*vifm-:comc*
|
||||
vifm-:comclear vifm-help.txt /*vifm-:comclear*
|
||||
vifm-:command vifm-help.txt /*vifm-:command*
|
||||
vifm-:command-params vifm-help.txt /*vifm-:command-params*
|
||||
vifm-:compare vifm-help.txt /*vifm-:compare*
|
||||
vifm-:cope vifm-help.txt /*vifm-:cope*
|
||||
vifm-:copen vifm-help.txt /*vifm-:copen*
|
||||
vifm-:copy vifm-help.txt /*vifm-:copy*
|
||||
vifm-:cq vifm-help.txt /*vifm-:cq*
|
||||
vifm-:cquit vifm-help.txt /*vifm-:cquit*
|
||||
vifm-:cu vifm-help.txt /*vifm-:cu*
|
||||
vifm-:cuna vifm-help.txt /*vifm-:cuna*
|
||||
vifm-:cunabbrev vifm-help.txt /*vifm-:cunabbrev*
|
||||
vifm-:cunmap vifm-help.txt /*vifm-:cunmap*
|
||||
vifm-:d vifm-help.txt /*vifm-:d*
|
||||
vifm-:delbmarks vifm-help.txt /*vifm-:delbmarks*
|
||||
vifm-:delc vifm-help.txt /*vifm-:delc*
|
||||
vifm-:delcommand vifm-help.txt /*vifm-:delcommand*
|
||||
vifm-:delete vifm-help.txt /*vifm-:delete*
|
||||
vifm-:delm vifm-help.txt /*vifm-:delm*
|
||||
vifm-:delmarks vifm-help.txt /*vifm-:delmarks*
|
||||
vifm-:delsession vifm-help.txt /*vifm-:delsession*
|
||||
vifm-:di vifm-help.txt /*vifm-:di*
|
||||
vifm-:dirs vifm-help.txt /*vifm-:dirs*
|
||||
vifm-:display vifm-help.txt /*vifm-:display*
|
||||
vifm-:dm vifm-help.txt /*vifm-:dm*
|
||||
vifm-:dmap vifm-help.txt /*vifm-:dmap*
|
||||
vifm-:dn vifm-help.txt /*vifm-:dn*
|
||||
vifm-:dnoremap vifm-help.txt /*vifm-:dnoremap*
|
||||
vifm-:du vifm-help.txt /*vifm-:du*
|
||||
vifm-:dunmap vifm-help.txt /*vifm-:dunmap*
|
||||
vifm-:e vifm-help.txt /*vifm-:e*
|
||||
vifm-:ec vifm-help.txt /*vifm-:ec*
|
||||
vifm-:echo vifm-help.txt /*vifm-:echo*
|
||||
vifm-:edit vifm-help.txt /*vifm-:edit*
|
||||
vifm-:el vifm-help.txt /*vifm-:el*
|
||||
vifm-:else vifm-help.txt /*vifm-:else*
|
||||
vifm-:elsei vifm-help.txt /*vifm-:elsei*
|
||||
vifm-:elseif vifm-help.txt /*vifm-:elseif*
|
||||
vifm-:empty vifm-help.txt /*vifm-:empty*
|
||||
vifm-:en vifm-help.txt /*vifm-:en*
|
||||
vifm-:endif vifm-help.txt /*vifm-:endif*
|
||||
vifm-:exe vifm-help.txt /*vifm-:exe*
|
||||
vifm-:execute vifm-help.txt /*vifm-:execute*
|
||||
vifm-:exi vifm-help.txt /*vifm-:exi*
|
||||
vifm-:exit vifm-help.txt /*vifm-:exit*
|
||||
vifm-:f vifm-help.txt /*vifm-:f*
|
||||
vifm-:file vifm-help.txt /*vifm-:file*
|
||||
vifm-:filet vifm-help.txt /*vifm-:filet*
|
||||
vifm-:filetype vifm-help.txt /*vifm-:filetype*
|
||||
vifm-:filev vifm-help.txt /*vifm-:filev*
|
||||
vifm-:fileviewer vifm-help.txt /*vifm-:fileviewer*
|
||||
vifm-:filex vifm-help.txt /*vifm-:filex*
|
||||
vifm-:filextype vifm-help.txt /*vifm-:filextype*
|
||||
vifm-:filter vifm-help.txt /*vifm-:filter*
|
||||
vifm-:fin vifm-help.txt /*vifm-:fin*
|
||||
vifm-:find vifm-help.txt /*vifm-:find*
|
||||
vifm-:fini vifm-help.txt /*vifm-:fini*
|
||||
vifm-:finish vifm-help.txt /*vifm-:finish*
|
||||
vifm-:go vifm-help.txt /*vifm-:go*
|
||||
vifm-:goto vifm-help.txt /*vifm-:goto*
|
||||
vifm-:gr vifm-help.txt /*vifm-:gr*
|
||||
vifm-:grep vifm-help.txt /*vifm-:grep*
|
||||
vifm-:h vifm-help.txt /*vifm-:h*
|
||||
vifm-:help vifm-help.txt /*vifm-:help*
|
||||
vifm-:hi vifm-help.txt /*vifm-:hi*
|
||||
vifm-:hideui vifm-help.txt /*vifm-:hideui*
|
||||
vifm-:highlight vifm-help.txt /*vifm-:highlight*
|
||||
vifm-:his vifm-help.txt /*vifm-:his*
|
||||
vifm-:histnext vifm-help.txt /*vifm-:histnext*
|
||||
vifm-:history vifm-help.txt /*vifm-:history*
|
||||
vifm-:histprev vifm-help.txt /*vifm-:histprev*
|
||||
vifm-:if vifm-help.txt /*vifm-:if*
|
||||
vifm-:invert vifm-help.txt /*vifm-:invert*
|
||||
vifm-:jobs vifm-help.txt /*vifm-:jobs*
|
||||
vifm-:keepsel vifm-help.txt /*vifm-:keepsel*
|
||||
vifm-:let vifm-help.txt /*vifm-:let*
|
||||
vifm-:locate vifm-help.txt /*vifm-:locate*
|
||||
vifm-:ls vifm-help.txt /*vifm-:ls*
|
||||
vifm-:lstrash vifm-help.txt /*vifm-:lstrash*
|
||||
vifm-:m vifm-help.txt /*vifm-:m*
|
||||
vifm-:ma vifm-help.txt /*vifm-:ma*
|
||||
vifm-:map vifm-help.txt /*vifm-:map*
|
||||
vifm-:mark vifm-help.txt /*vifm-:mark*
|
||||
vifm-:marks vifm-help.txt /*vifm-:marks*
|
||||
vifm-:media vifm-help.txt /*vifm-:media*
|
||||
vifm-:mes vifm-help.txt /*vifm-:mes*
|
||||
vifm-:messages vifm-help.txt /*vifm-:messages*
|
||||
vifm-:mkdir vifm-help.txt /*vifm-:mkdir*
|
||||
vifm-:mm vifm-help.txt /*vifm-:mm*
|
||||
vifm-:mmap vifm-help.txt /*vifm-:mmap*
|
||||
vifm-:mn vifm-help.txt /*vifm-:mn*
|
||||
vifm-:mnoremap vifm-help.txt /*vifm-:mnoremap*
|
||||
vifm-:move vifm-help.txt /*vifm-:move*
|
||||
vifm-:mu vifm-help.txt /*vifm-:mu*
|
||||
vifm-:munmap vifm-help.txt /*vifm-:munmap*
|
||||
vifm-:nm vifm-help.txt /*vifm-:nm*
|
||||
vifm-:nmap vifm-help.txt /*vifm-:nmap*
|
||||
vifm-:nn vifm-help.txt /*vifm-:nn*
|
||||
vifm-:nnoremap vifm-help.txt /*vifm-:nnoremap*
|
||||
vifm-:no vifm-help.txt /*vifm-:no*
|
||||
vifm-:noh vifm-help.txt /*vifm-:noh*
|
||||
vifm-:nohlsearch vifm-help.txt /*vifm-:nohlsearch*
|
||||
vifm-:noremap vifm-help.txt /*vifm-:noremap*
|
||||
vifm-:norm vifm-help.txt /*vifm-:norm*
|
||||
vifm-:normal vifm-help.txt /*vifm-:normal*
|
||||
vifm-:nun vifm-help.txt /*vifm-:nun*
|
||||
vifm-:nunmap vifm-help.txt /*vifm-:nunmap*
|
||||
vifm-:on vifm-help.txt /*vifm-:on*
|
||||
vifm-:only vifm-help.txt /*vifm-:only*
|
||||
vifm-:plugin vifm-help.txt /*vifm-:plugin*
|
||||
vifm-:plugins vifm-help.txt /*vifm-:plugins*
|
||||
vifm-:popd vifm-help.txt /*vifm-:popd*
|
||||
vifm-:pu vifm-help.txt /*vifm-:pu*
|
||||
vifm-:pushd vifm-help.txt /*vifm-:pushd*
|
||||
vifm-:put vifm-help.txt /*vifm-:put*
|
||||
vifm-:pw vifm-help.txt /*vifm-:pw*
|
||||
vifm-:pwd vifm-help.txt /*vifm-:pwd*
|
||||
vifm-:q vifm-help.txt /*vifm-:q*
|
||||
vifm-:qa vifm-help.txt /*vifm-:qa*
|
||||
vifm-:qall vifm-help.txt /*vifm-:qall*
|
||||
vifm-:qm vifm-help.txt /*vifm-:qm*
|
||||
vifm-:qmap vifm-help.txt /*vifm-:qmap*
|
||||
vifm-:qn vifm-help.txt /*vifm-:qn*
|
||||
vifm-:qnoremap vifm-help.txt /*vifm-:qnoremap*
|
||||
vifm-:quit vifm-help.txt /*vifm-:quit*
|
||||
vifm-:qun vifm-help.txt /*vifm-:qun*
|
||||
vifm-:qunmap vifm-help.txt /*vifm-:qunmap*
|
||||
vifm-:range vifm-help.txt /*vifm-:range*
|
||||
vifm-:redr vifm-help.txt /*vifm-:redr*
|
||||
vifm-:redraw vifm-help.txt /*vifm-:redraw*
|
||||
vifm-:reg vifm-help.txt /*vifm-:reg*
|
||||
vifm-:registers vifm-help.txt /*vifm-:registers*
|
||||
vifm-:regular vifm-help.txt /*vifm-:regular*
|
||||
vifm-:rename vifm-help.txt /*vifm-:rename*
|
||||
vifm-:restart vifm-help.txt /*vifm-:restart*
|
||||
vifm-:restore vifm-help.txt /*vifm-:restore*
|
||||
vifm-:rlink vifm-help.txt /*vifm-:rlink*
|
||||
vifm-:s vifm-help.txt /*vifm-:s*
|
||||
vifm-:screen vifm-help.txt /*vifm-:screen*
|
||||
vifm-:se vifm-help.txt /*vifm-:se*
|
||||
vifm-:select vifm-help.txt /*vifm-:select*
|
||||
vifm-:session vifm-help.txt /*vifm-:session*
|
||||
vifm-:set vifm-help.txt /*vifm-:set*
|
||||
vifm-:setg vifm-help.txt /*vifm-:setg*
|
||||
vifm-:setglobal vifm-help.txt /*vifm-:setglobal*
|
||||
vifm-:setl vifm-help.txt /*vifm-:setl*
|
||||
vifm-:setlocal vifm-help.txt /*vifm-:setlocal*
|
||||
vifm-:sh vifm-help.txt /*vifm-:sh*
|
||||
vifm-:shell vifm-help.txt /*vifm-:shell*
|
||||
vifm-:siblnext vifm-help.txt /*vifm-:siblnext*
|
||||
vifm-:siblprev vifm-help.txt /*vifm-:siblprev*
|
||||
vifm-:so vifm-help.txt /*vifm-:so*
|
||||
vifm-:sor vifm-help.txt /*vifm-:sor*
|
||||
vifm-:sort vifm-help.txt /*vifm-:sort*
|
||||
vifm-:source vifm-help.txt /*vifm-:source*
|
||||
vifm-:sp vifm-help.txt /*vifm-:sp*
|
||||
vifm-:split vifm-help.txt /*vifm-:split*
|
||||
vifm-:st vifm-help.txt /*vifm-:st*
|
||||
vifm-:stop vifm-help.txt /*vifm-:stop*
|
||||
vifm-:substitute vifm-help.txt /*vifm-:substitute*
|
||||
vifm-:sync vifm-help.txt /*vifm-:sync*
|
||||
vifm-:tabc vifm-help.txt /*vifm-:tabc*
|
||||
vifm-:tabclose vifm-help.txt /*vifm-:tabclose*
|
||||
vifm-:tabm vifm-help.txt /*vifm-:tabm*
|
||||
vifm-:tabmove vifm-help.txt /*vifm-:tabmove*
|
||||
vifm-:tabn vifm-help.txt /*vifm-:tabn*
|
||||
vifm-:tabname vifm-help.txt /*vifm-:tabname*
|
||||
vifm-:tabnew vifm-help.txt /*vifm-:tabnew*
|
||||
vifm-:tabnext vifm-help.txt /*vifm-:tabnext*
|
||||
vifm-:tabo vifm-help.txt /*vifm-:tabo*
|
||||
vifm-:tabonly vifm-help.txt /*vifm-:tabonly*
|
||||
vifm-:tabp vifm-help.txt /*vifm-:tabp*
|
||||
vifm-:tabprevious vifm-help.txt /*vifm-:tabprevious*
|
||||
vifm-:touch vifm-help.txt /*vifm-:touch*
|
||||
vifm-:tr vifm-help.txt /*vifm-:tr*
|
||||
vifm-:trashes vifm-help.txt /*vifm-:trashes*
|
||||
vifm-:tree vifm-help.txt /*vifm-:tree*
|
||||
vifm-:undol vifm-help.txt /*vifm-:undol*
|
||||
vifm-:undolist vifm-help.txt /*vifm-:undolist*
|
||||
vifm-:unl vifm-help.txt /*vifm-:unl*
|
||||
vifm-:unlet vifm-help.txt /*vifm-:unlet*
|
||||
vifm-:unm vifm-help.txt /*vifm-:unm*
|
||||
vifm-:unmap vifm-help.txt /*vifm-:unmap*
|
||||
vifm-:unselect vifm-help.txt /*vifm-:unselect*
|
||||
vifm-:ve vifm-help.txt /*vifm-:ve*
|
||||
vifm-:version vifm-help.txt /*vifm-:version*
|
||||
vifm-:vie vifm-help.txt /*vifm-:vie*
|
||||
vifm-:view vifm-help.txt /*vifm-:view*
|
||||
vifm-:vifm vifm-help.txt /*vifm-:vifm*
|
||||
vifm-:vm vifm-help.txt /*vifm-:vm*
|
||||
vifm-:vmap vifm-help.txt /*vifm-:vmap*
|
||||
vifm-:vn vifm-help.txt /*vifm-:vn*
|
||||
vifm-:vnoremap vifm-help.txt /*vifm-:vnoremap*
|
||||
vifm-:volume vifm-help.txt /*vifm-:volume*
|
||||
vifm-:vs vifm-help.txt /*vifm-:vs*
|
||||
vifm-:vsplit vifm-help.txt /*vifm-:vsplit*
|
||||
vifm-:vu vifm-help.txt /*vifm-:vu*
|
||||
vifm-:vunmap vifm-help.txt /*vifm-:vunmap*
|
||||
vifm-:w vifm-help.txt /*vifm-:w*
|
||||
vifm-:winc vifm-help.txt /*vifm-:winc*
|
||||
vifm-:wincmd vifm-help.txt /*vifm-:wincmd*
|
||||
vifm-:windo vifm-help.txt /*vifm-:windo*
|
||||
vifm-:winrun vifm-help.txt /*vifm-:winrun*
|
||||
vifm-:wq vifm-help.txt /*vifm-:wq*
|
||||
vifm-:wqa vifm-help.txt /*vifm-:wqa*
|
||||
vifm-:wqall vifm-help.txt /*vifm-:wqall*
|
||||
vifm-:write vifm-help.txt /*vifm-:write*
|
||||
vifm-:x vifm-help.txt /*vifm-:x*
|
||||
vifm-:xa vifm-help.txt /*vifm-:xa*
|
||||
vifm-:xall vifm-help.txt /*vifm-:xall*
|
||||
vifm-:xit vifm-help.txt /*vifm-:xit*
|
||||
vifm-:y vifm-help.txt /*vifm-:y*
|
||||
vifm-:yank vifm-help.txt /*vifm-:yank*
|
||||
vifm-; vifm-help.txt /*vifm-;*
|
||||
vifm-= vifm-help.txt /*vifm-=*
|
||||
vifm-? vifm-help.txt /*vifm-?*
|
||||
vifm-C vifm-help.txt /*vifm-C*
|
||||
vifm-CTRL-A vifm-help.txt /*vifm-CTRL-A*
|
||||
vifm-CTRL-B vifm-help.txt /*vifm-CTRL-B*
|
||||
vifm-CTRL-C vifm-help.txt /*vifm-CTRL-C*
|
||||
vifm-CTRL-D vifm-help.txt /*vifm-CTRL-D*
|
||||
vifm-CTRL-E vifm-help.txt /*vifm-CTRL-E*
|
||||
vifm-CTRL-F vifm-help.txt /*vifm-CTRL-F*
|
||||
vifm-CTRL-G vifm-help.txt /*vifm-CTRL-G*
|
||||
vifm-CTRL-I vifm-help.txt /*vifm-CTRL-I*
|
||||
vifm-CTRL-L vifm-help.txt /*vifm-CTRL-L*
|
||||
vifm-CTRL-N vifm-help.txt /*vifm-CTRL-N*
|
||||
vifm-CTRL-O vifm-help.txt /*vifm-CTRL-O*
|
||||
vifm-CTRL-P vifm-help.txt /*vifm-CTRL-P*
|
||||
vifm-CTRL-R vifm-help.txt /*vifm-CTRL-R*
|
||||
vifm-CTRL-U vifm-help.txt /*vifm-CTRL-U*
|
||||
vifm-CTRL-W_+ vifm-help.txt /*vifm-CTRL-W_+*
|
||||
vifm-CTRL-W_- vifm-help.txt /*vifm-CTRL-W_-*
|
||||
vifm-CTRL-W_< vifm-help.txt /*vifm-CTRL-W_<*
|
||||
vifm-CTRL-W_= vifm-help.txt /*vifm-CTRL-W_=*
|
||||
vifm-CTRL-W_> vifm-help.txt /*vifm-CTRL-W_>*
|
||||
vifm-CTRL-W_H vifm-help.txt /*vifm-CTRL-W_H*
|
||||
vifm-CTRL-W_J vifm-help.txt /*vifm-CTRL-W_J*
|
||||
vifm-CTRL-W_K vifm-help.txt /*vifm-CTRL-W_K*
|
||||
vifm-CTRL-W_L vifm-help.txt /*vifm-CTRL-W_L*
|
||||
vifm-CTRL-W__ vifm-help.txt /*vifm-CTRL-W__*
|
||||
vifm-CTRL-W_b vifm-help.txt /*vifm-CTRL-W_b*
|
||||
vifm-CTRL-W_bar vifm-help.txt /*vifm-CTRL-W_bar*
|
||||
vifm-CTRL-W_h vifm-help.txt /*vifm-CTRL-W_h*
|
||||
vifm-CTRL-W_j vifm-help.txt /*vifm-CTRL-W_j*
|
||||
vifm-CTRL-W_k vifm-help.txt /*vifm-CTRL-W_k*
|
||||
vifm-CTRL-W_l vifm-help.txt /*vifm-CTRL-W_l*
|
||||
vifm-CTRL-W_o vifm-help.txt /*vifm-CTRL-W_o*
|
||||
vifm-CTRL-W_p vifm-help.txt /*vifm-CTRL-W_p*
|
||||
vifm-CTRL-W_s vifm-help.txt /*vifm-CTRL-W_s*
|
||||
vifm-CTRL-W_t vifm-help.txt /*vifm-CTRL-W_t*
|
||||
vifm-CTRL-W_v vifm-help.txt /*vifm-CTRL-W_v*
|
||||
vifm-CTRL-W_w vifm-help.txt /*vifm-CTRL-W_w*
|
||||
vifm-CTRL-W_x vifm-help.txt /*vifm-CTRL-W_x*
|
||||
vifm-CTRL-W_z vifm-help.txt /*vifm-CTRL-W_z*
|
||||
vifm-CTRL-X vifm-help.txt /*vifm-CTRL-X*
|
||||
vifm-CTRL-Y vifm-help.txt /*vifm-CTRL-Y*
|
||||
vifm-D vifm-help.txt /*vifm-D*
|
||||
vifm-DD vifm-help.txt /*vifm-DD*
|
||||
vifm-Enter vifm-help.txt /*vifm-Enter*
|
||||
vifm-Escape vifm-help.txt /*vifm-Escape*
|
||||
vifm-F vifm-help.txt /*vifm-F*
|
||||
vifm-FUSE_MOUNT vifm-help.txt /*vifm-FUSE_MOUNT*
|
||||
vifm-FUSE_MOUNT2 vifm-help.txt /*vifm-FUSE_MOUNT2*
|
||||
vifm-FUSE_MOUNT3 vifm-help.txt /*vifm-FUSE_MOUNT3*
|
||||
vifm-G vifm-help.txt /*vifm-G*
|
||||
vifm-H vifm-help.txt /*vifm-H*
|
||||
vifm-L vifm-help.txt /*vifm-L*
|
||||
vifm-M vifm-help.txt /*vifm-M*
|
||||
vifm-N vifm-help.txt /*vifm-N*
|
||||
vifm-P vifm-help.txt /*vifm-P*
|
||||
vifm-PageDown vifm-help.txt /*vifm-PageDown*
|
||||
vifm-PageUp vifm-help.txt /*vifm-PageUp*
|
||||
vifm-SHIFT-Tab vifm-help.txt /*vifm-SHIFT-Tab*
|
||||
vifm-Space vifm-help.txt /*vifm-Space*
|
||||
vifm-Tab vifm-help.txt /*vifm-Tab*
|
||||
vifm-V vifm-help.txt /*vifm-V*
|
||||
vifm-Y vifm-help.txt /*vifm-Y*
|
||||
vifm-ZQ vifm-help.txt /*vifm-ZQ*
|
||||
vifm-ZZ vifm-help.txt /*vifm-ZZ*
|
||||
vifm-[R vifm-help.txt /*vifm-[R*
|
||||
vifm-[c vifm-help.txt /*vifm-[c*
|
||||
vifm-[count] vifm-help.txt /*vifm-[count]*
|
||||
vifm-[d vifm-help.txt /*vifm-[d*
|
||||
vifm-[r vifm-help.txt /*vifm-[r*
|
||||
vifm-[s vifm-help.txt /*vifm-[s*
|
||||
vifm-[z vifm-help.txt /*vifm-[z*
|
||||
vifm-]R vifm-help.txt /*vifm-]R*
|
||||
vifm-]c vifm-help.txt /*vifm-]c*
|
||||
vifm-]d vifm-help.txt /*vifm-]d*
|
||||
vifm-]r vifm-help.txt /*vifm-]r*
|
||||
vifm-]s vifm-help.txt /*vifm-]s*
|
||||
vifm-]z vifm-help.txt /*vifm-]z*
|
||||
vifm-^ vifm-help.txt /*vifm-^*
|
||||
vifm-al vifm-help.txt /*vifm-al*
|
||||
vifm-app.txt vifm-help.txt /*vifm-app.txt*
|
||||
vifm-av vifm-help.txt /*vifm-av*
|
||||
vifm-cW vifm-help.txt /*vifm-cW*
|
||||
vifm-c_ALT-. vifm-help.txt /*vifm-c_ALT-.*
|
||||
vifm-c_ALT-B vifm-help.txt /*vifm-c_ALT-B*
|
||||
vifm-c_ALT-D vifm-help.txt /*vifm-c_ALT-D*
|
||||
vifm-c_ALT-F vifm-help.txt /*vifm-c_ALT-F*
|
||||
vifm-c_Backspace vifm-help.txt /*vifm-c_Backspace*
|
||||
vifm-c_CTRL-A vifm-help.txt /*vifm-c_CTRL-A*
|
||||
vifm-c_CTRL-B vifm-help.txt /*vifm-c_CTRL-B*
|
||||
vifm-c_CTRL-C vifm-help.txt /*vifm-c_CTRL-C*
|
||||
vifm-c_CTRL-D vifm-help.txt /*vifm-c_CTRL-D*
|
||||
vifm-c_CTRL-E vifm-help.txt /*vifm-c_CTRL-E*
|
||||
vifm-c_CTRL-F vifm-help.txt /*vifm-c_CTRL-F*
|
||||
vifm-c_CTRL-G vifm-help.txt /*vifm-c_CTRL-G*
|
||||
vifm-c_CTRL-H vifm-help.txt /*vifm-c_CTRL-H*
|
||||
vifm-c_CTRL-I vifm-help.txt /*vifm-c_CTRL-I*
|
||||
vifm-c_CTRL-K vifm-help.txt /*vifm-c_CTRL-K*
|
||||
vifm-c_CTRL-M vifm-help.txt /*vifm-c_CTRL-M*
|
||||
vifm-c_CTRL-N vifm-help.txt /*vifm-c_CTRL-N*
|
||||
vifm-c_CTRL-P vifm-help.txt /*vifm-c_CTRL-P*
|
||||
vifm-c_CTRL-R_= vifm-help.txt /*vifm-c_CTRL-R_=*
|
||||
vifm-c_CTRL-T vifm-help.txt /*vifm-c_CTRL-T*
|
||||
vifm-c_CTRL-U vifm-help.txt /*vifm-c_CTRL-U*
|
||||
vifm-c_CTRL-W vifm-help.txt /*vifm-c_CTRL-W*
|
||||
vifm-c_CTRL-X_/ vifm-help.txt /*vifm-c_CTRL-X_\/*
|
||||
vifm-c_CTRL-X_= vifm-help.txt /*vifm-c_CTRL-X_=*
|
||||
vifm-c_CTRL-X_CTRL-X_c vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_c*
|
||||
vifm-c_CTRL-X_CTRL-X_d vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_d*
|
||||
vifm-c_CTRL-X_CTRL-X_e vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_e*
|
||||
vifm-c_CTRL-X_CTRL-X_r vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_r*
|
||||
vifm-c_CTRL-X_CTRL-X_t vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_t*
|
||||
vifm-c_CTRL-X_a vifm-help.txt /*vifm-c_CTRL-X_a*
|
||||
vifm-c_CTRL-X_c vifm-help.txt /*vifm-c_CTRL-X_c*
|
||||
vifm-c_CTRL-X_d vifm-help.txt /*vifm-c_CTRL-X_d*
|
||||
vifm-c_CTRL-X_e vifm-help.txt /*vifm-c_CTRL-X_e*
|
||||
vifm-c_CTRL-X_m vifm-help.txt /*vifm-c_CTRL-X_m*
|
||||
vifm-c_CTRL-X_r vifm-help.txt /*vifm-c_CTRL-X_r*
|
||||
vifm-c_CTRL-X_t vifm-help.txt /*vifm-c_CTRL-X_t*
|
||||
vifm-c_CTRL-] vifm-help.txt /*vifm-c_CTRL-]*
|
||||
vifm-c_CTRL-_ vifm-help.txt /*vifm-c_CTRL-_*
|
||||
vifm-c_Delete vifm-help.txt /*vifm-c_Delete*
|
||||
vifm-c_Down vifm-help.txt /*vifm-c_Down*
|
||||
vifm-c_End vifm-help.txt /*vifm-c_End*
|
||||
vifm-c_Enter vifm-help.txt /*vifm-c_Enter*
|
||||
vifm-c_Esc vifm-help.txt /*vifm-c_Esc*
|
||||
vifm-c_Home vifm-help.txt /*vifm-c_Home*
|
||||
vifm-c_Left vifm-help.txt /*vifm-c_Left*
|
||||
vifm-c_Right vifm-help.txt /*vifm-c_Right*
|
||||
vifm-c_SHIFT-Tab vifm-help.txt /*vifm-c_SHIFT-Tab*
|
||||
vifm-c_Tab vifm-help.txt /*vifm-c_Tab*
|
||||
vifm-c_Up vifm-help.txt /*vifm-c_Up*
|
||||
vifm-cancellation vifm-help.txt /*vifm-cancellation*
|
||||
vifm-cg vifm-help.txt /*vifm-cg*
|
||||
vifm-chooseopt() vifm-help.txt /*vifm-chooseopt()*
|
||||
vifm-cl vifm-help.txt /*vifm-cl*
|
||||
vifm-clientserver vifm-help.txt /*vifm-clientserver*
|
||||
vifm-co vifm-help.txt /*vifm-co*
|
||||
vifm-color-schemes vifm-help.txt /*vifm-color-schemes*
|
||||
vifm-colors vifm-help.txt /*vifm-colors*
|
||||
vifm-column-view vifm-help.txt /*vifm-column-view*
|
||||
vifm-command-line vifm-help.txt /*vifm-command-line*
|
||||
vifm-command-line-edit vifm-help.txt /*vifm-command-line-edit*
|
||||
vifm-commands vifm-help.txt /*vifm-commands*
|
||||
vifm-commands-and-selection vifm-help.txt /*vifm-commands-and-selection*
|
||||
vifm-commands-bg vifm-help.txt /*vifm-commands-bg*
|
||||
vifm-compare-views vifm-help.txt /*vifm-compare-views*
|
||||
vifm-configure vifm-help.txt /*vifm-configure*
|
||||
vifm-count vifm-help.txt /*vifm-count*
|
||||
vifm-count-variable vifm-help.txt /*vifm-count-variable*
|
||||
vifm-count1-variable vifm-help.txt /*vifm-count1-variable*
|
||||
vifm-cp vifm-help.txt /*vifm-cp*
|
||||
vifm-cpo-f vifm-help.txt /*vifm-cpo-f*
|
||||
vifm-cpo-s vifm-help.txt /*vifm-cpo-s*
|
||||
vifm-cpo-t vifm-help.txt /*vifm-cpo-t*
|
||||
vifm-custom-views vifm-help.txt /*vifm-custom-views*
|
||||
vifm-cw vifm-help.txt /*vifm-cw*
|
||||
vifm-d vifm-help.txt /*vifm-d*
|
||||
vifm-dd vifm-help.txt /*vifm-dd*
|
||||
vifm-do vifm-help.txt /*vifm-do*
|
||||
vifm-dp vifm-help.txt /*vifm-dp*
|
||||
vifm-e vifm-help.txt /*vifm-e*
|
||||
vifm-env-vars vifm-help.txt /*vifm-env-vars*
|
||||
vifm-executable() vifm-help.txt /*vifm-executable()*
|
||||
vifm-expand() vifm-help.txt /*vifm-expand()*
|
||||
vifm-expr-!= vifm-help.txt /*vifm-expr-!=*
|
||||
vifm-expr-' vifm-help.txt /*vifm-expr-'*
|
||||
vifm-expr-+ vifm-help.txt /*vifm-expr-+*
|
||||
vifm-expr-- vifm-help.txt /*vifm-expr--*
|
||||
vifm-expr-. vifm-help.txt /*vifm-expr-.*
|
||||
vifm-expr-< vifm-help.txt /*vifm-expr-<*
|
||||
vifm-expr-<= vifm-help.txt /*vifm-expr-<=*
|
||||
vifm-expr-== vifm-help.txt /*vifm-expr-==*
|
||||
vifm-expr-> vifm-help.txt /*vifm-expr->*
|
||||
vifm-expr->= vifm-help.txt /*vifm-expr->=*
|
||||
vifm-expr-env vifm-help.txt /*vifm-expr-env*
|
||||
vifm-expr-function vifm-help.txt /*vifm-expr-function*
|
||||
vifm-expr-nesting vifm-help.txt /*vifm-expr-nesting*
|
||||
vifm-expr-number vifm-help.txt /*vifm-expr-number*
|
||||
vifm-expr-option vifm-help.txt /*vifm-expr-option*
|
||||
vifm-expr-quote vifm-help.txt /*vifm-expr-quote*
|
||||
vifm-expr-string vifm-help.txt /*vifm-expr-string*
|
||||
vifm-expr-unary-! vifm-help.txt /*vifm-expr-unary-!*
|
||||
vifm-expr-unary-+ vifm-help.txt /*vifm-expr-unary-+*
|
||||
vifm-expr-unary-- vifm-help.txt /*vifm-expr-unary--*
|
||||
vifm-expr-variable vifm-help.txt /*vifm-expr-variable*
|
||||
vifm-expr1 vifm-help.txt /*vifm-expr1*
|
||||
vifm-expr2 vifm-help.txt /*vifm-expr2*
|
||||
vifm-expr3 vifm-help.txt /*vifm-expr3*
|
||||
vifm-expr4 vifm-help.txt /*vifm-expr4*
|
||||
vifm-expr5 vifm-help.txt /*vifm-expr5*
|
||||
vifm-expr6 vifm-help.txt /*vifm-expr6*
|
||||
vifm-expr7 vifm-help.txt /*vifm-expr7*
|
||||
vifm-expression-syntax vifm-help.txt /*vifm-expression-syntax*
|
||||
vifm-ext-rename vifm-help.txt /*vifm-ext-rename*
|
||||
vifm-extcached() vifm-help.txt /*vifm-extcached()*
|
||||
vifm-f vifm-help.txt /*vifm-f*
|
||||
vifm-filename-modifiers vifm-help.txt /*vifm-filename-modifiers*
|
||||
vifm-filetype() vifm-help.txt /*vifm-filetype()*
|
||||
vifm-filters vifm-help.txt /*vifm-filters*
|
||||
vifm-fnameescape() vifm-help.txt /*vifm-fnameescape()*
|
||||
vifm-functions vifm-help.txt /*vifm-functions*
|
||||
vifm-fuse vifm-help.txt /*vifm-fuse*
|
||||
vifm-gA vifm-help.txt /*vifm-gA*
|
||||
vifm-gF vifm-help.txt /*vifm-gF*
|
||||
vifm-gT vifm-help.txt /*vifm-gT*
|
||||
vifm-gU vifm-help.txt /*vifm-gU*
|
||||
vifm-gUU vifm-help.txt /*vifm-gUU*
|
||||
vifm-gUgU vifm-help.txt /*vifm-gUgU*
|
||||
vifm-ga vifm-help.txt /*vifm-ga*
|
||||
vifm-general-keys vifm-help.txt /*vifm-general-keys*
|
||||
vifm-getpanetype() vifm-help.txt /*vifm-getpanetype()*
|
||||
vifm-gf vifm-help.txt /*vifm-gf*
|
||||
vifm-gg vifm-help.txt /*vifm-gg*
|
||||
vifm-gh vifm-help.txt /*vifm-gh*
|
||||
vifm-gj vifm-help.txt /*vifm-gj*
|
||||
vifm-gk vifm-help.txt /*vifm-gk*
|
||||
vifm-gl vifm-help.txt /*vifm-gl*
|
||||
vifm-globs vifm-help.txt /*vifm-globs*
|
||||
vifm-gr vifm-help.txt /*vifm-gr*
|
||||
vifm-gs vifm-help.txt /*vifm-gs*
|
||||
vifm-gt vifm-help.txt /*vifm-gt*
|
||||
vifm-gu vifm-help.txt /*vifm-gu*
|
||||
vifm-gugu vifm-help.txt /*vifm-gugu*
|
||||
vifm-guu vifm-help.txt /*vifm-guu*
|
||||
vifm-gv vifm-help.txt /*vifm-gv*
|
||||
vifm-h vifm-help.txt /*vifm-h*
|
||||
vifm-has() vifm-help.txt /*vifm-has()*
|
||||
vifm-i vifm-help.txt /*vifm-i*
|
||||
vifm-j vifm-help.txt /*vifm-j*
|
||||
vifm-jobcount-variable vifm-help.txt /*vifm-jobcount-variable*
|
||||
vifm-k vifm-help.txt /*vifm-k*
|
||||
vifm-l vifm-help.txt /*vifm-l*
|
||||
vifm-layoutis() vifm-help.txt /*vifm-layoutis()*
|
||||
vifm-literal-string vifm-help.txt /*vifm-literal-string*
|
||||
vifm-local-options vifm-help.txt /*vifm-local-options*
|
||||
vifm-ls-view vifm-help.txt /*vifm-ls-view*
|
||||
vifm-m vifm-help.txt /*vifm-m*
|
||||
vifm-m_/ vifm-help.txt /*vifm-m_\/*
|
||||
vifm-m_: vifm-help.txt /*vifm-m_:*
|
||||
vifm-m_:exi vifm-help.txt /*vifm-m_:exi*
|
||||
vifm-m_:exit vifm-help.txt /*vifm-m_:exit*
|
||||
vifm-m_:noh vifm-help.txt /*vifm-m_:noh*
|
||||
vifm-m_:nohlsearch vifm-help.txt /*vifm-m_:nohlsearch*
|
||||
vifm-m_:q vifm-help.txt /*vifm-m_:q*
|
||||
vifm-m_:quit vifm-help.txt /*vifm-m_:quit*
|
||||
vifm-m_:range vifm-help.txt /*vifm-m_:range*
|
||||
vifm-m_:w vifm-help.txt /*vifm-m_:w*
|
||||
vifm-m_:write vifm-help.txt /*vifm-m_:write*
|
||||
vifm-m_:x vifm-help.txt /*vifm-m_:x*
|
||||
vifm-m_:xit vifm-help.txt /*vifm-m_:xit*
|
||||
vifm-m_? vifm-help.txt /*vifm-m_?*
|
||||
vifm-m_B vifm-help.txt /*vifm-m_B*
|
||||
vifm-m_CTRL-B vifm-help.txt /*vifm-m_CTRL-B*
|
||||
vifm-m_CTRL-C vifm-help.txt /*vifm-m_CTRL-C*
|
||||
vifm-m_CTRL-D vifm-help.txt /*vifm-m_CTRL-D*
|
||||
vifm-m_CTRL-E vifm-help.txt /*vifm-m_CTRL-E*
|
||||
vifm-m_CTRL-F vifm-help.txt /*vifm-m_CTRL-F*
|
||||
vifm-m_CTRL-L vifm-help.txt /*vifm-m_CTRL-L*
|
||||
vifm-m_CTRL-N vifm-help.txt /*vifm-m_CTRL-N*
|
||||
vifm-m_CTRL-P vifm-help.txt /*vifm-m_CTRL-P*
|
||||
vifm-m_CTRL-U vifm-help.txt /*vifm-m_CTRL-U*
|
||||
vifm-m_CTRL-Y vifm-help.txt /*vifm-m_CTRL-Y*
|
||||
vifm-m_Enter vifm-help.txt /*vifm-m_Enter*
|
||||
vifm-m_Escape vifm-help.txt /*vifm-m_Escape*
|
||||
vifm-m_G vifm-help.txt /*vifm-m_G*
|
||||
vifm-m_H vifm-help.txt /*vifm-m_H*
|
||||
vifm-m_L vifm-help.txt /*vifm-m_L*
|
||||
vifm-m_M vifm-help.txt /*vifm-m_M*
|
||||
vifm-m_N vifm-help.txt /*vifm-m_N*
|
||||
vifm-m_ZQ vifm-help.txt /*vifm-m_ZQ*
|
||||
vifm-m_ZZ vifm-help.txt /*vifm-m_ZZ*
|
||||
vifm-m_b vifm-help.txt /*vifm-m_b*
|
||||
vifm-m_c vifm-help.txt /*vifm-m_c*
|
||||
vifm-m_e vifm-help.txt /*vifm-m_e*
|
||||
vifm-m_gf vifm-help.txt /*vifm-m_gf*
|
||||
vifm-m_gg vifm-help.txt /*vifm-m_gg*
|
||||
vifm-m_j vifm-help.txt /*vifm-m_j*
|
||||
vifm-m_k vifm-help.txt /*vifm-m_k*
|
||||
vifm-m_l vifm-help.txt /*vifm-m_l*
|
||||
vifm-m_n vifm-help.txt /*vifm-m_n*
|
||||
vifm-m_q vifm-help.txt /*vifm-m_q*
|
||||
vifm-m_v vifm-help.txt /*vifm-m_v*
|
||||
vifm-m_zH vifm-help.txt /*vifm-m_zH*
|
||||
vifm-m_zL vifm-help.txt /*vifm-m_zL*
|
||||
vifm-m_zb vifm-help.txt /*vifm-m_zb*
|
||||
vifm-m_zh vifm-help.txt /*vifm-m_zh*
|
||||
vifm-m_zl vifm-help.txt /*vifm-m_zl*
|
||||
vifm-m_zt vifm-help.txt /*vifm-m_zt*
|
||||
vifm-m_zz vifm-help.txt /*vifm-m_zz*
|
||||
vifm-macros vifm-help.txt /*vifm-macros*
|
||||
vifm-mappings vifm-help.txt /*vifm-mappings*
|
||||
vifm-menus-and-dialogs vifm-help.txt /*vifm-menus-and-dialogs*
|
||||
vifm-more vifm-help.txt /*vifm-more*
|
||||
vifm-n vifm-help.txt /*vifm-n*
|
||||
vifm-normal vifm-help.txt /*vifm-normal*
|
||||
vifm-options vifm-help.txt /*vifm-options*
|
||||
vifm-p vifm-help.txt /*vifm-p*
|
||||
vifm-pager vifm-help.txt /*vifm-pager*
|
||||
vifm-paneisat() vifm-help.txt /*vifm-paneisat()*
|
||||
vifm-patterns vifm-help.txt /*vifm-patterns*
|
||||
vifm-plugin vifm-help.txt /*vifm-plugin*
|
||||
vifm-q/ vifm-help.txt /*vifm-q\/*
|
||||
vifm-q: vifm-help.txt /*vifm-q:*
|
||||
vifm-q= vifm-help.txt /*vifm-q=*
|
||||
vifm-q? vifm-help.txt /*vifm-q?*
|
||||
vifm-q_% vifm-help.txt /*vifm-q_%*
|
||||
vifm-q_/ vifm-help.txt /*vifm-q_\/*
|
||||
vifm-q_< vifm-help.txt /*vifm-q_<*
|
||||
vifm-q_> vifm-help.txt /*vifm-q_>*
|
||||
vifm-q_? vifm-help.txt /*vifm-q_?*
|
||||
vifm-q_A vifm-help.txt /*vifm-q_A*
|
||||
vifm-q_ALT-< vifm-help.txt /*vifm-q_ALT-<*
|
||||
vifm-q_ALT-> vifm-help.txt /*vifm-q_ALT->*
|
||||
vifm-q_ALT-Space vifm-help.txt /*vifm-q_ALT-Space*
|
||||
vifm-q_ALT-V vifm-help.txt /*vifm-q_ALT-V*
|
||||
vifm-q_CTRL-B vifm-help.txt /*vifm-q_CTRL-B*
|
||||
vifm-q_CTRL-D vifm-help.txt /*vifm-q_CTRL-D*
|
||||
vifm-q_CTRL-E vifm-help.txt /*vifm-q_CTRL-E*
|
||||
vifm-q_CTRL-F vifm-help.txt /*vifm-q_CTRL-F*
|
||||
vifm-q_CTRL-K vifm-help.txt /*vifm-q_CTRL-K*
|
||||
vifm-q_CTRL-L vifm-help.txt /*vifm-q_CTRL-L*
|
||||
vifm-q_CTRL-N vifm-help.txt /*vifm-q_CTRL-N*
|
||||
vifm-q_CTRL-P vifm-help.txt /*vifm-q_CTRL-P*
|
||||
vifm-q_CTRL-R vifm-help.txt /*vifm-q_CTRL-R*
|
||||
vifm-q_CTRL-U vifm-help.txt /*vifm-q_CTRL-U*
|
||||
vifm-q_CTRL-V vifm-help.txt /*vifm-q_CTRL-V*
|
||||
vifm-q_CTRL-Y vifm-help.txt /*vifm-q_CTRL-Y*
|
||||
vifm-q_Enter vifm-help.txt /*vifm-q_Enter*
|
||||
vifm-q_F vifm-help.txt /*vifm-q_F*
|
||||
vifm-q_G vifm-help.txt /*vifm-q_G*
|
||||
vifm-q_N vifm-help.txt /*vifm-q_N*
|
||||
vifm-q_Q vifm-help.txt /*vifm-q_Q*
|
||||
vifm-q_R vifm-help.txt /*vifm-q_R*
|
||||
vifm-q_SHIFT-Tab vifm-help.txt /*vifm-q_SHIFT-Tab*
|
||||
vifm-q_Space vifm-help.txt /*vifm-q_Space*
|
||||
vifm-q_Tab vifm-help.txt /*vifm-q_Tab*
|
||||
vifm-q_ZZ vifm-help.txt /*vifm-q_ZZ*
|
||||
vifm-q_a vifm-help.txt /*vifm-q_a*
|
||||
vifm-q_b vifm-help.txt /*vifm-q_b*
|
||||
vifm-q_d vifm-help.txt /*vifm-q_d*
|
||||
vifm-q_e vifm-help.txt /*vifm-q_e*
|
||||
vifm-q_f vifm-help.txt /*vifm-q_f*
|
||||
vifm-q_g vifm-help.txt /*vifm-q_g*
|
||||
vifm-q_i vifm-help.txt /*vifm-q_i*
|
||||
vifm-q_j vifm-help.txt /*vifm-q_j*
|
||||
vifm-q_k vifm-help.txt /*vifm-q_k*
|
||||
vifm-q_n vifm-help.txt /*vifm-q_n*
|
||||
vifm-q_p vifm-help.txt /*vifm-q_p*
|
||||
vifm-q_q vifm-help.txt /*vifm-q_q*
|
||||
vifm-q_r vifm-help.txt /*vifm-q_r*
|
||||
vifm-q_u vifm-help.txt /*vifm-q_u*
|
||||
vifm-q_v vifm-help.txt /*vifm-q_v*
|
||||
vifm-q_w vifm-help.txt /*vifm-q_w*
|
||||
vifm-q_y vifm-help.txt /*vifm-q_y*
|
||||
vifm-q_z vifm-help.txt /*vifm-q_z*
|
||||
vifm-ranges vifm-help.txt /*vifm-ranges*
|
||||
vifm-regexp vifm-help.txt /*vifm-regexp*
|
||||
vifm-registers vifm-help.txt /*vifm-registers*
|
||||
vifm-reserved vifm-help.txt /*vifm-reserved*
|
||||
vifm-rl vifm-help.txt /*vifm-rl*
|
||||
vifm-scripts vifm-help.txt /*vifm-scripts*
|
||||
vifm-see-also vifm-help.txt /*vifm-see-also*
|
||||
vifm-selection vifm-help.txt /*vifm-selection*
|
||||
vifm-selectors vifm-help.txt /*vifm-selectors*
|
||||
vifm-servername-variable vifm-help.txt /*vifm-servername-variable*
|
||||
vifm-session-variable vifm-help.txt /*vifm-session-variable*
|
||||
vifm-sessions vifm-help.txt /*vifm-sessions*
|
||||
vifm-set-options vifm-help.txt /*vifm-set-options*
|
||||
vifm-skip-param vifm-help.txt /*vifm-skip-param*
|
||||
vifm-startup vifm-help.txt /*vifm-startup*
|
||||
vifm-system() vifm-help.txt /*vifm-system()*
|
||||
vifm-t vifm-help.txt /*vifm-t*
|
||||
vifm-tabpagenr() vifm-help.txt /*vifm-tabpagenr()*
|
||||
vifm-term() vifm-help.txt /*vifm-term()*
|
||||
vifm-to-l vifm-help.txt /*vifm-to-l*
|
||||
vifm-to-p vifm-help.txt /*vifm-to-p*
|
||||
vifm-to-r vifm-help.txt /*vifm-to-r*
|
||||
vifm-to-s vifm-help.txt /*vifm-to-s*
|
||||
vifm-to-u vifm-help.txt /*vifm-to-u*
|
||||
vifm-to-v vifm-help.txt /*vifm-to-v*
|
||||
vifm-trash vifm-help.txt /*vifm-trash*
|
||||
vifm-u vifm-help.txt /*vifm-u*
|
||||
vifm-v vifm-help.txt /*vifm-v*
|
||||
vifm-v:count vifm-help.txt /*vifm-v:count*
|
||||
vifm-v:count1 vifm-help.txt /*vifm-v:count1*
|
||||
vifm-v:jobcount vifm-help.txt /*vifm-v:jobcount*
|
||||
vifm-v:servername vifm-help.txt /*vifm-v:servername*
|
||||
vifm-v:session vifm-help.txt /*vifm-v:session*
|
||||
vifm-v_: vifm-help.txt /*vifm-v_:*
|
||||
vifm-v_CTRL-C vifm-help.txt /*vifm-v_CTRL-C*
|
||||
vifm-v_CTRL-G vifm-help.txt /*vifm-v_CTRL-G*
|
||||
vifm-v_Enter vifm-help.txt /*vifm-v_Enter*
|
||||
vifm-v_Escape vifm-help.txt /*vifm-v_Escape*
|
||||
vifm-v_O vifm-help.txt /*vifm-v_O*
|
||||
vifm-v_U vifm-help.txt /*vifm-v_U*
|
||||
vifm-v_V vifm-help.txt /*vifm-v_V*
|
||||
vifm-v_av vifm-help.txt /*vifm-v_av*
|
||||
vifm-v_cl vifm-help.txt /*vifm-v_cl*
|
||||
vifm-v_cw vifm-help.txt /*vifm-v_cw*
|
||||
vifm-v_gU vifm-help.txt /*vifm-v_gU*
|
||||
vifm-v_gu vifm-help.txt /*vifm-v_gu*
|
||||
vifm-v_gv vifm-help.txt /*vifm-v_gv*
|
||||
vifm-v_o vifm-help.txt /*vifm-v_o*
|
||||
vifm-v_u vifm-help.txt /*vifm-v_u*
|
||||
vifm-v_v vifm-help.txt /*vifm-v_v*
|
||||
vifm-view vifm-help.txt /*vifm-view*
|
||||
vifm-view-look vifm-help.txt /*vifm-view-look*
|
||||
vifm-vifminfo vifm-help.txt /*vifm-vifminfo*
|
||||
vifm-vifmrc vifm-help.txt /*vifm-vifmrc*
|
||||
vifm-visual vifm-help.txt /*vifm-visual*
|
||||
vifm-y vifm-help.txt /*vifm-y*
|
||||
vifm-yy vifm-help.txt /*vifm-yy*
|
||||
vifm-zM vifm-help.txt /*vifm-zM*
|
||||
vifm-zO vifm-help.txt /*vifm-zO*
|
||||
vifm-zR vifm-help.txt /*vifm-zR*
|
||||
vifm-za vifm-help.txt /*vifm-za*
|
||||
vifm-zb vifm-help.txt /*vifm-zb*
|
||||
vifm-zd vifm-help.txt /*vifm-zd*
|
||||
vifm-zf vifm-help.txt /*vifm-zf*
|
||||
vifm-zj vifm-help.txt /*vifm-zj*
|
||||
vifm-zk vifm-help.txt /*vifm-zk*
|
||||
vifm-zm vifm-help.txt /*vifm-zm*
|
||||
vifm-zo vifm-help.txt /*vifm-zo*
|
||||
vifm-zr vifm-help.txt /*vifm-zr*
|
||||
vifm-zt vifm-help.txt /*vifm-zt*
|
||||
vifm-zx vifm-help.txt /*vifm-zx*
|
||||
vifm-zz vifm-help.txt /*vifm-zz*
|
||||
vifm-{ vifm-help.txt /*vifm-{*
|
||||
vifm-} vifm-help.txt /*vifm-}*
|
File diff suppressed because it is too large
Load Diff
@ -1,373 +0,0 @@
|
||||
"" VIFM Config file / 2023-03-16 / Jan Andrle
|
||||
"" #region B – Bookmarks
|
||||
if !has('win')
|
||||
:bmark! "~/" home
|
||||
:bmark! "~/Stažené/" downloads
|
||||
:bmark! "~/Dokumenty/" documents
|
||||
:bmark! "~/Dokumenty/Projekty/" projects
|
||||
:bmark! "~/Vzdálené/GitHub/" git github
|
||||
:bmark! "~/Vzdálené/ftp/" ftp
|
||||
:bmark! "~/Vzdálené/OneDrive" onedrive
|
||||
:bmark! "~/.config/vifm/" vifm
|
||||
:bmark! "~/.chatgpt/notes" chatgpt-notes
|
||||
:bmark! "/media/jaandrle/" volumes
|
||||
else
|
||||
:bmark! "~/" home
|
||||
:bmark! "C:/Projekty/" projects cordova
|
||||
:bmark! "~/Documents/GitHub/" projects git github
|
||||
:bmark! "y:/" qnap
|
||||
:bmark! "y:/DHL/" qnap dhl
|
||||
:bmark! "~/Downloads/" downloads
|
||||
:bmark! "~/Downloads/FTPtemp/" ftp temp
|
||||
:bmark! "~/AppData/Roaming/Vifm/" vifm
|
||||
endif
|
||||
mark b ~/bin/
|
||||
mark h ~/
|
||||
"" #endregion B
|
||||
"" #region G – General
|
||||
" set vicmd=elvis\ -G\ termcap | " set vicmd=vile
|
||||
set vicmd=vim
|
||||
"set vimhelp
|
||||
command! README :!vim ~/Dokumenty/GitHub/dotfiles/vifm/README.md
|
||||
command! Help :!vim ~/.config/vifm/vifm-help.txt
|
||||
map <f1> :Help<cr>
|
||||
cabbrev help Help
|
||||
if !has('win')
|
||||
set fusehome=/tmp/vifm_FUSE
|
||||
set slowfs=curlftpfs
|
||||
endif
|
||||
set syscalls norunexec
|
||||
" Automatically resolve symbolic links on l or Enter.
|
||||
set nofollowlinks
|
||||
set trash
|
||||
nmap dd :!trash %"f<cr>
|
||||
nmap d? :exe "!clear && echo 'Native system trash (`trash-cli`): use `trash`|`trash-empty`|`trash-list`|`trash-put`|`trash-restore`|`trash-rm`' && trash-list | sort -r" | shell<cr>
|
||||
set history=100 undolevels=100
|
||||
" What should be saved automatically between vifm sessions. Drop "savedirs"
|
||||
" value if you don't want vifm to remember last visited directories for you.
|
||||
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
|
||||
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
|
||||
|
||||
cmap <c-b>
|
||||
cmap <c-f>
|
||||
nmap ; :
|
||||
nmap š <tab>
|
||||
nnoremap <c-h> :history<cr>
|
||||
nnoremap \= :filter !{}<left><left>
|
||||
" Open console in current directory
|
||||
if !has('win')
|
||||
nnoremap Ot :!(exo-open --launch TerminalEmulator --working-directory %d > /dev/null 2>&1) &<cr>
|
||||
nnoremap Ov :!(exo-open --launch TerminalEmulator --working-directory %d -- -e "vifm ." > /dev/null 2>&1) &<cr>
|
||||
nnoremap OV :!vim<cr>
|
||||
else
|
||||
nnoremap Ot :!start "[Vifm] PowerShell %d" powershell.exe -c "powershell.exe -NoExit -Command Set-Location -LiteralPath '%d'"<cr>
|
||||
endif
|
||||
"" #endregion G
|
||||
"" #region AD – Apperance/Default
|
||||
set quickview
|
||||
command! SetView :view
|
||||
set dotfiles
|
||||
colorscheme codedark
|
||||
set wildmenu wildstyle=popup
|
||||
set suggestoptions=normal,visual,view,otherpane,keys,foldsubkeys,marks,registers
|
||||
set ignorecase smartcase incsearch
|
||||
set scrolloff=4
|
||||
|
||||
highlight User1 cterm=italic
|
||||
set statusline=" %-E %-d %-A %1*»%-z«%* %= %{&sort} "
|
||||
" hide side borders + use Unicode ellipsis
|
||||
set tuioptions-=s
|
||||
if $TERM != 'linux' | set tuioptions+=u | endif
|
||||
" change appearance of middle border
|
||||
" set fillchars=vborder:·
|
||||
if has('win')
|
||||
set columns=97
|
||||
nnoremap <c-L>c :set columns=97<cr>
|
||||
map <c-L>1 33<c-W>|
|
||||
map <c-L>2 49<c-W>|
|
||||
map <c-L>3 66<c-W>|
|
||||
endif
|
||||
"" #endregion AD
|
||||
"" #region AT – Apperance/Texts
|
||||
" Use KiB, MiB, ... instead of KB, MB, ...
|
||||
set noiec
|
||||
set tabstop=2
|
||||
set timefmt=%y-%m-%dT%H:%M
|
||||
" Customize view columns a bit (enable ellipsis for truncated file names)
|
||||
set viewcolumns=-{root}..,5.4{ext},-6{}
|
||||
command! SetViewColumnsDefault :set viewcolumns=-{root}..,5.4{ext},-6{}
|
||||
command! SetViewColumnsShort :set viewcolumns=-{name}..,{}
|
||||
command! SetWrap :set wrap!
|
||||
"" #endregion AT
|
||||
"" #region AS – Apperance/Sorting+Numbers
|
||||
set sortnumbers sort=+iname
|
||||
command! SetSortAll :sort
|
||||
command! SetSort
|
||||
\ :if &sort == '-size,+name'
|
||||
\ | set sort=-mtime
|
||||
\ | echo 'Sorted by modification date (from latest)'
|
||||
\ |elseif &sort == '-size,+iname'
|
||||
\ | set sort=-mtime
|
||||
\ | echo 'Sorted by modification date (from latest)'
|
||||
\ |elseif &sort == '+iname'
|
||||
\ | set sort=-size
|
||||
\ | echo 'Sorted by size'
|
||||
\ |else
|
||||
\ | set sort=+iname
|
||||
\ | echo 'Sorted by name'
|
||||
\ |endif
|
||||
set number
|
||||
command! SetNumber
|
||||
\ :if &relativenumber
|
||||
\ | set norelativenumber
|
||||
\ | set number
|
||||
\ | echo 'Numbers showned'
|
||||
\ |elseif &number
|
||||
\ | set nonumber
|
||||
\ | echo 'No Numbers'
|
||||
\ |else
|
||||
\ | set relativenumber
|
||||
\ | echo 'Relative numbers showned'
|
||||
\ |endif
|
||||
"" #endregion AS
|
||||
"" #region C – Commands
|
||||
cnoremap <c-b> <a-b>
|
||||
cnoremap <c-f> <a-f>
|
||||
cnoremap <> <><left>
|
||||
cnoremap () ()<left>
|
||||
cnoremap {} {}<left>
|
||||
cnoremap "" ""<left>
|
||||
cnoremap '' ''<left>
|
||||
" #region :com[mand][!] command_name action
|
||||
" The following macros can be used in a command
|
||||
" %a is replaced with the user arguments.
|
||||
" %c the current file under the cursor.
|
||||
" %C the current file under the cursor in the other directory.
|
||||
" %f the current selected file, or files.
|
||||
" %F the current selected file, or files in the other directory.
|
||||
" %b same as %f %F.
|
||||
" %d the current directory name.
|
||||
" %D the other window directory name.
|
||||
" %m run the command in a menu window
|
||||
" #endregion
|
||||
if has('win')
|
||||
command! meld "C:\Program Files (x86)\Meld\Meld.exe" %"f %"F &
|
||||
command! zipAll powershell Compress-Archive -Path %"c/* -CompressionLevel Fastest -DestinationPath %c:r.zip
|
||||
command! isrunnig %m tasklist /FI "IMAGENAME eq %a" 2>NUL | find /I /N "%a"
|
||||
else
|
||||
command! onedrive xfce4-terminal -x bash -c 'echo Microsoft Onedrive Log:; onedrive --synchronize &
|
||||
command! meld meld %"f %"F 2> /dev/null &
|
||||
command! zipAll zip -r "%c:r.zip" ./*
|
||||
command! terminal !(exo-open --launch TerminalEmulator > /dev/null 2>&1) &
|
||||
nmap \t :terminal<cr>
|
||||
endif
|
||||
if !has('win')
|
||||
command! volumes :cd /media/jaandrle/
|
||||
endif
|
||||
|
||||
command! df df -h %m 2> /dev/null
|
||||
command! diff vim -d %f %F
|
||||
command! vim vim %"f
|
||||
command! make !!make %a
|
||||
command! mkcd :mkdir %a | cd %a
|
||||
command! vgrep vim "+grep %a"
|
||||
command! reload :write | restart
|
||||
|
||||
command! run !! ./%f
|
||||
command! runGUI !! ./%f &
|
||||
nmap or :runGUI<cr>
|
||||
nmap oR :run<cr>
|
||||
"" #endregion C
|
||||
" #region F – Filetypes
|
||||
nnoremap ov :!vim %"f<cr>
|
||||
nnoremap oo :file &<cr>l
|
||||
nnoremap oO :file &<cr>/[#$]<cr>l
|
||||
nnoremap on :file &<cr>/xdg-open<cr>l
|
||||
|
||||
" #region Farch – Archives
|
||||
if has('win')
|
||||
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt,
|
||||
\*.docx,*.pptx,*.xmlx,*.epub
|
||||
\ tar -tf %c
|
||||
else
|
||||
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt,
|
||||
\*.docx,*.pptx,*.xmlx,*.epub
|
||||
\ zip -sf %c
|
||||
endif
|
||||
filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg,
|
||||
\*.docx,*.pptx,*.xmlx,
|
||||
\*.epub,*.eml
|
||||
\ {Mount with fuse-zip}
|
||||
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
|
||||
\ {View contents}
|
||||
\ zip -sf %c | less,
|
||||
\ {Extract here}
|
||||
\ §extract %"f
|
||||
filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz
|
||||
\ {Mount with archivemount}
|
||||
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
|
||||
\ {Extract here}
|
||||
\ §extract %"f
|
||||
fileviewer *.tgz,*.tar.gz tar -tzf %c
|
||||
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
|
||||
fileviewer *.tar.txz,*.txz xz --list %c
|
||||
fileviewer *.tar tar -tf %c
|
||||
filetype *.rar {Mount with rar2fs}
|
||||
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
|
||||
\ {Extract here}
|
||||
\ §extract %"f
|
||||
fileviewer *.rar unrar v %c
|
||||
filetype *.iso {Mount with fuseiso}
|
||||
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
|
||||
\ {Extract here}
|
||||
\ §extract %"f
|
||||
filetype *.7z {Mount with fuse-7z}
|
||||
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
|
||||
\ {Extract here}
|
||||
\ §extract %"f
|
||||
fileviewer *.7z 7z l %c
|
||||
" #endregion Farch
|
||||
filetype *.ftp {Mount with curlftpfs}
|
||||
\ FUSE_MOUNT2|curlftpfs -o disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND %CLEAR,
|
||||
"\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND %CLEAR,
|
||||
filetype *.ssh {Mount with sshfs}
|
||||
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
|
||||
|
||||
if has('win')
|
||||
" filetype * start, explorer
|
||||
filetype *
|
||||
\ {File Explorer}
|
||||
\ explorer %"c:p &,
|
||||
\ {Total Commander}
|
||||
\ "C:\Program Files (x86)\totalcmd\TOTALCMD.EXE" /O %"c:p &,
|
||||
\ {Notepad++}
|
||||
\ "C:\Program Files\Notepad++\notepad++.exe" %"c:p &
|
||||
filextype *.txt {Open with Notepad} start notepad.exe %f
|
||||
else
|
||||
filetype * {Native Open} xdg-open > /dev/null 2>&1 &
|
||||
endif
|
||||
" #region Futils – Utils (eg. hashs checks)
|
||||
filetype *.torrent ktorrent %f &
|
||||
fileviewer *.torrent dumptorrent -v %c
|
||||
" Object
|
||||
filetype *.o nm %f | less
|
||||
" Man page
|
||||
filetype *.[1-8] man ./%c
|
||||
fileviewer *.[1-8] man ./%c | col -b
|
||||
" MD5 SHA1 SHA256 SHA512 GPG signature
|
||||
filetype *.md5 {Check MD5 hash sum}
|
||||
\ md5sum -c %f %S,
|
||||
filetype *.sha1 {Check SHA1 hash sum}
|
||||
\ sha1sum -c %f %S,
|
||||
filetype *.sha256 {Check SHA256 hash sum}
|
||||
\ sha256sum -c %f %S,
|
||||
filetype *.sha512 {Check SHA512 hash sum}
|
||||
\ sha512sum -c %f %S,
|
||||
filetype *.asc {Check signature}
|
||||
\ !!gpg --verify %c,
|
||||
" #endregion Futils
|
||||
" #region FmediaBin
|
||||
if has('win')
|
||||
fileviewer
|
||||
\*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,
|
||||
\*.exe,*.epub,*.doc,*.docx
|
||||
\*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus,
|
||||
\*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
||||
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
|
||||
\*.as[fx]
|
||||
" \ powershell New-Object System.IO.FileInfo(\"%c:p\")
|
||||
\ forfiles /M %"c /C "cmd /c (echo @path && echo . . . && echo Last modification: @fdate @ftime)" && echo . . . && type %"c
|
||||
else
|
||||
fileviewer
|
||||
\*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,
|
||||
\ env -u COLORTERM viu-image-viewer.viu %"c -w %pw -t &&
|
||||
\ echo $(file -b %f)
|
||||
\ %pc
|
||||
fileviewer
|
||||
\*.exe,*.doc,
|
||||
\*.svg,
|
||||
\ echo $(file -b %f) && echo — && echo $(ls -lh %f)&& echo — && echo $(head %f | tr -d '\0')
|
||||
fileviewer *.pdf pdftotext -nopgbrk %c -
|
||||
fileviewer <video/*>,<audio/*> mediainfo %c
|
||||
endif
|
||||
" #endregion FmediaBin
|
||||
fileviewer .*/,*/ tree %c -L 3 &
|
||||
fileviewer ../ tree %c -L 1 &
|
||||
fileviewer *.js,*.mjs,*.ts,*.sh,
|
||||
\*.css,*.scss,
|
||||
\*.php,
|
||||
\*.md,*.html,
|
||||
\*.json,*.xml
|
||||
\ env -uCOLORTERM bat --color always --theme 'Visual Studio Dark+' --wrap never --pager never --tabs 2 %c -p
|
||||
fileviewer <text/x-*>,<application/*> env -uCOLORTERM bat --color always --theme 'Visual Studio Dark+' --wrap never --pager never --tabs 2 %c -p
|
||||
" #endregion F
|
||||
" #region S – sS keys
|
||||
nnoremap sf :file &
|
||||
nnoremap sjj :cd ./
|
||||
nnoremap sjh :cd ~/
|
||||
nnoremap sjg :cd ~/Vzdálené/GitHub/
|
||||
nnoremap sjp :cd ~/Dokumenty/Projekty/
|
||||
nnoremap sb :bmg
|
||||
nnoremap sS :Set
|
||||
nnoremap SS :<up><cr>
|
||||
" #endregion S
|
||||
" #region Y – Copy files/names/…
|
||||
nmap ycc :clone <cr>
|
||||
" copy/move files to the opposite pane
|
||||
nmap yp :copy <cr>
|
||||
nmap yP :move <cr>
|
||||
" Interaction with system clipboard (yank directory path/curr.file path/filename)
|
||||
if has('win')
|
||||
nnoremap ycp :!echo %"d:gs!\!/! %i | clip<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||
nnoremap ycf :!echo %"c:gs!\!/! %i | clip<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||
nnoremap ycn :!echo %"c %i | clip<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||
elseif executable('xclip')
|
||||
nnoremap ycd :!echo -n %d | xclip -selection clipboard %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||
nnoremap ycf :!echo -n %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||
nnoremap ycn :!echo -n %c | xclip -selection clipboard %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||
elseif executable('xsel')
|
||||
nnoremap ycd :!echo -n %d | xsel --input --primary %i && echo -n %d | xsel --clipboard --input %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||
nnoremap ycf :!echo -n %c:p | xsel --input --primary %i && echo -n %c:p | xsel --clipboard --input %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||
nnoremap ycn :!echo -n %c | xsel --input --primary %i && echo -n %c | xsel --clipboard --input %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||
endif
|
||||
" #endregion Y
|
||||
|
||||
"" #region N – Notes
|
||||
"Filter-out build and temporary files
|
||||
" windo filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/
|
||||
" Example of standard two-panel file managers mappings
|
||||
" nnoremap <f3> :!less %f<cr>
|
||||
" nnoremap <f4> :edit<cr>
|
||||
" nnoremap <f5> :copy<cr>
|
||||
" nnoremap <f6> :move<cr>
|
||||
" nnoremap <f7> :mkdir<space>
|
||||
" nnoremap <f8> :delete<cr>
|
||||
|
||||
" ------------------------------------------------------------------------------
|
||||
|
||||
" Various customization examples
|
||||
|
||||
" Use ag (the silver searcher) instead of grep
|
||||
"
|
||||
" set grepprg=ag\ --line-numbers\ %i\ %a\ %s
|
||||
|
||||
" Add additional place to look for executables
|
||||
"
|
||||
" let $PATH = $HOME.'/bin/fuse:'.$PATH
|
||||
|
||||
" Block particular shortcut
|
||||
"
|
||||
" nnoremap <left> <nop>
|
||||
|
||||
" Export IPC name of current instance as environment variable and use it to
|
||||
" communicate with the instance later.
|
||||
"
|
||||
" It can be used in some shell script that gets run from inside vifm, for
|
||||
" example, like this:
|
||||
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
|
||||
"
|
||||
" let $VIFM_SERVER_NAME = v:servername
|
||||
" #endregion N
|
||||
|
||||
" vim: set filetype=vifm tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||
" vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -1,4 +0,0 @@
|
||||
[submodule ".bash/complete-alias"]
|
||||
path = .bash/complete-alias
|
||||
url = git@github.com:cykerway/complete-alias.git
|
||||
branch = master
|
@ -1,147 +0,0 @@
|
||||
[ColorEffects:Disabled]
|
||||
Color=56,56,56
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.1
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=112,111,110
|
||||
ColorAmount=0.025
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.1
|
||||
ContrastEffect=2
|
||||
Enable=false
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
|
||||
[Colors:Button]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Complementary]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header][Inactive]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Selection]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=61,174,233
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=252,252,252
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=253,188,75
|
||||
ForegroundNegative=176,55,69
|
||||
ForegroundNeutral=198,92,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=23,104,57
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Tooltip]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:View]
|
||||
BackgroundAlternate=35,38,41
|
||||
BackgroundNormal=27,30,32
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Window]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[General]
|
||||
ColorScheme=BreezeDark
|
||||
Name=Breeze Tmavé (upraveno)
|
||||
shadeSortColumn=true
|
||||
|
||||
[KDE]
|
||||
contrast=7
|
||||
|
||||
[WM]
|
||||
activeBackground=49,54,59
|
||||
activeBlend=252,252,252
|
||||
activeForeground=252,252,252
|
||||
inactiveBackground=42,46,50
|
||||
inactiveBlend=161,169,177
|
||||
inactiveForeground=161,169,177
|
@ -1,162 +0,0 @@
|
||||
[ColorEffects:Disabled]
|
||||
Color=56,56,56
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.1
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=112,111,110
|
||||
ColorAmount=0.025
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.1
|
||||
ContrastEffect=2
|
||||
Enable=false
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
|
||||
[Colors:Button]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Complementary]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header][Inactive]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Selection]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=61,174,233
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=252,252,252
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=253,188,75
|
||||
ForegroundNegative=176,55,69
|
||||
ForegroundNeutral=198,92,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=23,104,57
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Tooltip]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:View]
|
||||
BackgroundAlternate=35,38,41
|
||||
BackgroundNormal=27,30,32
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Window]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[General]
|
||||
ColorScheme=BreezeDark
|
||||
Name[cs_CZ]=Breeze Tmavé
|
||||
Name=Breeze Dark
|
||||
font=Ubuntu Condensed,10.5,-1,5,50,0,0,0,0,0
|
||||
menuFont=Ubuntu,10,-1,5,50,0,0,0,0,0
|
||||
shadeSortColumn=true
|
||||
smallestReadableFont=Ubuntu,9,-1,5,50,0,0,0,0,0
|
||||
toolBarFont=Ubuntu,10,-1,5,50,0,0,0,0,0
|
||||
widgetStyle=Breeze
|
||||
|
||||
[Icons]
|
||||
Theme=breeze-dark
|
||||
|
||||
[KDE]
|
||||
ShowIconsInMenuItems=true
|
||||
ShowIconsOnPushButtons=true
|
||||
contrast=4
|
||||
|
||||
[Toolbar style]
|
||||
ToolButtonStyle=TextBesideIcon
|
||||
ToolButtonStyleOtherToolbars=TextBesideIcon
|
||||
|
||||
[WM]
|
||||
activeBackground=49,54,59
|
||||
activeBlend=252,252,252
|
||||
activeForeground=252,252,252
|
||||
inactiveBackground=42,46,50
|
||||
inactiveBlend=161,169,177
|
||||
inactiveForeground=161,169,177
|
@ -1,147 +0,0 @@
|
||||
[ColorEffects:Disabled]
|
||||
Color=56,56,56
|
||||
ColorAmount=0
|
||||
ColorEffect=0
|
||||
ContrastAmount=0.65
|
||||
ContrastEffect=1
|
||||
IntensityAmount=0.1
|
||||
IntensityEffect=2
|
||||
|
||||
[ColorEffects:Inactive]
|
||||
ChangeSelectionColor=true
|
||||
Color=112,111,110
|
||||
ColorAmount=0.025
|
||||
ColorEffect=2
|
||||
ContrastAmount=0.1
|
||||
ContrastEffect=2
|
||||
Enable=false
|
||||
IntensityAmount=0
|
||||
IntensityEffect=0
|
||||
|
||||
[Colors:Button]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=240,84,76
|
||||
DecorationHover=240,84,76
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Complementary]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Header][Inactive]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=61,174,233
|
||||
DecorationHover=61,174,233
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Selection]
|
||||
BackgroundAlternate=30,87,116
|
||||
BackgroundNormal=240,84,76
|
||||
DecorationFocus=240,84,76
|
||||
DecorationHover=240,84,76
|
||||
ForegroundActive=252,252,252
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=253,188,75
|
||||
ForegroundNegative=176,55,69
|
||||
ForegroundNeutral=198,92,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=23,104,57
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Tooltip]
|
||||
BackgroundAlternate=42,46,50
|
||||
BackgroundNormal=49,54,59
|
||||
DecorationFocus=240,84,76
|
||||
DecorationHover=240,84,76
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:View]
|
||||
BackgroundAlternate=35,38,41
|
||||
BackgroundNormal=27,30,32
|
||||
DecorationFocus=240,84,76
|
||||
DecorationHover=240,84,76
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[Colors:Window]
|
||||
BackgroundAlternate=49,54,59
|
||||
BackgroundNormal=42,46,50
|
||||
DecorationFocus=240,84,76
|
||||
DecorationHover=240,84,76
|
||||
ForegroundActive=61,174,233
|
||||
ForegroundInactive=161,169,177
|
||||
ForegroundLink=29,153,243
|
||||
ForegroundNegative=218,68,83
|
||||
ForegroundNeutral=246,116,0
|
||||
ForegroundNormal=252,252,252
|
||||
ForegroundPositive=39,174,96
|
||||
ForegroundVisited=155,89,182
|
||||
|
||||
[General]
|
||||
ColorScheme=BreezeDark
|
||||
Name=Breeze Tmavé (numix)
|
||||
shadeSortColumn=true
|
||||
|
||||
[KDE]
|
||||
contrast=4
|
||||
|
||||
[WM]
|
||||
activeBackground=49,54,59
|
||||
activeBlend=252,252,252
|
||||
activeForeground=252,252,252
|
||||
inactiveBackground=33,38,43
|
||||
inactiveBlend=161,169,177
|
||||
inactiveForeground=161,169,177
|
@ -1,15 +0,0 @@
|
||||
[Appearance]
|
||||
AntiAliasFonts=true
|
||||
BoldIntense=true
|
||||
ColorScheme=DarkPastels
|
||||
DimmValue=54
|
||||
Font=Ubuntu Mono,9,-1,5,75,0,0,0,0,0,Bold
|
||||
UseFontLineChararacters=false
|
||||
|
||||
[General]
|
||||
DimWhenInactive=false
|
||||
Name=Můj
|
||||
Parent=FALLBACK/
|
||||
|
||||
[Scrolling]
|
||||
ScrollBarPosition=2
|
@ -1,26 +0,0 @@
|
||||
# Mozilla Firefox
|
||||
In fact, lots of settings are synced by Firefox itself.
|
||||
So this folder contains just some infos around and settings for [tridactyl](#tridactyl).
|
||||
|
||||
## Related files
|
||||
- [../../.tridactylrc](../../.tridactylrc)
|
||||
- [../native-messaging-hosts/tridactyl.json](../native-messaging-hosts/tridactyl.json)
|
||||
|
||||
## Extensions
|
||||
1. My collections:
|
||||
1. [Main](https://addons.mozilla.org/cs/firefox/collections/13245610/Ubuntu/)
|
||||
1. [Specific](https://addons.mozilla.org/cs/firefox/collections/13245610/Specific/)
|
||||
1. [Bin](https://addons.mozilla.org/cs/firefox/collections/13245610/Bin/)
|
||||
1. Notes
|
||||
1. tridactyl: [see below](#tridactyl).
|
||||
1. _History AutoDelete_ can clean _LoadTabOnSelect_’s temp urls in history (e.g. `^.*4808bb0d\-324e\-4b8d\-bb9e\-a998b765153c.*$`).
|
||||
1. Shortcuts
|
||||
1. _Open containers panel_: `Ctrl+.`
|
||||
1. _Open the Firefox Screenshots UI_: `Ctrl+Shift+s`
|
||||
1. _Sidebar_: `Shift+Alt+w` (default for Firefox Notes plugin)
|
||||
1. _To Google Translate_: `Ctrl+Shift+\d` (\d= 1,2,3).
|
||||
|
||||
## tridactyl
|
||||
1. Plugin can be found on [tridactyl/tridactyl](https://github.com/tridactyl/tridactyl).
|
||||
1. Load/Export settings see [tridactyl/tridactyl FAQ section](https://github.com/tridactyl/tridactyl#frequently-asked-questions-faq).
|
||||
1. `gn*` (goto quickmark – new tab), `o` in vmode ⇒ reverse selection
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"name": "tridactyl",
|
||||
"description": "Tridactyl native command handler",
|
||||
"path": "/home/jaandrle/.local/share/tridactyl/native_main",
|
||||
"type": "stdio",
|
||||
"allowed_extensions": [ "tridactyl.vim@cmcaine.co.uk","tridactyl.vim.betas@cmcaine.co.uk", "tridactyl.vim.betas.nonewtab@cmcaine.co.uk" ]
|
||||
}
|
1
.termux/termux.properties
Normal file
1
.termux/termux.properties
Normal file
@ -0,0 +1 @@
|
||||
extra-keys = [['ESC','~','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]
|
119
.tridactylrc
119
.tridactylrc
@ -1,119 +0,0 @@
|
||||
""" Tridactyl config file | Jan Andrle | 2024-02-28
|
||||
" General Settings
|
||||
set configversion 2.0
|
||||
set theme dark
|
||||
set modeindicatorshowkeys true
|
||||
set modeindicatormodes.ignore false
|
||||
set modeindicator true
|
||||
set hintfiltermode simple
|
||||
set hintchars fsahjklgyuiopqwertnmzxcvb
|
||||
set smoothscroll true
|
||||
|
||||
unbind zI
|
||||
unbind zM
|
||||
unbind zO
|
||||
unbind zR
|
||||
unbind zi
|
||||
unbind zm
|
||||
unbind zo
|
||||
unbind zr
|
||||
unbind zz
|
||||
bind zt hint -z
|
||||
bind zz composite hint -z ; scrollpage -0.5
|
||||
bind zb composite hint -z ; scrollpage -0.95
|
||||
bind gm scrollto 42.5 x
|
||||
bind gM scrollto 42.5 x
|
||||
bind 0zo zoom 1
|
||||
bind zo zoom 0.1 true
|
||||
bind §zo zoom 0.5 true
|
||||
bind zO zoom -0.1 true
|
||||
bind §zO zoom -0.5 true
|
||||
bind §§h scrollpx -1000
|
||||
bind §h scrollpx -500
|
||||
bind §l scrollpx 500
|
||||
bind §§l scrollpx 1000
|
||||
|
||||
" /?*# … search collising with native ui + another problems
|
||||
" https://gist.github.com/BurntSushi/393546a65db38d57cedcfd72c6d89bf3#file-tridactylrc-L18
|
||||
unbind <c-f> " pgdown for scrolling
|
||||
bind gi hint -Jc input,textarea,[contenteditable="true"]
|
||||
|
||||
unbindurl ^https://www.youtube.com/* >>
|
||||
unbindurl ^https://www.youtube.com/* <<
|
||||
" see https://gist.github.com/jaandrle/031198ab5130deb903065138532cc066
|
||||
bindurl ^https://www.youtube.com/* ss fillcmdline open B: YT
|
||||
bindurl ^https://www.o2tv.cz/* ss fillcmdline open B: O2
|
||||
bindurl ^https://chat.openai.com/* ss fillcmdline open B: OPENAI
|
||||
|
||||
|
||||
command pauseVideos js Array.from(document.querySelectorAll("video")).forEach(el=> ( location.hostname!=="www.o2tv.cz" ? el.pause() : [ "Pauza" ].map(l=> document.querySelector(`[aria-label=${l}]`)).find(Boolean)?.dispatchEvent(new Event("click")) ))
|
||||
tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${document.title.replace(/["':|\.,\?\!_]/g, '').replace(/ /g, '-').toLowerCase()}`)
|
||||
bind ůp js (v=> { if(!v) return; v.paused ? v.play() : tri.controller.acceptExCmd("pauseVideos"); })(document.querySelector("video"))
|
||||
bind ůP js (v=> { if(!v) return; v.playbackRate ? (v.playbackRate= 0) : (v.playbackRate= 1); })(document.querySelector("video"))
|
||||
bind ůl js (v=> { if(!v) return; v.currentTime+= 15 })(document.querySelector("video"))
|
||||
bind ůh js (v=> { if(!v) return; v.currentTime-= 15 })(document.querySelector("video"))
|
||||
bind ůL fillcmdline_notrail js document.querySelector("video").currentTime+= 15*30
|
||||
bind ůůl fillcmdline_notrail js document.querySelector("video").currentTime+= 15*30
|
||||
bind ůk js (v=> { if(!v) return; v.playbackRate+= 0.25 })(document.querySelector("video"))
|
||||
bind ůj js (v=> { if(!v) return; v.playbackRate-= 0.25 })(document.querySelector("video"))
|
||||
bind ů= js (v=> { if(!v) return; v.playbackRate= 1 })(document.querySelector("video"))
|
||||
bind ůG js (v=> { if(!v) return; v.play(); v.currentTime= v.duration-10; setTimeout(()=> tri.controller.acceptExCmd("pauseVideos"), 5000); })(document.querySelector("video"))
|
||||
|
||||
unbind --mode=normal d
|
||||
bind dd tabclose
|
||||
|
||||
unbind --mode=normal s
|
||||
bind st fillcmdline_notrail tab
|
||||
|
||||
" h keyboardlayoutoverrides … https://gistpreview.github.io/?324119c773fac31651f6422087b36804
|
||||
" set keyboardlayoutoverrides "Digit2: ;, Backquote: :"
|
||||
set keytranslatemap {"ě":";",";":":"}
|
||||
bindurl ^https://mail.centrum.cz/* ;; composite hint_focus ; js document.activeElement.dispatchEvent(new CustomEvent("mouseover"))
|
||||
bind --mode=normal ;gt hint -c [tabindex]
|
||||
|
||||
bind š tab #
|
||||
bind sš fillcmdline tab
|
||||
|
||||
" b→t→n to make more consistent with gn*
|
||||
unbind --mode=normal b
|
||||
unbind --mode=normal B
|
||||
bind --mode=normal t fillcmdline tab
|
||||
bind --mode=normal T fillcmdline taball
|
||||
bind --mode=normal n fillcmdline tabopen
|
||||
bind --mode=normal N current_url tabopen
|
||||
|
||||
bind -c fillcmdline recontain
|
||||
bind sc fillcmdline_notrail container
|
||||
|
||||
bind --mode=visual \t composite js "https://libretranslate.com/?source=auto&target=cs&q="+encodeURI(document.getSelection().toString()) | tabopen
|
||||
bind --mode=visual \T composite js "https://translate.google.com/?sl=auto&tl=cs&op=translate&text="+encodeURI(document.getSelection().toString()) | tabopen
|
||||
bind --mode=normal \t composite js "http://translate.google.com/translate?js=n&tl=cs&u="+encodeURI(location.href) | tabopen
|
||||
|
||||
bind gnk tabopen -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||
bind gok open -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||
bind gwk winopen -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||
bind gnC tabopen -c osobní https://calendar.google.com
|
||||
bind goC open -c osobní https://calendar.google.com
|
||||
bind gwC winopen -c osobní https://calendar.google.com
|
||||
|
||||
" Sites (mails) notes using Github Gists
|
||||
bind sn js tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${document.title.replace(/["':|\.,\?\!_]/g, '').replace(/ /g, '-').toLowerCase()}`)
|
||||
bind sN composite clipboard yankmd ; tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62/edit
|
||||
bindurl ^https://mail.centrum.cz/* sn js tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${(new URLSearchParams(window.location.search)).get("msg")}`)
|
||||
bindurl ^https://mail.centrum.cz/* sN composite js tri.controller.acceptExCmd(`clipboard yank [${(new URLSearchParams(window.location.search)).get("msg")}](https://mail.centrum.cz/?msg=${(new URLSearchParams(window.location.search)).get("msg")})`) ; tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62/edit
|
||||
|
||||
alias hint_focus hint -;
|
||||
quickmark c moz-extension://616498c0-3916-4f0b-b0a9-ce01ecf2298d/popup.html
|
||||
|
||||
command mastodonUncoverAll composite hint_focus .scrollable ; js (onclick=document.createEvent("Events"), onclick.initEvent("click", true, false), Array.from(document.activeElement.getElementsByClassName("status__content__spoiler-link")).forEach(el=> el.dispatchEvent(onclick)))
|
||||
command mastodonRedirectHome js const parts = location.pathname.split('/'); if(parts.length===2) location.href= `https://fosstodon.org/${parts[1]}@${location.host}`; else location.href= `https://fosstodon.org/authorize_interaction?uri=${location.href}`;
|
||||
bind sm fillcmdline_notrail mastodon
|
||||
|
||||
command data_delall composite hint_focus * ; js document.activeElement.querySelectorAll("input").forEach(el=> el.checked=false)
|
||||
|
||||
command scrollblur js tri.scrolling.setCurrentFocus(document.documentElement || document.body)
|
||||
autocmd DocLoad https://user.centrum.cz/?url=http%3A%2F%2Fmail.centrum.cz open https://mail.centrum.cz/?fld=-666
|
||||
|
||||
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
|
||||
" vim: set filetype=tridactyl
|
||||
" vim: set ft=vim :
|
@ -1,17 +0,0 @@
|
||||
# Vim
|
||||
My cross-platform config file. Now primarly **Ubuntu**, in the past also Windows (I don't use them so much now → not tested!).
|
||||
|
||||
To navigate my secondary editor use [../vscode](../vscode).
|
||||
|
||||
## Related files
|
||||
- [../.vimrc](../.vimrc)
|
||||
- [../.config/coc/ultisnips](../.config/coc/ultisnips)
|
||||
- [./\*](./)
|
||||
|
||||
## Plugins
|
||||
See [./§vim_plugins_export-v0.json](./§vim_plugins_export-v0.json). Also call `:helptags ~/.vim/bundle/`.
|
||||
|
||||
|
||||
## To consider
|
||||
- [yaegassy/coc-html-css-support: HTML id and class attribute "completion" for coc.nvim.](https://github.com/yaegassy/coc-html-css-support): `alpine.js`, `petite-vue`
|
||||
- [vimwiki/vimwiki: Personal Wiki for Vim](https://github.com/vimwiki/vimwiki)
|
@ -1,6 +0,0 @@
|
||||
nmap <leader>vd /diff --git<cr>0vG$
|
||||
command! AIcommit ALTredir !§ai-commit.mjs
|
||||
command! AIcommitConventional ALTredir !§ai-commit.mjs --format conventional
|
||||
command! AIcommitGitmoji ALTredir !§ai-commit.mjs --format gitmoji
|
||||
command! AIcommitGit3moji ALTredir !§ai-commit.mjs --format git3moji
|
||||
nmap <leader><f1> :AIcommitOP
|
@ -1,113 +0,0 @@
|
||||
" Fold expressions {{{1
|
||||
function! StackedMarkdownFolds()
|
||||
let line = getline(v:lnum)
|
||||
let prevline = getline(v:lnum - 1)
|
||||
let nextline = getline(v:lnum + 1)
|
||||
" fenced block
|
||||
if line =~ '^```.*$' && prevline =~ '^\s*$' " start of a fenced block
|
||||
return ">2"
|
||||
elseif line =~ '^```$' && nextline =~ '^\s*$' " end of a fenced block
|
||||
return "<2"
|
||||
endif
|
||||
" headers
|
||||
if s:HeadingDepth(v:lnum)
|
||||
return ">1"
|
||||
endif
|
||||
" frontmatter
|
||||
if line =~ '^----*$'
|
||||
return v:lnum == 1 ? ">1" : '<1'
|
||||
endif
|
||||
return '='
|
||||
endfunction
|
||||
|
||||
" Helpers {{{1
|
||||
function! s:SID()
|
||||
return matchstr(expand('<sfile>'), '<SNR>\d\+_')
|
||||
endfunction
|
||||
|
||||
function! s:HeadingDepth(lnum)
|
||||
if s:LineIsFenced(a:lnum) | return 0 | endif
|
||||
|
||||
let thisline = getline(a:lnum)
|
||||
if thisline =~ '^#\+\s\+'
|
||||
return len(matchstr(thisline, '^#\{1,6}'))
|
||||
else
|
||||
if thisline != ''
|
||||
let prevline = getline(a:lnum - 1)
|
||||
let nextline = getline(a:lnum + 1)
|
||||
if (nextline =~ '^=\+$') && (prevline =~ '^\s*$')
|
||||
return 1
|
||||
elseif (nextline =~ '^-\+$') && (prevline =~ '^\s*$')
|
||||
return 2
|
||||
endif
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:LineIsFenced(lnum)
|
||||
if exists("b:current_syntax") && b:current_syntax ==# 'markdown' || &filetype ==# 'markdown'
|
||||
" It's cheap to check if the current line has 'markdownCode' syntax group
|
||||
return s:HasSyntaxGroup(a:lnum, '\vmarkdown(Code|Highlight)')
|
||||
else
|
||||
" Using searchpairpos() is expensive, so only do it if syntax highlighting
|
||||
" is not enabled
|
||||
return s:HasSurroundingFencemarks(a:lnum)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:HasSyntaxGroup(lnum, targetGroup)
|
||||
let syntaxGroup = map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
|
||||
for value in syntaxGroup
|
||||
if value =~ a:targetGroup
|
||||
return 1
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:HasSurroundingFencemarks(lnum)
|
||||
let cursorPosition = [line("."), col(".")]
|
||||
call cursor(a:lnum, 1)
|
||||
let startFence = '\%^```\|^\n\zs```'
|
||||
let endFence = '```\n^$'
|
||||
let fenceEndPosition = searchpairpos(startFence,'',endFence,'W')
|
||||
call cursor(cursorPosition)
|
||||
return fenceEndPosition != [0,0]
|
||||
endfunction
|
||||
|
||||
function! s:FoldText()
|
||||
if getline(v:foldstart) =~ '^----*$'
|
||||
let title= ''
|
||||
let i= v:foldstart+1
|
||||
let I= v:foldend
|
||||
while i<I && title !~ '^title'
|
||||
let title= getline(i)
|
||||
let i+= 1
|
||||
endwhile
|
||||
if title !~ '^title'
|
||||
let title= 'Front Matter'
|
||||
endif
|
||||
return title
|
||||
endif
|
||||
let indent = repeat('#', s:HeadingDepth(v:foldstart))
|
||||
let title = substitute(getline(v:foldstart), '^#\+\s\+', '', '')
|
||||
let foldsize = (v:foldend - v:foldstart)
|
||||
let linecount = '['.foldsize.' line'.(foldsize>1?'s':'').']'
|
||||
return indent.' '.title.' '.linecount.' '
|
||||
endfunction
|
||||
|
||||
function! FoldMarkdownToggle()
|
||||
if &l:foldexpr ==# 'StackedMarkdownFolds()'
|
||||
setlocal foldmethod< foldtext< foldexpr<
|
||||
else
|
||||
setlocal foldmethod=expr
|
||||
let &l:foldtext = s:SID().'FoldText()'
|
||||
let &l:foldexpr = 'StackedMarkdownFolds()'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Teardown {{{1
|
||||
if !exists("b:undo_ftplugin") | let b:undo_ftplugin = '' | endif
|
||||
let b:undo_ftplugin .= '
|
||||
\ | setlocal foldmethod< foldtext< foldexpr<
|
||||
\ '
|
||||
" vim:set fdm=marker:
|
@ -1,3 +0,0 @@
|
||||
execute "source ".system("mdexpr-agenda vim 2> /dev/null")
|
||||
command MDEXPRclose lclose | lexpr []
|
||||
call scommands#map('m', 'MDEXPR', "n")
|
@ -1,3 +0,0 @@
|
||||
unlet b:current_syntax
|
||||
syntax include @Yaml syntax/yaml.vim
|
||||
syntax region yamlFrontmatter start=/\%^---$/ end=/^---$/ keepend contains=@Yaml
|
@ -1,30 +0,0 @@
|
||||
{
|
||||
"workspace.rootPatterns": [ ".git", ".vscode" ],
|
||||
"coc.preferences.formatOnType": false,
|
||||
"diagnostic.separateRelatedInformationAsDiagnostics": true,
|
||||
"diagnostic.errorSign": "┅",
|
||||
"diagnostic.warningSign": "┉",
|
||||
"diagnostic.infoSign": "┄",
|
||||
"diagnostic.hintSign": "·",
|
||||
"javascript.showUnused": true,
|
||||
"coc.source.emoji.filetypes": [ "markdown", "magit", "gitcommit" ],
|
||||
"html.filetypes": [ "html", "handlebars", "htmldjango", "blade", "liquid" ],
|
||||
"html.autoClosingTags": false,
|
||||
"html.autoCreateQuotes": false,
|
||||
"javascript.preferences.quoteStyle": "double",
|
||||
"javascript.preferences.importModuleSpecifierEnding": "js",
|
||||
"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
|
||||
"___eslint.options": {
|
||||
"overrideConfig":{
|
||||
"extends": [
|
||||
"eslint:recommended"
|
||||
],
|
||||
"rules": {
|
||||
"no-use-before-define": ["error", "nofunc"],
|
||||
"max-params": ["error", 4],
|
||||
"max-depth": ["error", 4],
|
||||
"complexity": ["error", 15]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
" npm install -g jshint
|
||||
CompilerSet makeprg=jshint
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m
|
||||
|
||||
" vim: set sts=4 sw=4 expandtab ff=unix fdm=syntax :
|
@ -1,51 +0,0 @@
|
||||
```
|
||||
%%VERSION%%
|
||||
|
||||
Autor: Bram Moolenaar a další
|
||||
Modified by team+vim@tracker.debian.org
|
||||
Vim je volně šiřitelný program s otevřeným zdrojovým kódem
|
||||
|
||||
Pomozte chudým dětem v Ugandě!
|
||||
podrobnější informace získáte pomocí :help iccf<Enter>
|
||||
```
|
||||
|
||||
## Získání nápovědy
|
||||
- `:help<Enter>`: Zobrazit nápovědu (nebo také `<F1>`, `:help __něco__<Enter>`, …)
|
||||
- `:help version8<Enter>`: Zobrazit informace o této verzi
|
||||
- `sh\`, `shs`, `shh<Enter>`: Zobrazit kombinace kláves začínající `\`, `s` a jiné zajímavé
|
||||
|
||||
|
||||
## Jak ukončit VIM
|
||||
- `:q<Enter>`: Ukončit program/okno (nebo také `:qa<Enter>`, `ZZ` a `ZQ` … viz `:help write-quit`)
|
||||
- `:bd<Enter>`: Zavřít soubor (tzv. „buffer”)
|
||||
|
||||
|
||||
## Rychlá navigace na této stránce
|
||||
- `w`: Otevřít *sezení* (viz `:CLsessionLoad`), `W` zkratka pro vyfiltrování jen pracovních
|
||||
- Otevřít soubor:
|
||||
- `o`: *dříve otevřený* (viz `:help oldfiles<Enter>`)
|
||||
- `e`: *prázdný*
|
||||
- `p`: *prázdný a vložit text ze systémové schránky*
|
||||
- `m`: Seznam záložek (viz `:help mark-motions<Enter>`)
|
||||
- `c`: Upravit tento soubor
|
||||
- `P`: Rozbalit poznámky níže
|
||||
|
||||
<!--region Poznámky -->
|
||||
## Poznámky
|
||||
- `:help 'suffixesadd'` [gf (goto file) doesn't work in PHP file : vim](https://www.reddit.com/r/vim/comments/t8o0bw/gf_goto_file_doesnt_work_in_php_file/)
|
||||
<!--endregion-->
|
||||
|
||||
## Náhodná část z konfiguračního souboru `.vimrc`
|
||||
```vim %%VIMRC%%
|
||||
```
|
||||
|
||||
<!--region Mapování -->
|
||||
nnoremap <buffer><silent> e :bd<cr>
|
||||
nnoremap <buffer><silent> p :bd<bar>normal "+p<cr>
|
||||
nnoremap <buffer><silent> o :ALToldfiles<cr>
|
||||
nnoremap <buffer> w :call feedkeys(':CLSESSIONload ', 'tn')<cr>
|
||||
nnoremap <buffer> W :call feedkeys(':CLSESSIONload work_', 'tn')<cr>
|
||||
nnoremap <buffer><silent> m :marks<cr>
|
||||
nnoremap <buffer> P /region<cr>za
|
||||
nnoremap <buffer><silent> c :e ~/.vim/intro-template.md<cr>
|
||||
<!--endregion-->
|
@ -1 +0,0 @@
|
||||
off
|
Binary file not shown.
@ -1,495 +0,0 @@
|
||||
" vifm syntax file
|
||||
" Maintainer: xaizek <xaizek@posteo.net>
|
||||
" Last Change: October 5, 2021
|
||||
" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:current_syntax = 'vifm'
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" General commands
|
||||
syntax keyword vifmCommand contained
|
||||
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] plugin plugins popd
|
||||
\ pushd pu[t] pw[d] qa[ll] q[uit] redr[aw] reg[isters] regular rename
|
||||
\ restart restore rlink screen sh[ell] siblnext siblprev sor[t] sp[lit]
|
||||
\ st[op] s[ubstitute] tabc[lose] tabm[ove] tabname tabnew tabn[ext]
|
||||
\ tabo[nly] tabp[revious] touch tr trashes tree session sync undol[ist]
|
||||
\ ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll] xa[ll] x[it]
|
||||
\ y[ank]
|
||||
\ nextgroup=vifmArgs
|
||||
syntax keyword vifmCommandCN contained
|
||||
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
|
||||
\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
|
||||
\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
|
||||
\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
|
||||
\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
|
||||
\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
|
||||
\ nextgroup=vifmArgsCN
|
||||
|
||||
" commands that might be prepended to a command without changing everything else
|
||||
syntax keyword vifmPrefixCommands contained windo winrun
|
||||
|
||||
" Map commands
|
||||
syntax keyword vifmMap contained dm[ap] dn[oremap] du[nmap] map mm[ap]
|
||||
\ mn[oremap] mu[nmap] nm[ap] nn[oremap] no[remap] nun[map] qm[ap] qn[oremap]
|
||||
\ qun[map] unm[ap] vm[ap] vn[oremap] vu[nmap]
|
||||
\ skipwhite nextgroup=vifmMapArgs
|
||||
syntax keyword vifmCMapAbbr contained ca[bbrev] cm[ap] cnorea[bbrev] cno[remap]
|
||||
\ cuna[bbrev] cu[nmap]
|
||||
\ skipwhite nextgroup=vifmCMapArgs
|
||||
|
||||
" Other commands
|
||||
syntax keyword vifmAutocmdCommand contained au[tocmd] nextgroup=vifmAutoEvent
|
||||
syntax keyword vifmCdCommand contained cd
|
||||
syntax keyword vifmCmdCommand contained com[mand] nextgroup=vifmCmdCommandName
|
||||
syntax keyword vifmColoCommand contained colo[rscheme]
|
||||
syntax keyword vifmHiCommand contained hi[ghlight]
|
||||
syntax keyword vifmInvertCommand contained invert
|
||||
syntax keyword vifmLetCommand contained let
|
||||
syntax keyword vifmUnletCommand contained unl[et]
|
||||
syntax keyword vifmSetCommand contained se[t] setl[ocal] setg[lobal]
|
||||
syntax keyword vifmSoCommand contained so[urce]
|
||||
syntax keyword vifmMarkCommand contained ma[rk]
|
||||
syntax keyword vifmFtCommand contained filet[ype] filex[type] filev[iewer]
|
||||
syntax keyword vifmExprCommand contained if ec[ho] elsei[f] exe[cute]
|
||||
syntax keyword vifmNormalCommand contained norm[al]
|
||||
\ nextgroup=vifmColonSubcommand
|
||||
syntax match vifmPatternCommands contained /\<\(filter\(!\|\>\)\|select\(!\|\>\)\|unselect\>\)/ skipwhite
|
||||
\ nextgroup=vifmPatterns
|
||||
|
||||
" List of event names for autocommands (case insensitive)
|
||||
syntax case ignore
|
||||
syntax keyword vifmAutoEvent contained DirEnter nextgroup=vifmStatementC
|
||||
syntax case match
|
||||
|
||||
" Builtin functions
|
||||
syntax match vifmBuiltinFunction
|
||||
\ '\(chooseopt\|expand\|executable\|extcached\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze('
|
||||
|
||||
" Operators
|
||||
syntax match vifmOperator "\(==\|!=\|>=\?\|<=\?\|\.\|-\|+\|&&\|||\)" skipwhite
|
||||
|
||||
" Highlight groups
|
||||
syntax keyword vifmHiArgs contained cterm ctermfg ctermbg gui guifg guibg
|
||||
syntax case ignore
|
||||
syntax keyword vifmHiGroups contained WildMenu Border Win CmdLine CurrLine
|
||||
\ OtherLine Directory Link Socket Device Executable Selected BrokenLink
|
||||
\ TopLine TopLineSel StatusLine JobLine SuggestBox Fifo ErrorMsg CmpMismatch
|
||||
\ AuxWin OtherWin TabLine TabLineSel HardLink LineNr OddLine
|
||||
\ User1 User2 User3 User4 User5 User6 User7 User8 User9
|
||||
syntax keyword vifmHiStyles contained
|
||||
\ bold underline reverse inverse standout italic combine none
|
||||
syntax keyword vifmHiColors contained black red green yellow blue magenta cyan
|
||||
\ white default lightblack lightred lightgreen lightyellow lightblue
|
||||
\ lightmagenta lightcyan lightwhite Grey0 NavyBlue DarkBlue Blue3 Blue3_2
|
||||
\ Blue1 DarkGreen DeepSkyBlue4 DeepSkyBlue4_2 DeepSkyBlue4_3 DodgerBlue3
|
||||
\ DodgerBlue2 Green4 SpringGreen4 Turquoise4 DeepSkyBlue3 DeepSkyBlue3_2
|
||||
\ DodgerBlue1 Green3 SpringGreen3 DarkCyan LightSeaGreen DeepSkyBlue2
|
||||
\ DeepSkyBlue1 Green3_2 SpringGreen3_2 SpringGreen2 Cyan3 DarkTurquoise
|
||||
\ Turquoise2 Green1 SpringGreen2_2 SpringGreen1 MediumSpringGreen Cyan2
|
||||
\ Cyan1 DarkRed DeepPink4 Purple4 Purple4_2 Purple3 BlueViolet Orange4
|
||||
\ Grey37 MediumPurple4 SlateBlue3 SlateBlue3_2 RoyalBlue1 Chartreuse4
|
||||
\ DarkSeaGreen4 PaleTurquoise4 SteelBlue SteelBlue3 CornflowerBlue
|
||||
\ Chartreuse3 DarkSeaGreen4_2 CadetBlue CadetBlue_2 SkyBlue3 SteelBlue1
|
||||
\ Chartreuse3_2 PaleGreen3 SeaGreen3 Aquamarine3 MediumTurquoise
|
||||
\ SteelBlue1_2 Chartreuse2 SeaGreen2 SeaGreen1 SeaGreen1_2 Aquamarine1
|
||||
\ DarkSlateGray2 DarkRed_2 DeepPink4_2 DarkMagenta DarkMagenta_2 DarkViolet
|
||||
\ Purple Orange4_2 LightPink4 Plum4 MediumPurple3 MediumPurple3_2 SlateBlue1
|
||||
\ Yellow4 Wheat4 Grey53 LightSlateGrey MediumPurple LightSlateBlue Yellow4_2
|
||||
\ DarkOliveGreen3 DarkSeaGreen LightSkyBlue3 LightSkyBlue3_2 SkyBlue2
|
||||
\ Chartreuse2_2 DarkOliveGreen3_2 PaleGreen3_2 DarkSeaGreen3 DarkSlateGray3
|
||||
\ SkyBlue1 Chartreuse1 LightGreen_2 LightGreen_3 PaleGreen1 Aquamarine1_2
|
||||
\ DarkSlateGray1 Red3 DeepPink4_3 MediumVioletRed Magenta3 DarkViolet_2
|
||||
\ Purple_2 DarkOrange3 IndianRed HotPink3 MediumOrchid3 MediumOrchid
|
||||
\ MediumPurple2 DarkGoldenrod LightSalmon3 RosyBrown Grey63 MediumPurple2_2
|
||||
\ MediumPurple1 Gold3 DarkKhaki NavajoWhite3 Grey69 LightSteelBlue3
|
||||
\ LightSteelBlue Yellow3 DarkOliveGreen3_3 DarkSeaGreen3_2 DarkSeaGreen2
|
||||
\ LightCyan3 LightSkyBlue1 GreenYellow DarkOliveGreen2 PaleGreen1_2
|
||||
\ DarkSeaGreen2_2 DarkSeaGreen1 PaleTurquoise1 Red3_2 DeepPink3 DeepPink3_2
|
||||
\ Magenta3_2 Magenta3_3 Magenta2 DarkOrange3_2 IndianRed_2 HotPink3_2
|
||||
\ HotPink2 Orchid MediumOrchid1 Orange3 LightSalmon3_2 LightPink3 Pink3
|
||||
\ Plum3 Violet Gold3_2 LightGoldenrod3 Tan MistyRose3 Thistle3 Plum2
|
||||
\ Yellow3_2 Khaki3 LightGoldenrod2 LightYellow3 Grey84 LightSteelBlue1
|
||||
\ Yellow2 DarkOliveGreen1 DarkOliveGreen1_2 DarkSeaGreen1_2 Honeydew2
|
||||
\ LightCyan1 Red1 DeepPink2 DeepPink1 DeepPink1_2 Magenta2_2 Magenta1
|
||||
\ OrangeRed1 IndianRed1 IndianRed1_2 HotPink HotPink_2 MediumOrchid1_2
|
||||
\ DarkOrange Salmon1 LightCoral PaleVioletRed1 Orchid2 Orchid1 Orange1
|
||||
\ SandyBrown LightSalmon1 LightPink1 Pink1 Plum1 Gold1 LightGoldenrod2_2
|
||||
\ LightGoldenrod2_3 NavajoWhite1 MistyRose1 Thistle1 Yellow1 LightGoldenrod1
|
||||
\ Khaki1 Wheat1 Cornsilk1 Grey100 Grey3 Grey7 Grey11 Grey15 Grey19 Grey23
|
||||
\ Grey27 Grey30 Grey35 Grey39 Grey42 Grey46 Grey50 Grey54 Grey58 Grey62
|
||||
\ Grey66 Grey70 Grey74 Grey78 Grey82 Grey85 Grey89 Grey93
|
||||
|
||||
syntax case match
|
||||
|
||||
" Options
|
||||
syntax keyword vifmOption contained aproposprg autocd autochpos caseoptions
|
||||
\ cdpath cd chaselinks classify columns co confirm cf cpoptions cpo
|
||||
\ cvoptions deleteprg dotdirs dotfiles dirsize fastrun fillchars fcs findprg
|
||||
\ followlinks fusehome gdefault grepprg histcursor history hi hlsearch hls
|
||||
\ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls
|
||||
\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu
|
||||
\ numberwidth nuw previewoptions previewprg quickview relativenumber rnu
|
||||
\ rulerformat ruf runexec scrollbind scb scrolloff sessionoptions ssop so
|
||||
\ sort sortgroups sortorder sortnumbers shell sh shellflagcmd shcf shortmess
|
||||
\ shm showtabline stal sizefmt slowfs smartcase scs statusline stl
|
||||
\ suggestoptions syncregs syscalls tablabel tabprefix tabscope tabstop
|
||||
\ tabsuffix timefmt timeoutlen title tm trash trashdir ts tuioptions to
|
||||
\ undolevels ul vicmd viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu
|
||||
\ wildstyle wordchars wrap wrapscan ws
|
||||
|
||||
" Disabled boolean options
|
||||
syntax keyword vifmOption contained noautocd noautochpos nocf nochaselinks
|
||||
\ nodotfiles nofastrun nofollowlinks nohlsearch nohls noiec noignorecase
|
||||
\ noic noincsearch nois nolaststatus nols nolsview nomillerview nonumber
|
||||
\ nonu noquickview norelativenumber nornu noscrollbind noscb norunexec
|
||||
\ nosmartcase noscs nosortnumbers nosyscalls notitle notrash novimhelp
|
||||
\ nowildmenu nowmnu nowrap nowrapscan nows
|
||||
|
||||
" Inverted boolean options
|
||||
syntax keyword vifmOption contained invautocd invautochpos invcf invchaselinks
|
||||
\ invdotfiles invfastrun invfollowlinks invhlsearch invhls inviec
|
||||
\ invignorecase invic invincsearch invis invlaststatus invls invlsview
|
||||
\ invmillerview invnumber invnu invquickview invrelativenumber invrnu
|
||||
\ invscrollbind invscb invrunexec invsmartcase invscs invsortnumbers
|
||||
\ invsyscalls invtitle invtrash invvimhelp invwildmenu invwmnu invwrap
|
||||
\ invwrapscan invws
|
||||
|
||||
" Expressions
|
||||
syntax region vifmStatement start='^\(\s\|:\)*'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||
\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||
\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||
\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommandSt,vifmPrefixCommands
|
||||
\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands
|
||||
" Contained statement with highlighting of angle-brace notation.
|
||||
syntax region vifmStatementCN start='\(\s\|:\)*'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
|
||||
\ contains=vifmCommandCN,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||
\,vifmFtCommandStN,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||
\,vifmNotation,vifmCdCommandStN,vifmSetN,vifmArgument,vifmSoCommand
|
||||
\,vifmSoCommandStN,vifmInvertCommand,vifmInvertCommandStN,vifmPrefixCommands
|
||||
\,vifmLetCN
|
||||
" Contained statement without highlighting of angle-brace notation.
|
||||
syntax region vifmStatementC start='\(\s\|:\)*'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
|
||||
\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||
\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||
\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommand,vifmSoCommandSt
|
||||
\,vifmInvertCommand,vifmInvertCommandSt,vifmPrefixCommands
|
||||
\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands,vifmLetC,vifmUnletC
|
||||
syntax region vifmCmdCommandSt start='^\(\s\|:\)*com\%[mand]\>'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||
\ contains=vifmCmdCommand,vifmComment,vifmInlineComment,vifmNotComment
|
||||
syntax region vifmCmdCommandName contained start='!\?\s\+[a-zA-Z]\+' end='\ze\s'
|
||||
\ skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||
\ nextgroup=vifmCmdArgs
|
||||
syntax region vifmCmdArgs start='\(\s*\n\s*\\\)\?\s*\S\+'
|
||||
\ end='\s' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ contained
|
||||
\ contains=vifmColonSubcommand,vifmComment
|
||||
syntax region vifmColoCommandSt start='^\(\s\|:\)*colo\%[rscheme]\>' end='$'
|
||||
\ keepend oneline contains=vifmColoCommand
|
||||
syntax region vifmInvertCommandSt start='\(\s\|:\)*invert\>' end='$\||'
|
||||
\ keepend oneline contains=vifmInvertCommand
|
||||
syntax region vifmInvertCommandStN start='\(\s\|:\)*invert\>' end='$\||'
|
||||
\ contained keepend oneline contains=vifmInvertCommand,vifmNotation
|
||||
syntax region vifmSoCommandSt start='\(\s\|:\)*so\%[urce]\>' end='$\||'
|
||||
\ keepend oneline contains=vifmSoCommand,vifmEnvVar,vifmStringInExpr
|
||||
syntax region vifmSoCommandStN start='\(\s\|:\)*so\%[urce]\>' end='$\||'
|
||||
\ contained keepend oneline
|
||||
\ contains=vifmSoCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
|
||||
syntax region vifmMarkCommandSt start='^\(\s\|:\)*ma\%[rk]\>' end='$' keepend
|
||||
\ oneline contains=vifmMarkCommand
|
||||
syntax region vifmCdCommandSt start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
|
||||
\ contains=vifmCdCommand,vifmEnvVar,vifmStringInExpr
|
||||
" Highlight for :cd command with highlighting of angle-brace notation.
|
||||
syntax region vifmCdCommandStN start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
|
||||
\ contained
|
||||
\ contains=vifmCdCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
|
||||
syntax region vifmFtCommandSt start='\(\s\|:\)*file[tvx]'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||
\ contained
|
||||
\ contains=vifmFtBeginning,vifmComment
|
||||
syntax region vifmFtCommandStN start='\(\s\|:\)*file[tvx]'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\|\(<[cC][rR]>\)' keepend
|
||||
\ contained
|
||||
\ contains=vifmComment,vifmNotation,vifmFtBeginning
|
||||
syntax region vifmMapSt start='^\(\s\|:\)*\(map\|mm\%[ap]\|mn\%[oremap]\|mu\%[nmap]\|nm\%[ap]\|nn\%[oremap]\|no\%[remap]\|nun\%[map]\|qm\%[ap]\|qn\%[oremap]\|qun\%[map]\|unm\%[ap]\|vm\%[ap]\|vn\%[oremap]\|vu\%[nmap]\)'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||
\ contains=vifmMap
|
||||
syntax region vifmCMapSt
|
||||
\ start='^\(\s\|:\)*\(cm\%[ap]\|cno\%[remap]\|cu\%[nmap]\)'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||
\ contains=vifmCMapAbbr
|
||||
syntax region vifmExprCommandSt
|
||||
\ start='\<\(if\|ec\%[ho]\|elsei\%[f]\|exe\%[cute]\)\>'
|
||||
\ end='$\||'
|
||||
\ contains=vifmExprCommand,vifmString,vifmStringInExpr,vifmBuiltinFunction
|
||||
\,vifmOperator,vifmEnvVar,vifmNumber
|
||||
syntax region vifmNormalCommandSt start='\(\s\|:\)*norm\%[al]\>' end='$' keepend
|
||||
\ oneline
|
||||
\ contains=vifmNormalCommand,vifmComment
|
||||
syntax region vifmExecute start='!' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmNotation,vifmComment
|
||||
syntax region vifmMapArgs start='\ze\S\+'
|
||||
\ end='\ze.' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ contained
|
||||
\ nextgroup=vifmMapArgList
|
||||
syntax region vifmCMapArgs start='\S\+'
|
||||
\ end='\n\s*\\' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ contained
|
||||
\ contains=vifmMapLhs,vifmMapCRhs
|
||||
syntax region vifmMapLhs start='\S\+'
|
||||
\ end='\ze\s' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||
\ contained
|
||||
\ contains=vifmNotation,vifmComment
|
||||
\ nextgroup=vifmMapRhs
|
||||
syntax region vifmMapRhs start='.'
|
||||
\ end='\ze<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||
\ contained keepend
|
||||
\ contains=vifmNotation,vifmComment,vifmColonSubcommandN
|
||||
\ nextgroup=vifmMapRhs
|
||||
syntax region vifmMapCRhs start='\s'
|
||||
\ end='<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||
\ contained keepend
|
||||
\ contains=vifmNotation,vifmComment,vifmSubcommandN
|
||||
syntax region vifmColonSubcommand start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
|
||||
\ end='$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)'
|
||||
\ contained
|
||||
\ contains=vifmStatementC
|
||||
" Contained sub command with highlighting of angle-brace notation.
|
||||
syntax region vifmColonSubcommandN start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
|
||||
\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
|
||||
\ contained
|
||||
\ contains=vifmStatementCN
|
||||
syntax region vifmSubcommandN start='\s*\(\s*\n\s*\\\)\?:\?\s*\S\+'
|
||||
\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
|
||||
\ contained
|
||||
\ contains=vifmStatementCN
|
||||
" Non-empty pattern or form [!][{]{*.ext,*.e}[}], [!][/]/regex/[/][iI] or
|
||||
" <mime-type-globs>, possibly multi-line.
|
||||
" [!]/regexp/[iI]*
|
||||
syntax region vifmPattern contained
|
||||
\ start='!\?/\ze\(\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+/'
|
||||
\ skip='\\/\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='/[iI]*\ze\|/\ze\S\+' keepend
|
||||
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||
" [!]//regexp//[iI]*
|
||||
syntax region vifmPattern contained
|
||||
\ start='!\?//\ze\(/[^/]\|\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+//'
|
||||
\ skip='/[^/]\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='//[iI]*' keepend
|
||||
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||
" [!]{regexp}
|
||||
syntax region vifmPattern contained
|
||||
\ start='!\?{[^}]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}' keepend
|
||||
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||
" [!]{{regexp}}
|
||||
syntax region vifmPattern contained
|
||||
\ start='!\?{{\ze.\{-}}}' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}}' keepend
|
||||
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||
" [!]<regexp>
|
||||
syntax region vifmPattern contained
|
||||
\ start='!\?<[^>]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='>' keepend
|
||||
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||
syntax region vifmPatterns contained
|
||||
\ start='\(^\|\s\)\zs[/{<!]'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ end='\(/[a-zA-Z]\{,4}\|[}>iI]\)\(\s\)' keepend
|
||||
\ contains=vifmPattern,vifmComment
|
||||
syntax match vifmNotPattern contained '!\?\({{}}\|\<//\>\|////\)'
|
||||
syntax region vifmHi
|
||||
\ start='^\(\s\|:\)*\<hi\%[ghlight]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ end='$' keepend
|
||||
\ contains=vifmHiCommand,vifmHiArgs,vifmHiGroups,vifmHiStyles,vifmHiColors
|
||||
\,vifmNumber,vifmComment,vifmInlineComment,vifmNotComment,vifmHiClear
|
||||
\,vifmPatterns,vifmHexColor
|
||||
syntax region vifmFtBeginning contained
|
||||
\ start='\<\(filet\%[ype]\|filext\%[ype]\|filev\%[iewer]\)\>\s\+\S'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||
\ end='\(\S\zs\s\)' keepend
|
||||
\ contains=vifmFtCommand,vifmPatterns,vifmComment
|
||||
|
||||
" common highlight for :command arguments without highlighting of angle-bracket
|
||||
" notation
|
||||
syntax region vifmArgs start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
|
||||
\ contained
|
||||
\ contains=vifmStringInExpr,vifmComment
|
||||
" common highlight for :command arguments with highlighting of angle-bracket
|
||||
" notation
|
||||
syntax region vifmArgsCN start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
|
||||
\ contained
|
||||
\ contains=vifmStringInExpr,vifmNotation
|
||||
|
||||
syntax region vifmSet
|
||||
\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||
\,vifmSetAssignNS,vifmComment,vifmInlineComment,vifmNotComment
|
||||
syntax region vifmSetN
|
||||
\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||
\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
|
||||
syntax region vifmSet2 contained
|
||||
\ start='^\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||
\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
|
||||
|
||||
" Highlight for =value part of :set arguments of form option=value
|
||||
|
||||
" For single quoted string (check that it starts with =')
|
||||
syntax region vifmSetAssignSQS contained
|
||||
\ start="='" skip=+\\\\\|\\'+ end=+'+ keepend
|
||||
\ contains=vifmString
|
||||
" For double quoted string (check that it starts with =")
|
||||
syntax region vifmSetAssignDQS contained
|
||||
\ start='="' skip=+\\\\\|\\"+ end=+"+ keepend
|
||||
\ contains=vifmString
|
||||
" For not strings (check that it doesn't start with either =' or =")
|
||||
syntax region vifmSetAssignNS contained
|
||||
\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
|
||||
\ extend
|
||||
\ contains=vifmNumber,vifmComment,vifmInlineComment
|
||||
" For not strings (check that it doesn't start with either =' or =")
|
||||
syntax region vifmSetAssignNSN contained
|
||||
\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
|
||||
\ extend
|
||||
\ contains=vifmNumber,vifmComment,vifmInlineComment,vifmNotation
|
||||
|
||||
" :let command with highlighting of angle-brace notation.
|
||||
syntax region vifmLet
|
||||
\ start='^\(\s\|:\)*\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||
\,vifmInlineComment,vifmNotComment
|
||||
" Contained :let command without highlighting of angle-brace notation.
|
||||
syntax region vifmLetC
|
||||
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||
\ keepend
|
||||
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction
|
||||
" Contained :let command with highlighting of angle-brace notation.
|
||||
syntax region vifmLetCN
|
||||
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||
\ keepend
|
||||
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction,vifmNotation
|
||||
syntax region vifmUnlet
|
||||
\ start='^\(\s\|:\)*\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||
\ keepend
|
||||
\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
|
||||
syntax region vifmUnletC
|
||||
\ start='\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||
\ keepend
|
||||
\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
|
||||
syntax region vifmString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+
|
||||
syntax region vifmString contained start=+='+hs=s+1 skip=+\\\\\|\\'+ end=+'+
|
||||
syntax region vifmStringInExpr contained start=+=\@<="+hs=s+1 skip=+\\\\\|\\"+
|
||||
\ end=+"+
|
||||
syntax region vifmStringInExpr contained start=+=\@<='+hs=s+1
|
||||
\ skip=+\\\\\|\\'\|''+ end=+'+
|
||||
syntax region vifmStringInExpr contained start=+[.( ]"+hs=s+1 skip=+\\\\\|\\"+
|
||||
\ end=+"+
|
||||
syntax region vifmStringInExpr contained start=+[.( ]'+hs=s+1
|
||||
\ skip=+\\\\\|\\'\|''+ end=+'+
|
||||
syntax region vifmArgument contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syntax region vifmArgument contained start=+'+ skip=+\\\\\|\\'\|''+ end=+'+
|
||||
syntax match vifmEnvVar contained /\$[0-9a-zA-Z_]\+/
|
||||
syntax match vifmNumber contained /\d\+/
|
||||
syntax match vifmHexColor contained /#[0-9a-fA-F]\{6}/
|
||||
|
||||
" Optional map arguments right after command name
|
||||
syntax match vifmMapArgList '\(<\(silent\|wait\)>\s*\)*' contained
|
||||
\ nextgroup=vifmMapLhs
|
||||
|
||||
" Ange-bracket notation
|
||||
syntax case ignore
|
||||
syntax match vifmNotation '<\(esc\|cr\|space\|del\|nop\|\(s-\)\?tab\|home\|end\|left\|right\|up\|down\|bs\|delete\|insert\|pageup\|pagedown\|\([acms]-\)\?f\d\{1,2\}\|c-s-[a-z[\]^_]\|s-c-[a-z[\]^_]\|c-[a-z[\]^_@]\|[am]-c-[a-z]\|c-[am]-[a-z]\|[am]-[a-z]\)>'
|
||||
syntax case match
|
||||
|
||||
" Whole line comment
|
||||
syntax region vifmComment contained extend
|
||||
\ contains=@Spell start='^\(\s\|:\)*"' end='$'
|
||||
" Comment at the end of a line
|
||||
syntax match vifmInlineComment contained contains=@Spell '\s"[^"]*$'
|
||||
" This prevents highlighting non-first line of multi-line command
|
||||
syntax match vifmNotComment contained '\s"[^"]*\(\n\s*\(\\\|"\)\)\@='
|
||||
|
||||
" Empty line
|
||||
syntax match vifmEmpty /^\s*$/
|
||||
|
||||
" :highlight clear
|
||||
syntax match vifmHiClear contained /\s*\<clear\>\s*/
|
||||
|
||||
" Check spelling only in syntax elements marked with @Spell
|
||||
syntax spell notoplevel
|
||||
|
||||
" Highlight
|
||||
highlight link vifmAutocmdCommand Statement
|
||||
highlight link vifmPatternCommands Statement
|
||||
highlight link vifmComment Comment
|
||||
highlight link vifmInlineComment Comment
|
||||
highlight link vifmCommand Statement
|
||||
highlight link vifmCommandCN Statement
|
||||
highlight link vifmPrefixCommands Statement
|
||||
highlight link vifmCdCommand Statement
|
||||
highlight link vifmCmdCommand Statement
|
||||
highlight link vifmColoCommand Statement
|
||||
highlight link vifmHiCommand Statement
|
||||
highlight link vifmHiClear Statement
|
||||
highlight link vifmInvertCommand Statement
|
||||
highlight link vifmMarkCommand Statement
|
||||
highlight link vifmFtCommand Statement
|
||||
highlight link vifmExprCommand Statement
|
||||
highlight link vifmNormalCommand Statement
|
||||
highlight link vifmLetCommand Statement
|
||||
highlight link vifmUnletCommand Statement
|
||||
highlight link vifmSetCommand Statement
|
||||
highlight link vifmSoCommand Statement
|
||||
highlight link vifmBuiltinFunction Function
|
||||
highlight link vifmOperator Operator
|
||||
highlight link vifmMap Statement
|
||||
highlight link vifmCMapAbbr Statement
|
||||
highlight link vifmHiArgs Type
|
||||
highlight link vifmAutoEvent Type
|
||||
highlight link vifmHiGroups Identifier
|
||||
highlight link vifmPattern String
|
||||
highlight link vifmHiStyles PreProc
|
||||
highlight link vifmHiColors Special
|
||||
highlight link vifmOption PreProc
|
||||
highlight link vifmNotation Special
|
||||
highlight link vifmMapArgList Special
|
||||
highlight link vifmString String
|
||||
highlight link vifmStringInExpr String
|
||||
highlight link vifmEnvVar PreProc
|
||||
highlight link vifmNumber Number
|
||||
highlight link vifmHexColor Number
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
let &commentstring = '"%s'
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
|
@ -1,50 +0,0 @@
|
||||
let g:user_tips_list= [
|
||||
\ ':vebose ★ * … ★: eg. map/set/…',
|
||||
\ ':clist+:cc :+cc :-cc :copen :cwindow :cclose',
|
||||
\ ':undolist :earlier :later',
|
||||
\ 'git mergetool → vimdiff3 → https://stackoverflow.com/a/163659',
|
||||
\ ':llist+:ll :+ll :-ll :lopen :lwindow :lclose',
|
||||
\ ':m ''>+1 … :m ''<-2',
|
||||
\ 'QuickList → :set ma+‘edit’+;w ;s … ;q',
|
||||
\ ':set foldopen-=search',
|
||||
\ 'Buffer info → <c-g> g<c-g> … :map <buffer><tab>',
|
||||
\ 'Rename file → :saveas * | :silent !rm # | :bw #',
|
||||
\ 'packadd cfilter',
|
||||
\ 'Next word location → ]I [I ]<c-I> [<c-I> … <leader>]I <leader>[I',
|
||||
\ ':w !sudo tee > /dev/null %',
|
||||
\ '`0·`"·`.·`` … last exit·edit·change·pre-jump … also g''*',
|
||||
\ 'q: q? q/ … @: ?<cr> /<cr> :&<cr> , ;',
|
||||
\ '<c-n><c-p> <c-x><c-l> <c-x><c-f> … :h ins-completion',
|
||||
\ ':split +N … open cur. file in N line … :split +/pattern',
|
||||
\ 'vim can edit zip files',
|
||||
\ ':set nowrapscan (cycle search)',
|
||||
\ '<c-x>= <c-v>',
|
||||
\ 'silent! %s/[\\r \\t]\+$//',
|
||||
\ ':ilist pattern … :ijump pattern',
|
||||
\ 'Replace mode → R',
|
||||
\ 'J gJ K gwip g~ ~',
|
||||
\ 'Folds → zm za zi zj zk (zfG/zd) zc zC zo zO … :*fold<tab>',
|
||||
\ '<c-]> (`ž`) <c-t>',
|
||||
\ 'Macro defs. → ]D [D ]<c-D> [<c-D> … :dlist string … :djump string',
|
||||
\ ':update | edit ++ff=dos | setlocal ff=unix',
|
||||
\ 'Shift-V and then type gq → put "overflowed" text on new lines',
|
||||
\ ':set scrollbind (`scb`) … :diffthis :diffoff :diff*<tab>',
|
||||
\ ":let i=10 | 'a,'bg/Abc/s/yy/\=i/ |let i=i+1 # convert yy to 10,11,12 etc",
|
||||
\ 'use \zs \ze \c inside `?`|`/`',
|
||||
\ 'v_* :%s//replacement',
|
||||
\ ':5,10norm! @a … :g/pattern/norm! @a',
|
||||
\ '`textwidth` → n_gq* v_gq',
|
||||
\ 'File encryption → :X … vim -x filename',
|
||||
\ ':sort /,/',
|
||||
\ 'zz zb zt zL zH gm gM',
|
||||
\ '<c-a> <c-x> g<c-a>…',
|
||||
\ ':set spell :spell<tab> … z= zg zug ]s [s',
|
||||
\ ':lhistory :lolder :lnewer',
|
||||
\ ':[m]ove :[co]py (:t) :p :#',
|
||||
\ ':help i_CTRL-<tab> … i_CTRL-Y … i<c-u>',
|
||||
\ '*grep onchange -r . --include=*.\{js,md\} …or http://jdem.cz/fgytv8',
|
||||
\ '%bdelete|edit #|normal `"',
|
||||
\ ':diffget :diffput c] [c',
|
||||
\ ':chistory :colder :cnewer',
|
||||
\ 'Repeat substitution(s) & g& :& :&& :~ … :help :s_flags'
|
||||
\ ]
|
@ -1 +0,0 @@
|
||||
{"bundle":["https://github.com/tpope/vim-repeat.git","https://github.com/machakann/vim-highlightedyank.git","https://github.com/tpope/vim-surround.git","https://github.com/tpope/vim-liquid.git","https://github.com/junegunn/rainbow_parentheses.vim.git","https://github.com/jaandrle/vim-mini_intro.git","git@github.com:jaandrle/vim-mini_sessions.git","https://github.com/jaandrle/vim-jaandrle_utils.git","https://github.com/jaandrle/vim-scommands.git","https://github.com/jaandrle/vim-mini_enhancement.git","https://github.com/ctrlpvim/ctrlp.vim.git","https://github.com/jaandrle/vim-user_tips.git","https://github.com/rantasub/vim-bash-completion.git","https://github.com/rhysd/git-messenger.vim.git","https://github.com/Yilin-Yang/vim-markbar.git","https://github.com/wellle/context.vim.git","https://github.com/tpope/vim-speeddating.git","https://github.com/jonsmithers/vim-html-template-literals.git","git@github.com:leafOfTree/vim-vue-plugin","git@github.com:madox2/vim-ai","git@github.com:AndrewRadev/linediff.vim.git"],"one_files":["https://gist.githubusercontent.com/jaandrle/9356d737ef5dfda2efbe50248d32cb78/raw/7f73e223b93d9cb889eecc77850604ebe7e102a3/cwordhi.vim","https://gist.githubusercontent.com/jaandrle/d0ce92e67d03dd8da4b7b932b379b879/raw/b47b1260759d32823890c39df31909f386cc3f6c/vifm.vim"],"pack":["git@github.com:Exafunction/codeium.vim.git","git@github.com:MaxMEllon/vim-jsx-pretty","https://github.com/neoclide/coc.nvim.git","git@github.com:editorconfig/editorconfig-vim","git@github.com:jaandrle/coc-custom_elements","https://github.com/mbbill/undotree.git"]}
|
484
.vimrc
484
.vimrc
@ -1,464 +1,82 @@
|
||||
""" VIM config file | Jan Andrle | 2024-02-07 (VIM >=8.1)
|
||||
"" #region B – Base
|
||||
scriptencoding utf-8 | set encoding=utf-8
|
||||
let $BASH_ENV = "~/.bashrc"
|
||||
set runtimepath^=~/.vim/bundle/*
|
||||
packadd! matchit
|
||||
set hidden
|
||||
|
||||
set title
|
||||
colorscheme codedark
|
||||
set updatetime=300 lazyredraw ttyfast " Having longer updatetime (default is 4s) leads to noticeable delays and poor user experience. Also reduce redraw frequency and fast terminal typing
|
||||
set noerrorbells novisualbell
|
||||
set belloff=esc
|
||||
set confirm
|
||||
set guioptions-=T
|
||||
|
||||
cabbrev <expr> %PWD% execute('pwd')
|
||||
cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
|
||||
cabbrev <expr> %CS% mini_enhancement#selectedText()
|
||||
cabbrev <expr> %CW% expand('<cword>')
|
||||
|
||||
let mapleader = "\\"
|
||||
" better for my keyboard, but maybe use `:help keymap`?
|
||||
nnoremap § @
|
||||
nnoremap §§ @@
|
||||
nnoremap ů ;
|
||||
nnoremap ; :
|
||||
nnoremap <leader>u U
|
||||
nnoremap U <c-r>
|
||||
nnoremap ž <c-]>
|
||||
nnoremap <c-up> <c-y>
|
||||
nnoremap <c-down> <c-e>
|
||||
" <c-bs>
|
||||
imap <c-w>
|
||||
cmap <c-w>
|
||||
|
||||
if has("patch-8.1.0360")
|
||||
set diffopt+=algorithm:patience,indent-heuristic | endif
|
||||
set diffopt+=iwhite
|
||||
augroup vimrc_help
|
||||
autocmd!
|
||||
autocmd BufEnter *.txt if &buftype == 'help' | wincmd L | vertical resize 90 | endif
|
||||
augroup END
|
||||
|
||||
""" #region BB – Build-in plugins
|
||||
" https://github.com/rbtnn/vim-gloaded/blob/master/plugin/gloaded.vim
|
||||
let g:loaded_vimballPlugin = 1 " :h pi_vimball … for plugin creators
|
||||
let g:vifm_replace_netrw= 1 | let g:loaded_netrw= 1 | let g:loaded_netrwPlugin= 1 " this line needs to be commented to let vim dowmload spelllangs!!! … see http://jdem.cz/fgyw25
|
||||
""" #endregion BB
|
||||
"" #endregion B
|
||||
"" #region H – Helpers + remap 'sS' (primary ss, see `vim-scommands`)
|
||||
nmap sh :execute 'ALTredir :map s \<bar> map '.mapleader.' \<bar> map § \<bar> map ů \<bar> map ; \<bar> map U \<bar> map ž'<cr>:g/^$/d<cr>:g/^v s/m$<cr>úgg
|
||||
call scommands#map('s', 'CL', "n,v")
|
||||
command! -nargs=? CLscratch 10split | enew | setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted | if <q-args>!='' | execute 'normal "'.<q-args>.'p' | endif | nnoremap <buffer> ;q :q<cr>
|
||||
|
||||
call scommands#map('S', 'SET', "n,v")
|
||||
call scommands#map('a', 'ALT', "n,V")
|
||||
cabbrev ALTR ALTredrawSyntax
|
||||
set grepprg=LC_ALL=C\ grep\ -nrsH
|
||||
command! -nargs=0
|
||||
\ ALTredrawSyntax edit | exec 'normal `"' | exec 'set ft='.&ft
|
||||
command! -complete=command -bar -range -nargs=+
|
||||
\ ALTredir call jaandrle_utils#redir(0, <q-args>, <range>, <line1>, <line2>)
|
||||
command! -nargs=+ -complete=file_in_path -bar
|
||||
\ ALTgrep cgetexpr jaandrle_utils#grep(<f-args>) | call setqflist([], 'a', {'title': ':' . g:jaandrle_utils#last_command})
|
||||
command! -nargs=+ -complete=file_in_path -bar
|
||||
\ ALTlgrep lgetexpr jaandrle_utils#grep(<f-args>) | call setloclist(0, [], 'a', {'title': ':' . g:jaandrle_utils#last_command})
|
||||
command! -nargs=0
|
||||
\ ALTargsBWQA execute 'argdo bw' | %argdelete
|
||||
|
||||
let g:quickfix_len= 0
|
||||
function! QuickFixStatus() abort
|
||||
hi! link User1 StatusLine
|
||||
if !g:quickfix_len | return 'Ø' | endif
|
||||
if g:quickfix_len>0 | return g:quickfix_len | endif
|
||||
let type= &termguicolors ? 'gui' : 'cterm'
|
||||
execute 'hi! User1 '.type.'bg='.synIDattr(synIDtrans(hlID('StatusLine')), 'bg').
|
||||
\' '.type.'fg='.synIDattr(synIDtrans(hlID('WarningMsg')), 'fg')
|
||||
return -g:quickfix_len
|
||||
endfunction
|
||||
function! s:QuickFixCmdPost() abort
|
||||
let q_len= len(getqflist())
|
||||
let g:quickfix_len= q_len ? -q_len : len(getloclist(0))
|
||||
endfunction
|
||||
augroup quickfix
|
||||
autocmd!
|
||||
autocmd QuickFixCmdPost * call <sid>QuickFixCmdPost()
|
||||
autocmd filetype qf
|
||||
\ if filter(getwininfo(), {i,v -> v.winnr == winnr()})[0].loclist
|
||||
\| nnoremap <buffer> ;q :lclose<cr>
|
||||
\| nnoremap <buffer> ;w :lgetbuffer<CR>:lclose<CR>:lopen<CR>
|
||||
\| nnoremap <buffer> ;s :ldo s///gc \| update<c-left><c-left><c-left><right><right>
|
||||
\| else
|
||||
\| nnoremap <buffer> ;q :cclose<cr>
|
||||
\| nnoremap <buffer> ;w :cgetbuffer<CR>:cclose<CR>:copen<CR>
|
||||
\| nnoremap <buffer> ;s :cdo s///gc \| update<c-left><c-left><c-left><right><right>
|
||||
\| endif
|
||||
augroup END
|
||||
"" #endregion H
|
||||
"" #region SLH – Status Line + Command Line + History (general) + Sessions + File Update, …
|
||||
set belloff=esc
|
||||
set showcmd cmdheight=2 showmode
|
||||
set wildmenu wildoptions=pum
|
||||
"" wildmode=list:longest,list:full " Tab autocomplete in command mode
|
||||
|
||||
cabbrev wbw w<bar>bw
|
||||
|
||||
set sessionoptions-=options
|
||||
command! -nargs=1
|
||||
\ CLSESSIONcreate :call mini_sessions#create(<f-args>)
|
||||
command! -nargs=0
|
||||
\ CLSESSIONconfig :call mini_sessions#sessionConfig()
|
||||
command! -nargs=1 -complete=customlist,mini_sessions#complete
|
||||
\ CLSESSIONload :call mini_sessions#load(<f-args>)
|
||||
command! -nargs=0
|
||||
\ Scd :call mini_sessions#recoverPwd()
|
||||
|
||||
if !has("gui_running")
|
||||
execute 'hi! User2 ctermbg='.synIDattr(synIDtrans(hlID('StatusLine')), 'bg').' ctermfg=grey' | endif
|
||||
set laststatus=2 " Show status line on startup
|
||||
set statusline+=··%1*≡·%{QuickFixStatus()}%*··%2*»·%{user_tips#current()}%*··%=
|
||||
set statusline+=%<%f%R\%M··▶·%{&fileformat}·%{&fileencoding?&fileencoding:&encoding}·%{&filetype}··∷·%{mini_sessions#name('–')}··
|
||||
|
||||
set history=500 " How many lines of (cmd) history has to remember
|
||||
set nobackup nowritebackup noswapfile " …there is issue #649 (for servers) and I’m using git/system backups
|
||||
set wildmenu wildmode=list:longest,list:full
|
||||
set history=500
|
||||
set nobackup nowritebackup noswapfile
|
||||
try
|
||||
set undodir=~/.vim/undodir undofile | catch | endtry
|
||||
command! CLundotree UndotreeToggle | echo 'Use also :undolist :earlier :later' | UndotreeFocus
|
||||
command! SETundoClear let old_undolevels=&undolevels | set undolevels=-1 | exe "normal a \<BS>\<Esc>" | let &undolevels=old_undolevels | unlet old_undolevels | write
|
||||
"" #endregion SLH
|
||||
"" #region LLW – Left Column + Line + Wrap + Scrolling
|
||||
if has("nvim-0.5.0") || has("patch-8.1.1564") " Recently vim can merge signcolumn and number column into one
|
||||
set signcolumn=number | else | set signcolumn=yes | endif " show always to prevent shifting when diagnosticappears
|
||||
set cursorline cursorcolumn " Always show current position
|
||||
set number foldcolumn=2 " enable line numbers and add a bit extra margin to the left
|
||||
set colorcolumn=+1 " …marker visual
|
||||
command -nargs=? SETtextwidth if <q-args> | let &textwidth=<q-args> | let &colorcolumn='<args>,120,240' | else | let &textwidth=250 | let &colorcolumn='120,240' | endif
|
||||
SETtextwidth " wraping lines and show two lines
|
||||
set nowrap " Don't wrap long lines by default
|
||||
set breakindent breakindentopt=shift:2 showbreak=↳
|
||||
|
||||
set scrolloff=5 sidescrolloff=10 " offset for lines/columns when scrolling
|
||||
"" #endregion LLW
|
||||
"" #region CN – Clipboard + Navigation throught Buffers + Windows + … (CtrlP)
|
||||
set pastetoggle=<F2> | nnoremap <F2> :set invpaste paste?<CR>
|
||||
nnoremap <silent> <leader>" :call jaandrle_utils#copyRegister()<cr>
|
||||
nmap s <nop>
|
||||
vmap s <nop>
|
||||
nmap S <nop>
|
||||
vmap S <nop>
|
||||
let mapleader= "s"
|
||||
|
||||
nmap <expr> š buffer_number("#")==-1 ? "sš<cr>" : "\<c-^>"
|
||||
nmap s3 :buffers<cr>:b<space>
|
||||
nmap sš :CtrlPBuffer<cr>
|
||||
nmap č sš
|
||||
let g:ctrlp_map = 'ě'
|
||||
command! -nargs=? SETctrlp execute 'nnoremap '.g:ctrlp_map.' :CtrlP <args><cr>'
|
||||
call scommands#map(g:ctrlp_map, 'CtrlP', "n")
|
||||
let g:ctrlp_clear_cache_on_exit = 0
|
||||
let g:ctrlp_prompt_mappings= {
|
||||
\ 'ToggleType(1)': ['<c-up>'],
|
||||
\ 'ToggleType(-1)': ['<c-down>'],
|
||||
\ 'PrtCurStart()': ['<c-b>'],
|
||||
\}
|
||||
"" #endregion CN
|
||||
"" #region FOS – File(s) + Openning + Saving
|
||||
set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime
|
||||
set modeline
|
||||
command! -nargs=?
|
||||
\ CLmodeline :call jaandrle_utils#AppendModeline(<q-args>=='basic' ? 0 : 1)
|
||||
nnoremap <leader>v :
|
||||
nnoremap <leader>a @
|
||||
nnoremap <leader>A @@
|
||||
nnoremap <leader>u U
|
||||
nnoremap U <c-r>
|
||||
nnoremap <leader>l <c-]>
|
||||
nmap <silent><leader>m :nohlsearch<bar>diffupdate<cr>
|
||||
|
||||
set path+=src/**,app/**,build/** " File matching for `:find`
|
||||
for ignore in [ '.git', '.npm', 'node_modules' ]
|
||||
exec ':set wildignore+=**'.ignore.'**'
|
||||
exec ':set wildignore+=**/'.ignore.'/**'
|
||||
endfor
|
||||
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png,*.ico
|
||||
set wildignore+=*.pdf,*.psd
|
||||
|
||||
nmap <leader>e :Vifm<cr>
|
||||
call scommands#map('e', 'Vifm', "n")
|
||||
nnoremap gx :silent exec "!xdg-open '".shellescape(substitute(expand('<cfile>'), '?', '\\?', ''), 1)."'" \| redraw!<cr>
|
||||
vnoremap gx :silent exec "!xdg-open '".shellescape(substitute(mini_enhancement#selectedText(), '?', '\\?', ''), 1)."'" \| redraw!<cr>
|
||||
"" #endregion FOS
|
||||
"" #region EN – Editor navigation + search
|
||||
set hlsearch incsearch " highlight search, start when typing
|
||||
if maparg('<C-L>', 'n') ==# ''
|
||||
nnoremap <silent> <c-l> :nohlsearch<c-r>=has('diff')?'<bar>diffupdate':''<cr><cr><c-l> | endif
|
||||
|
||||
call scommands#map('n', 'NAV', "n")
|
||||
command! NAVjumps call jaandrle_utils#gotoJumpChange('jump')
|
||||
command! NAVchanges call jaandrle_utils#gotoJumpChange('change')
|
||||
command! NAVmarks call jaandrle_utils#gotoMarks()
|
||||
|
||||
let g:markbar_persist_mark_names = v:false
|
||||
nmap <Leader>m <Plug>ToggleMarkbar
|
||||
"" #endregion EN
|
||||
"" #region EA – Editing adjustment + Syntax + White chars + Folds
|
||||
" use <c-v>§ for §
|
||||
inoremap § <esc>
|
||||
set nrformats-=octal
|
||||
command! -nargs=1 SETTOGGLEnrformats if &nf=~<q-args> | set nf-=<args> | else | set nf+=<args> | endif
|
||||
|
||||
let g:htl_css_templates=1
|
||||
let g:markdown_fenced_languages= [ 'javascript', 'js=javascript', 'json', 'html', 'php', 'bash', 'vim', 'vimscript=javascript', 'sass' ]
|
||||
augroup conceal
|
||||
autocmd!
|
||||
au FileType markdown
|
||||
\ syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained conceal
|
||||
\| syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\%(\_[^][]\|\[\_[^][]*\]\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart concealends
|
||||
au FileType markdown,json
|
||||
\ setlocal conceallevel=2
|
||||
augroup END
|
||||
augroup convenient
|
||||
autocmd FileType markdown,text setlocal keywordprg=dict
|
||||
autocmd FileType git,gitcommit setlocal foldmethod=syntax foldlevel=1
|
||||
augroup END
|
||||
" PARENTHESES plugin junegunn/rainbow_parentheses.vim
|
||||
let g:rainbow#pairs= [['(', ')'], ['[', ']'], [ '{', '}' ]]
|
||||
let g:rainbow#blacklist = [203,9]
|
||||
autocmd VimEnter * try
|
||||
\| call rainbow_parentheses#toggle() | catch | endtry
|
||||
command! SETTOGGLErainbowParentheses call rainbow_parentheses#toggle()
|
||||
" HIGHLIGHT&YANK plugins machakann/vim-highlightedyank & cwordhi.vim
|
||||
let g:highlightedyank_highlight_duration= 250
|
||||
let g:cwordhi#autoload= 1
|
||||
set showmatch " Quick highlight oppening bracket/… for currently writted
|
||||
set timeoutlen=1000 ttimeoutlen=0 " Remove timeout when hitting escape TAB
|
||||
if v:version > 703 || v:version == 703 && has("patch541")
|
||||
set formatoptions+=j | endif " Delete comment character when joining commented lines
|
||||
set smarttab
|
||||
command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args>
|
||||
SETtab 4
|
||||
set backspace=indent,eol,start " Allow cursor keys in insert mode: http://vi.stackexchange.com/a/2163
|
||||
set shiftround autoindent " round diff shifts to the base of n*shiftwidth, https://stackoverflow.com/a/18415867
|
||||
filetype plugin indent on
|
||||
" SYNTAX&COLORS
|
||||
if ($TERM =~ '256' && has("termguicolors"))
|
||||
set termguicolors | endif
|
||||
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
|
||||
syntax on | endif
|
||||
set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:· " Highlight spec. chars / Display extra whitespace
|
||||
augroup syntax_sync_min_lines
|
||||
autocmd!
|
||||
autocmd Syntax * syn sync minlines=2000
|
||||
augroup END
|
||||
let g:vim_vue_plugin_config = { 'foldexpr': 1, 'attribute': 1, 'keyword': 1 }
|
||||
" SPELL
|
||||
if !has("gui_running")
|
||||
hi clear SpellBad | hi SpellBad cterm=underline,italic | endif
|
||||
command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif
|
||||
" EDIT HEPERS
|
||||
nnoremap <leader>o o<space><bs><esc>
|
||||
nnoremap <leader>O O<space><bs><esc>
|
||||
nnoremap <s-k> a<cr><esc>
|
||||
for l in [ 'y', 'p', 'P', 'd' ] | for m in [ 'n', 'v' ]
|
||||
execute m.'noremap <leader>'.l.' "+'.l | endfor | endfor
|
||||
" ik ak (last change pseudo-text objects) – src: https://www.reddit.com/r/vim/comments/ypt6uf/comment/ivl68xu/?utm_source=share&utm_medium=web2x&context=3
|
||||
xnoremap ik `]o`[
|
||||
onoremap ik :<C-u>normal vik<cr>
|
||||
onoremap ak :<C-u>normal vikV<cr>
|
||||
" FOLDS
|
||||
|
||||
cabbrev <expr> %PWD% execute('pwd')
|
||||
cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
|
||||
cabbrev <expr> %CW% expand('<cword>')
|
||||
|
||||
set cursorline cursorcolumn
|
||||
set number "foldcolumn=2
|
||||
set colorcolumn=+1
|
||||
set breakindent breakindentopt=shift:2 showbreak=↳
|
||||
set scrolloff=5 sidescrolloff=10 " offset for lines/columns when scrolling
|
||||
set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime
|
||||
set modeline
|
||||
set hlsearch incsearch
|
||||
set smarttab
|
||||
command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args>
|
||||
SETtab 4
|
||||
set showmatch
|
||||
set backspace=indent,eol,start
|
||||
set shiftround autoindent
|
||||
filetype plugin indent on
|
||||
colorscheme codedark
|
||||
if ($TERM =~ '256' && has("termguicolors"))
|
||||
set termguicolors | endif
|
||||
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
|
||||
syntax on | endif
|
||||
set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:·
|
||||
augroup syntax_sync_min_lines
|
||||
autocmd!
|
||||
autocmd Syntax * syn sync minlines=200
|
||||
augroup END
|
||||
command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif
|
||||
|
||||
command! -nargs=0 SETFOLDregions set foldmethod=marker
|
||||
command! -nargs=1 SETFOLDindent set foldmethod=indent | let &foldlevel=<q-args> | let &foldnestmax=<q-args>+1
|
||||
command! -nargs=* SETFOLDindents set foldmethod=indent | let &foldlevel=split(<q-args>, ' ')[0] | let &foldnestmax=split(<q-args>, ' ')[1]
|
||||
set foldmarker=#region,#endregion
|
||||
" SAVE VIEW
|
||||
|
||||
set viewoptions=cursor,folds
|
||||
augroup remember__view
|
||||
autocmd!
|
||||
autocmd BufWinLeave *.* if &buflisted | mkview | endif
|
||||
autocmd BufWinEnter *.* silent! loadview
|
||||
augroup END
|
||||
"" #endregion EA
|
||||
"" #region GIT
|
||||
call scommands#map('g', 'GIT', "n,V")
|
||||
function s:gitCompletion(_, CmdLine, __)
|
||||
let l:cmd= a:CmdLine->split()
|
||||
let l:cmd_start= l:cmd[0]
|
||||
\ ->substitute('GIThub', 'gh', '')
|
||||
\ ->substitute('GIT', 'git ', '')->trim()->split(' ')
|
||||
return bash#complete((l:cmd_start+l:cmd[1:])->join())
|
||||
endfunction
|
||||
function s:gitCmd(candidate)
|
||||
execute '!clear && echo ":: git '.a:candidate->escape('"').' ::" && git '.a:candidate
|
||||
endfunction
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GIT call <sid>gitCmd(<q-args>)
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GITstatus !git status-- <args>
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GITcommit !git commit-- <args>
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GITpush !git push <args>
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GITdiff if <q-args>=='' | execute '!clear && git diff %:p' | else | silent! execute '!git diff <args>' | endif
|
||||
command! -nargs=*
|
||||
\ GITrestore execute '!clear && git status '.(<q-args>=='.' ? '%:p':'<args>').' -bs & git restore '.(<q-args>=='' ? '%:p':'<args>').' --patch'
|
||||
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||
\ GIThub execute '!clear && echo ":: gh '.<q-args>->escape('"').' ::" && gh '.<q-args>
|
||||
command! -nargs=?
|
||||
\ GIThubIssue execute '!clear && gh issue view '.expand('<cword>').' '.<q-args>
|
||||
let g:git_messenger_no_default_mappings= v:true
|
||||
let g:git_messenger_date_format= '%Y-%m-%d (%c)'
|
||||
let g:git_messenger_always_into_popup= v:true
|
||||
augroup git_messenger_help
|
||||
autocmd!
|
||||
autocmd FileType gitmessengerpopup setlocal keywordprg=git\ show
|
||||
augroup END
|
||||
command! -nargs=0
|
||||
\ GITblameThis GitMessenger
|
||||
"" #endregion GIT
|
||||
"" #region COC – COC and so on, compilers, code/commands completions
|
||||
let g:coc_global_extensions= ['coc-css', 'coc-docthis', 'coc-emmet', 'coc-emoji', 'coc-eslint', 'coc-gitmoji', 'coc-html', 'coc-json', 'coc-marketplace', 'coc-phpls', 'coc-sh', 'coc-snippets', 'coc-styled-components', 'coc-svg', 'coc-tabnine', 'coc-tsserver']
|
||||
" https://github.com/antonk52/cssmodules-language-server
|
||||
call coc#config('languageserver.cssmodules', {
|
||||
\ "command": "cssmodules-language-server",
|
||||
\ "initializationOptions": {"camelCase": "dashes"},
|
||||
\ "filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
|
||||
\ "requireRootPattern": 0,
|
||||
\ "settings": {}
|
||||
\ })
|
||||
autocmd FileType scss setl iskeyword+=@-@
|
||||
command -nargs=? ALTmake if &filetype=='javascript' | compiler jshint | elseif &filetype=='php' | compiler php | endif
|
||||
\| if <q-args>!='' | silent make <args> | else | silent make '%' | endif | checktime | silent redraw! " …prev line, hotfix (filetype detection does’t works)
|
||||
function <sid>ToggleALTmakeOnWrite()
|
||||
if exists('#ALTmake_auto#BufWritePost')
|
||||
augroup ALTmake_auto
|
||||
autocmd!
|
||||
augroup END
|
||||
else
|
||||
augroup ALTmake_auto
|
||||
autocmd!
|
||||
autocmd BufWritePost *.{php,js,mjs} execute 'ALTmake' | call <sid>QuickFixCmdPost()
|
||||
augroup END
|
||||
endif
|
||||
endfunction
|
||||
command! ALTmakeOnWrite call <sid>ToggleALTmakeOnWrite()
|
||||
function! CustomKeyWord(word)
|
||||
if(a:word=="gulp_place")
|
||||
highlight link gulp_place ErrorMsg
|
||||
syntax match gulp_place "gulp_place"
|
||||
augroup gulp_place
|
||||
autocmd!
|
||||
autocmd BufEnter *.{js,html} syntax match gulp_place "gulp_place"
|
||||
augroup END
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
set completeopt=menuone,preview,noinsert,noselect
|
||||
inoremap <silent><expr> <F1> coc#pum#visible() ? coc#pum#confirm() : coc#refresh()
|
||||
set wildcharm=<f1>
|
||||
inoremap <silent><expr> <tab> coc#pum#visible() ? coc#pum#next(1) : <sid>check_back_space() ? "\<tab>" : coc#refresh()
|
||||
inoremap <silent><expr> <s-tab> coc#pum#visible() ? coc#pum#prev(1) : "\<c-h>"
|
||||
inoremap <silent><expr> <tab> pumvisible() ? "\<c-n>" : <sid>check_back_space() ? "\<tab>" : "\<c-n>"
|
||||
inoremap <silent><expr> <s-tab> pumvisible() ? "\<c-p>" : "\<c-h>"
|
||||
function! s:check_back_space() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~# '\s'
|
||||
endfunction
|
||||
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <leader>/ :CocSearch
|
||||
nmap <leader>? <leader>/
|
||||
command! -bang NAVdiagnostic call CocActionAsync('diagnostic'.( "<bang>" == '!' ? 'Previous' : 'Next' ))
|
||||
command! NAVdefinition call CocActionAsync('jumpDefinition')
|
||||
command! NAVtype call CocActionAsync('jumpTypeDefinition')
|
||||
command! NAVimplementation call CocActionAsync('jumpImplementation')
|
||||
command! NAVreferences call CocActionAsync('jumpReferences')
|
||||
" navigate diagnostics, use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
|
||||
nnoremap <silent> gh :call <sid>show_documentation(expand("<cword>"))<cr>
|
||||
vnoremap <silent> gh :<c-u>call <sid>show_documentation(mini_enhancement#selectedText())<cr>
|
||||
nnoremap <leader>gf :let g:ctrlp_default_input=expand("<cword>") <bar> execute 'CtrlP' <bar> unlet g:ctrlp_default_input <cr>
|
||||
vnoremap <leader>gf :<c-u>let g:ctrlp_default_input=mini_enhancement#selectedText() <bar> execute 'CtrlP' <bar> unlet g:ctrlp_default_input <cr>
|
||||
""" #region COCP – Coc popups scroll (Remap <C-f> and <C-b> for scroll float windows/popups.)
|
||||
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
||||
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
||||
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
||||
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||
endif
|
||||
""" #endregion COCP
|
||||
command! -nargs=? SETFOLDcoc :call CocAction('fold', <f-args>)
|
||||
|
||||
call scommands#map('C', 'Coc', "n,v")
|
||||
nmap sc :CocList lists<cr>
|
||||
nmap Sc :CocListResume<cr>
|
||||
nnoremap <c-g> :CLwhereami<cr>
|
||||
command! CLwhereami :call popup_notification([
|
||||
\expand('%:t').( coc#status() != "" ? '/'.CocAction("getCurrentFunctionSymbol")."\t…\t".coc#status() : '' ),
|
||||
\"– – –",
|
||||
\"Line:\t".line('.').' / '.line('$'),
|
||||
\"Column:\t".col('.').' / '.col('$'),
|
||||
\"Path:\t".expand('%:p:h')
|
||||
\], #{ line: &lines-3, pos: 'botleft', moved: 'any', close: 'button', time: 3000 })
|
||||
command! CLhelpCocPlug call feedkeys(':<c-u>help <Plug>(coc ', 'tn')
|
||||
command! CLhelpCocAction call feedkeys(':<c-u>help CocAction('' ', 'tn')
|
||||
command! CLrename call CocActionAsync('rename')
|
||||
command! CLrenameFile exec 'CocCommand workspace.renameCurrentFile'
|
||||
command! -nargs=? -bang
|
||||
\ CLreplace call feedkeys(':<c-u>'.(<q-args>==''?'.':<q-args>).'s/'.("<bang>"=='!'?mini_enhancement#selectedText():expand('<cword>')).'//cgODODOD', 'tn')
|
||||
command! CLrepeatLastChange call feedkeys('/\V<C-r>"<CR>cgn<C-a><Esc>', 'tn')
|
||||
command! CLjsdoc exec 'CocCommand docthis.documentThis'
|
||||
command! CLjshintGlobal normal yiwmm?\/\* global<cr><c-l>f*hi, p`m
|
||||
command! CLcodeactionCursor call CocActionAsync('codeAction', 'cursor')
|
||||
command! CLfixCodeQuick call CocActionAsync('doQuickfix')
|
||||
|
||||
function! AIcodeFn(range, ...) range abort
|
||||
let l:instruction = 'Hi, can you help me with ' . &filetype . 'code? Thanks in advance. I would like to: '
|
||||
if a:0
|
||||
let l:instruction = l:instruction . a:1
|
||||
endif
|
||||
if a:range
|
||||
'<,'>call vim_ai#AIRun(a:range, {}, l:instruction)
|
||||
else
|
||||
call vim_ai#AIRun(a:range, {}, l:instruction)
|
||||
endif
|
||||
endfunction
|
||||
command! -range -nargs=? AIcode <line1>,<line2>call AIcodeFn(<range>, <f-args>)
|
||||
vnoremap <f1> :AI<f1>
|
||||
nnoremap <f1> :AI<f1>
|
||||
command! -nargs=?
|
||||
\ CLcheat call cheat_copilot#open(<q-args>==''?&filetype:<q-args>)
|
||||
|
||||
function! s:show_documentation(word)
|
||||
if (index(['vim', 'help'], &filetype) >= 0)
|
||||
" inspired by https://github.com/tpope/vim-scriptease/blob/74bd5bf46a63b982b100466f9fd47d2d0597fcdd/autoload/scriptease.vim#L737
|
||||
let syn= get(reverse(map(synstack(line('.'), col('.')), 'synIDattr(v:val,"name")')), 0, '')
|
||||
if syn ==# 'vimFuncName' | return <sid>show_documentation_vim('h '.a:word.'()')
|
||||
elseif syn ==# 'vimOption' | return <sid>show_documentation_vim("h '".a:word."'")
|
||||
elseif syn ==# 'vimUserAttrbKey' | return <sid>show_documentation_vim('h :command-'.a:word)
|
||||
endif
|
||||
|
||||
let col= col('.') - 1
|
||||
while col && getline('.')[col] =~# '\k' | let col-= 1 | endwhile
|
||||
let pre= col == 0 ? '' : getline('.')[0 : col]
|
||||
let col= col('.') - 1
|
||||
while col && getline('.')[col] =~# '\k' | let col+= 1 | endwhile
|
||||
if pre =~# '^\s*:\=$' | return <sid>show_documentation_vim('h :'.a:word)
|
||||
elseif pre =~# '\<v:$' | return <sid>show_documentation_vim('h v:'.a:word)
|
||||
endif
|
||||
|
||||
let post= getline('.')[col : -0]
|
||||
if a:word ==# 'v' && post =~# ':\w\+' | return <sid>show_documentation_vim('h v'.matchstr(post, ':\w\+')) | endif
|
||||
return <sid>show_documentation_vim('h '.a:word)
|
||||
endif
|
||||
if (!CocAction('hasProvider', 'hover'))
|
||||
return feedkeys('K', 'in')
|
||||
endif
|
||||
if &filetype=='html' && coc#source#custom_elements#hover(a:word)!=0
|
||||
return 0
|
||||
endif
|
||||
|
||||
return CocActionAsync('doHover')
|
||||
endfunction
|
||||
function! s:show_documentation_vim(cmd)
|
||||
call execute(a:cmd) | call histadd("cmd", a:cmd)
|
||||
endfunction
|
||||
"" #endregion COC
|
||||
let g:codeium_disable_bindings = 1
|
||||
imap <script><silent><nowait><expr> <f3><f3> codeium#Accept()
|
||||
imap <f3>n <Cmd>call codeium#CycleCompletions(1)<CR>
|
||||
imap <f3>N <Cmd>call codeium#CycleCompletions(-1)<CR>
|
||||
imap <f3>d <Cmd>call codeium#Clear()<CR>
|
||||
imap <f3>! <Cmd>call codeium#Complete()<CR>
|
||||
|
||||
" vim: set textwidth=250 :
|
||||
" vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
||||
|
@ -1,26 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Bing Image Of The Day</title>
|
||||
<style>
|
||||
body{ display: flex; flex-flow: row nowrap;
|
||||
width: 100vw; height: 100vh; overflow: hidden; margin: 0;
|
||||
}
|
||||
div{ position: relative; flex: 1; }
|
||||
img{ height: 100%; width: 100%; object-fit: contain; }
|
||||
.detail{ position: absolute; bottom: 0; left: 0; padding: .5rem 1rem;
|
||||
text-align: center; background: rgba(0, 0, 0, .35); color: whitesmoke; }
|
||||
.prev .detail{ left: initial; right: 0; }
|
||||
@media screen and (max-aspect-ratio: 16/9){
|
||||
.prev{display: none;}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="now"> <img src="now.jpg"> <div class="detail">::now::</div> </div>
|
||||
<div class="prev"> <img src="prev.jpg"> <div class="detail">::prev::</div> </div>
|
||||
</body>
|
||||
</html>
|
71
README.md
71
README.md
@ -3,7 +3,7 @@
|
||||
· [*mirrored* on GitHub](https://github.com/jaandrle/dotfiles)
|
||||
· [older version on GitHub](https://github.com/jaandrle/dotfiles-old)
|
||||
|
||||
# dotfiles **(WIP)**
|
||||
# dotfiles **(Termux variant)**
|
||||
This repository contains my dotfiles. They are managed by using `git clone --bare`,
|
||||
see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/dotfiles).
|
||||
|
||||
@ -12,20 +12,11 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
|
||||
- [Files overview](#files-overview)
|
||||
|
||||
## Files overview
|
||||
- [Bash](./.bash/README.md)
|
||||
- [Vim](./.vim/README.md)
|
||||
- [Vifm](./.config/vifm/README.md)
|
||||
- [SSH](./.ssh/README.md)
|
||||
- [Newsboat](./.newsboat/README.md)
|
||||
- Git: [.gitconfig](./.gitconfig), [gh](./.config/gh/config.yml)
|
||||
- [KDE Neon](#kde-neon)
|
||||
- [Mozilla Firefox](./.mozilla/firefox/README.md)
|
||||
- [Bin – scripts and executables](./bin/README.md)
|
||||
|
||||
## On a new machine
|
||||
1. install git
|
||||
1. `cd ~`
|
||||
1. `gd_branch=main`
|
||||
1. `gd_branch=main-termux` (see also branches `main`)
|
||||
1. `git clone --bare --branch $gd_branch --depth 1 --recurse-submodules --shallow-submodules git@jaandrle.cz:jaandrle/dotfiles.git ~/.dotfiles`
|
||||
1. `alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'`
|
||||
1. `gitdotfiles config --local status.showUntrackedFiles no`
|
||||
@ -33,61 +24,3 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
|
||||
1. `gitdotfiles reset` (`git-dotfiles reset --hard HEAD`)
|
||||
1. `gitdotfiles checkout -f`
|
||||
1. `gitdotfiles submodule update --init --recursive`
|
||||
|
||||
## KDE Neon
|
||||
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
|
||||
- Using ‘HTML Wallpaper’ (wip)
|
||||
- [Bing Image Of The Day](./Obrázky/Bing Image Of The Day/index_template.html)
|
||||
- [GNOME Keyring in KDE Plasma - JWillikers](https://www.jwillikers.com/gnome-keyring-in-kde-plasma)
|
||||
- `sudo apt install $(check-language-support)`, see [Popup Language support is incomplete](http://unix.stackexchange.com/questions/421066/ddg#421079)
|
||||
- [KDE Neon does not have an hibernation option? : kde](https://www.reddit.com/r/kde/comments/6n5m49/kde_neon_does_not_have_an_hibernation_option/dk7hd8v/)
|
||||
- [kde plasma 5 - How to use miracast as an extended desktop on Linux? - Super User](https://superuser.com/questions/1160078/how-to-use-miracast-as-an-extended-desktop-on-linux)
|
||||
- [Best tiling extensions for kwin? : kde](https://www.reddit.com/r/kde/comments/qgsv2u/best_tiling_extensions_for_kwin/?sort=new)
|
||||
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
|
||||
- [Setup git on the CLI to use 2FA with GitHub](https://gist.github.com/ateucher/4634038875263d10fb4817e5ad3d332f)
|
||||
- [G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Main](https://gmic.eu/)
|
||||
|
||||
|
||||
## PC log (cs)
|
||||
Sekce obsahuje log změn v Tuxedo laptopu s KDE Neon.
|
||||
|
||||
### KDE neon 5.26 (22.04)
|
||||
{DONE <2022-10-25 17:21> *mail* *hud* *klíčenka* agenda}$
|
||||
|
||||
- Ve směs OK
|
||||
- HUD ztratil stylování, použito breeze pro celé rofi (vygóglováno)
|
||||
- mailnag začal zapomínat heslo po příštím spuštění → nakonec: [Bubblemail - Downloads](http://bubblemail.free.fr/downloads)
|
||||
- z článku [The 10 Best Mail Notification Tools for Linux System](https://www.ubuntupit.com/best-mail-notification-tools-for-linux/)
|
||||
- zkoušen KMail – šlo by s ním žít, jen když už klient tak aby mi vyhovoval/fungoval
|
||||
- thunderbird: nemá možnost notifikací na pozadí (celý program musí běžet)
|
||||
- himalaya: má `watch`, ale detekuje jen nové (ne nově označené jako nepřečtené – asi OK), ale hl. se nedařilo zprovoznit přihlašování (kombinace s bitwarden)
|
||||
- `canonical-livepatch` nefunguje
|
||||
- Gnome klíčenka se neodemyká → přeinstalováno → uvidíme
|
||||
|
||||
### Konsolidace klíčenek správce hesel
|
||||
{DONE <2022-07-14 20:40> *cli* *hesla* agenda}$
|
||||
|
||||
- [x] cli pro KWalletManager
|
||||
1. `keyring get imap centrumCZ`
|
||||
1. `kwalletcli -f imap -e centrumCZ`
|
||||
- [x] Firefox
|
||||
- `nss-password -d ~/.mozilla/firefox/ezjfn8hg.default-release NAME`
|
||||
- [infinity0/mozilla-gnome-keyring: A firefox extension that enables Gnome Keyring integration](https://github.com/infinity0/mozilla-gnome-keyring)
|
||||
- [x] [Bitwarden CLI](https://bitwarden.com/help/cli/)
|
||||
|
||||
### Varování v python scriptech
|
||||
{DONE <2022-07-09 20:37> *python* *workaround* agenda}$
|
||||
|
||||
Postupováno podle návodu [Rename the `~/.local/lib/python3.8/site-packages/pkg_resources` folder to `pkg_resources_back`](https://askubuntu.com/a/1398073).
|
||||
|
||||
### kwin-tiling
|
||||
- https://gitlab.com/faho/kwin-tiling/
|
||||
|
||||
|
||||
<details>
|
||||
<summary>`{… cmd}$` explanation</summary>
|
||||
|
||||
This is [mdexpr](https://github.com/jaandrle/mdexpr) syntax. This document uses:
|
||||
- {use [agenda](https://github.com/jaandrle/mdexpr-agenda) with states=TODO,NEXT|DONE mdexpr}$
|
||||
|
||||
</details>
|
||||
|
@ -1,76 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
$.is_fatal= true;
|
||||
const css= echo.css`
|
||||
.code, .url{ color: lightblue; }
|
||||
.code::before, .code::after{ content: "\`"; }
|
||||
`;
|
||||
testRequirements();
|
||||
$.api()
|
||||
.version("2023-03-21")
|
||||
.describe([
|
||||
"Small utility to find out FTP url with credentials using Bitwarden CLI.",
|
||||
echo.format("The idea is to use saved login %cusername%c, %cpassword%c and %curl%c.",
|
||||
css.code, css.unset, css.code, css.unset, css.code, css.unset)
|
||||
])
|
||||
.command("get [name]", "Get url with credentials.")
|
||||
.alias("item")
|
||||
.option("--copy", echo.format("Uses %cxclip -selection clipboard%c.", css.code))
|
||||
.action(get)
|
||||
.command("list", echo.format("List all %cftp-*%c.", css.code))
|
||||
.option("--json", "Print output in JSON format.")
|
||||
.action(list)
|
||||
.parse();
|
||||
|
||||
async function get(name, { copy: is_copy= false }){
|
||||
if(!name)
|
||||
name= await $.read({
|
||||
"-p": "Name",
|
||||
completions: list({ is_internal: true }).map(o=> o.name)
|
||||
});
|
||||
const item= s.$().run`bw get item ${name}`;
|
||||
if(!item.trim())
|
||||
$.error(`No record found for ${name}.`);
|
||||
|
||||
const { uris, username, password }= item
|
||||
.xargs(JSON.parse)
|
||||
.login;
|
||||
const url= urlFromUris(uris).replace('://', `://${username}:${password}@`);
|
||||
if(!is_copy){
|
||||
echo(url);
|
||||
$.exit(0);
|
||||
}
|
||||
s.echo(url).run`xclip -selection clipboard 2>1 > /dev/null`;
|
||||
$.exit(0);
|
||||
}
|
||||
function list({ json= false, is_internal= false }){
|
||||
const list= s.$().run`bw list items --search="ftp"`
|
||||
.xargs(JSON.parse)
|
||||
.filter(o=> o.name.startsWith("ftp-"))
|
||||
.map(({ name, note, login: { uris } })=> ({ name, url: urlFromUris(uris), note }))
|
||||
.filter(o=> o.url);
|
||||
if(is_internal)
|
||||
return list;
|
||||
if(json)
|
||||
$.exit(0, echo(JSON.stringify(list)));
|
||||
|
||||
list.forEach(pipe(
|
||||
line=> echo.format(line),
|
||||
t=> t.replaceAll("\n", " ").slice(2, -2),
|
||||
echo
|
||||
));
|
||||
$.exit(0);
|
||||
}
|
||||
|
||||
function urlFromUris(uris){ return uris.find(o=> o.uri)?.uri; }
|
||||
|
||||
function testRequirements(){
|
||||
if(!s.which("bw"))
|
||||
$.error([
|
||||
echo.format("The %cbw%c utility has not been found.", css.code),
|
||||
echo.format("Please install it using %cnpm i @bitwarden/cli --location=global%c.", css.code),
|
||||
echo.format("Respectively, follow the instructions at %chttps://github.com/bitwarden/clients/tree/master/apps/cli", css.url)
|
||||
].join("\n"));
|
||||
}
|
||||
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||
// vim>60: set foldmethod=indent foldlevel=1 foldnestmax=2:
|
@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
const css= echo.css`
|
||||
.url{ color: lightblue; }
|
||||
.code { font-style: italic; }
|
||||
.code::before, .code::after { content: "\`"; }
|
||||
`;
|
||||
$.api()
|
||||
.version("2023-03-23")
|
||||
.describe([
|
||||
echo.format("This is small utility around %cchrome-remote-interface%c¹ to auto open inspect for cordova apps.", css.code),
|
||||
echo.format("[1] %chttps://github.com/cyrus-and/chrome-remote-interface", css.url)
|
||||
])
|
||||
.command("open", "This open browser and after 30secs enable auto inspect openning.", true)
|
||||
.option("--browser, -B", "Browser exec. Use one of supported browsers, such as chrome, chromium, opera, edge, …", "chromium")
|
||||
.option("--port, -P", "Chanhe debugging port", 9222)
|
||||
.action(async function({ browser, port }){
|
||||
s.runA`${browser} --remote-debugging-port=${port}`;
|
||||
const { setTimeout }= await import("node:timers/promises");
|
||||
await setTimeout(30_000);
|
||||
await register();
|
||||
$.exit(0);
|
||||
})
|
||||
.command("enable", "Enable auto inspect openning for already running browser.")
|
||||
.action(async function(){
|
||||
await register();
|
||||
$.exit(0);
|
||||
})
|
||||
.parse();
|
||||
|
||||
async function register(){
|
||||
const { default: CDP } = await import($.xdg.globalPackage`chrome-remote-interface`);
|
||||
let client;
|
||||
try{
|
||||
await CDP.New();
|
||||
client= await CDP();
|
||||
const { Network, Page, Runtime }= client;
|
||||
await Network.enable();
|
||||
await Page.enable();
|
||||
await Page.navigate({url: 'chrome://inspect/#devices'});
|
||||
await Page.loadEventFired();
|
||||
await Runtime.evaluate({ expression: `const debugCordova= (${autoRunCordovaAppInspect.toString()})();` });
|
||||
} finally {
|
||||
if(!client) return;
|
||||
return await client.close();
|
||||
}
|
||||
}
|
||||
|
||||
function autoRunCordovaAppInspect(){
|
||||
const { filter, map }= Array.prototype;
|
||||
let /* filters */
|
||||
device_filter, app_filter, last_state;
|
||||
const /* get elements */
|
||||
devicesElements= ()=> filter.call(document.getElementsByClassName("device"), el=> el.id!=="device:localhost"),
|
||||
getApp= el=> el.getElementsByClassName("browser-name")[0].textContent,
|
||||
appTest= browser_candidate_el=> getApp(browser_candidate_el).indexOf(app_filter)!==-1,
|
||||
browsersElements= wrapper_el=> wrapper_el.getElementsByClassName("browser"),
|
||||
actionElementFilter= wrapper_el=> filter.call(wrapper_el.getElementsByClassName("action"), el=> el.textContent==="inspect")[0];
|
||||
|
||||
function run(){
|
||||
const device= !device_filter ? (d=> d&&d[d.length-1])(devicesElements()) : filter.call(devicesElements(), el=> el.id===device_filter)[0];
|
||||
if(!device) return false;
|
||||
const app= !app_filter ? (a=> a&&a[a.length-1])(browsersElements(device)) : filter.call(browsersElements(document), appTest)[0];
|
||||
if(!app) return false;
|
||||
const { id }= app;
|
||||
if(last_state===id) return false;
|
||||
last_state= id;
|
||||
const action= actionElementFilter(app);
|
||||
if(!action) return false;
|
||||
action.click();
|
||||
}
|
||||
const observer= new MutationObserver(run);
|
||||
observer.observe(document.getElementById("devices-list"), { childList: true, subtree: true })
|
||||
return {
|
||||
/* Set string to filter, typically app id or ip */
|
||||
setApp: _app_filter=> app_filter= _app_filter,
|
||||
/* Apply only for given device (see debugCordova.devices). */
|
||||
setDevice: _device_filter=> device_filter= _device_filter,
|
||||
get apps(){ return map.call(browsersElements(document), getApp); },
|
||||
get devices(){ return map.call(devicesElements(), el=> el.id); }
|
||||
};
|
||||
}
|
@ -1,418 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||
const /* dependencies */
|
||||
[ fs, readline, https, { spawn } ]= [ "fs", "readline", "https", "child_process" ].map(p=> require(p));
|
||||
const /* helper for coloring console | main program params */
|
||||
colors= { e: "\x1b[38;2;252;76;76m", s: "\x1b[38;2;76;252;125m", w: "\x1b[33m", R: "\x1b[0m", y: "\x1b[38;2;200;190;90m", g: "\x1b[38;2;150;150;150m" },
|
||||
info= {
|
||||
name: __filename.slice(__filename.lastIndexOf("/")+1, __filename.lastIndexOf(".")),
|
||||
version: "1.2.1",
|
||||
description: "Helper for working with “packages” stored in GitHub releases.",
|
||||
config: `${__filename.slice(0, __filename.lastIndexOf("."))}.json`,
|
||||
folder: __filename.slice(0, __filename.lastIndexOf("/")+1),
|
||||
commands: [
|
||||
{
|
||||
cmd: "help", args: [ "--help", "-h" ],
|
||||
desc: "Shows this text"
|
||||
},
|
||||
{
|
||||
cmd: "config", args: [ "--config" ],
|
||||
desc: "Opens config file in terminal editor (defaults to vim)"
|
||||
},
|
||||
{
|
||||
cmd: "check", args: [ "--check", "-c" ],
|
||||
desc: "Shows/checks updates for registered packages"
|
||||
},
|
||||
{
|
||||
cmd: "update", args: [ "--update", "-u" ], param: "group",
|
||||
desc: "Installs lates versions of registered packages"
|
||||
},
|
||||
{
|
||||
cmd: "uninstall", args: [ "--uninstall", "-u" ], param: "package",
|
||||
desc: "Deletes downloaded file and moves package to the 'skip' group"
|
||||
},
|
||||
{
|
||||
cmd: "register", args: [ "--register", "--change" ], param: "package",
|
||||
desc: "Add package infos to internal list to be able installing/updating"
|
||||
},
|
||||
{
|
||||
cmd: "remove", args: [ "--remove" ], param: "package",
|
||||
desc: ([
|
||||
"Uninstall package if needed (see `-u`)",
|
||||
"And remove it from internal list (see `--config`)"
|
||||
]).join(". ")
|
||||
}
|
||||
],
|
||||
params: {
|
||||
group: ([
|
||||
"You can label each package to update only choosen one",
|
||||
"There are sereved options:",
|
||||
" - '' (empty): these packages are includes in all groups",
|
||||
" - 'all': in case of `--update` process all packages (except skipped)",
|
||||
" - 'skip': these packages are “uninstalled”",
|
||||
" No updates will be downloaded",
|
||||
"Group can be setted via '--register'"
|
||||
]).join(". "),
|
||||
package: ([
|
||||
"Represents package identificator, it is in fact GitHub repository path",
|
||||
"So, it schould be in the form `username/repository`"
|
||||
]).join(". ")
|
||||
}
|
||||
};
|
||||
printMain();
|
||||
const current= getCurrent(process.argv.slice(2));
|
||||
(function main_(){
|
||||
const { cmd }= current.command;
|
||||
if(!cmd) return Promise.resolve("No arguments (use `--help` for showing all oprions).");
|
||||
switch(cmd){
|
||||
case "help": return Promise.resolve(printHelp());
|
||||
case "config": return vim_(info.config);
|
||||
}
|
||||
const config= getConfig();
|
||||
switch(cmd){
|
||||
case "register": return register_(config);
|
||||
}
|
||||
if(!config.packages) return Promise.resolve("No packages yet!");
|
||||
switch(cmd){
|
||||
case "check": return check_(config);
|
||||
case "update": return update_(config);
|
||||
case "uninstall":
|
||||
case "remove":
|
||||
return uninstall_(cmd, config);
|
||||
}
|
||||
})()
|
||||
.then(function(message){
|
||||
if(message)
|
||||
log(1, `Operation '${current.command.cmd}' successfull: @s_${message}`);
|
||||
process.exit();
|
||||
})
|
||||
.catch(error);
|
||||
|
||||
async function uninstall_(cmd, config){
|
||||
const progress= [
|
||||
[ "Deleting file", "not needed" ],
|
||||
[ "Check out from updates", "yes" ],
|
||||
[ "Remove from packages list", "no" ]
|
||||
];
|
||||
const pkg_name= current.param;
|
||||
const pkg_index= config.packages.findIndex(({ repository })=> repository===pkg_name);
|
||||
if(pkg_index===-1) return "nothing to do (maybe typo)";
|
||||
|
||||
const pkg= config.packages[pkg_index];
|
||||
const { downloads }= pkg;
|
||||
if(downloads&&fs.existsSync(downloads)){
|
||||
try{ fs.unlinkSync(downloads); progress[0][1]= "done"; }
|
||||
catch (_){ progress[0][1]= colors.e+"error, try manually – "+downloads; }
|
||||
}
|
||||
Reflect.deleteProperty(pkg, "last_update");
|
||||
Reflect.set(pkg, "group", "skip");
|
||||
progress[1][1]= "done";
|
||||
if(cmd!=="remove") return gotoEnd();
|
||||
|
||||
const y= await promt_(`Are you realy want to remove package ${pkg.repository} (yes/no)`, "no");
|
||||
if(y!=="yes") return gotoEnd();
|
||||
|
||||
config.packages.splice(pkg_index, 1);
|
||||
progress[2][1]= "done";
|
||||
return gotoEnd();
|
||||
|
||||
function gotoEnd(){
|
||||
const o= progress.reduce((o, [ k, v ])=> Reflect.set(o, k, v)&&o, {});
|
||||
logSection(" ", pkg_name, o);
|
||||
save(config);
|
||||
}
|
||||
}
|
||||
function vim_(file){ return new Promise(function(resolve, reject){
|
||||
const cmd= spawn((process.env.EDITOR||"vim")+(process.platform==="win32"?".bat":""), [ file ], { stdio: 'inherit' });
|
||||
cmd.on('exit', e=> e ? reject("Editor error, try manually: "+file) : resolve("OK"));
|
||||
});}
|
||||
async function update_(config){
|
||||
const filter= current.param;
|
||||
const is_all= filter==="all";
|
||||
let updates= [];
|
||||
log(1, "Collecting packages to download:");
|
||||
for(const [
|
||||
i, { repository, last_update, group, file_name, exec, downloaded, tag_name_regex }
|
||||
] of Object.entries(config.packages)){
|
||||
if(group==="skip") continue;
|
||||
if(!is_all&&group&&filter!==group) continue;
|
||||
|
||||
const { tag_name, published_at, html_url, assets_url }= await githubRelease_(repository, tag_name_regex);
|
||||
const status= packageStatus(last_update, published_at);
|
||||
if(status!==3) continue;
|
||||
|
||||
const assets= await downloadJSON_(repository, assets_url);
|
||||
if(!assets.length){
|
||||
console.log(" Nothing to download: Visit "+html_url);
|
||||
continue;
|
||||
}
|
||||
|
||||
const options= assets.map(({ name, download_count, size })=>
|
||||
`${name} | size: ${Math.round(size/1048576)}MB | downloads: ${download_count}`);
|
||||
logSection(" ", " "+repository, {
|
||||
"Version": tag_name,
|
||||
"Url": html_url
|
||||
});
|
||||
logSection(" ", " Available assets:", options);
|
||||
const choose= await promt_(" Choose (empty for skip)", "");
|
||||
if(choose==="") continue;
|
||||
|
||||
const { browser_download_url: url, name: remote_name, size }= assets[choose];
|
||||
updates.push({
|
||||
index: i,
|
||||
file_name, exec, downloaded,
|
||||
repository, version: tag_name, last_update: published_at,
|
||||
url, remote_name, size
|
||||
});
|
||||
}
|
||||
if(!updates.length){
|
||||
log(2, "No packages in "+`group ${filter} needs updates.`);
|
||||
return Promise.resolve("nothing to update");
|
||||
}
|
||||
log(1, "Downloading:");
|
||||
return applySequentially_(updates, async function(todo){
|
||||
const to= todo.file_name ? info.folder+todo.file_name : (
|
||||
todo.downloaded ? todo.downloaded : info.folder+todo.remote_name);
|
||||
const d= await downloadFile_(to, todo);
|
||||
return Object.assign(todo, d);
|
||||
})
|
||||
.then(function(dones){
|
||||
log(1, "Finalizing:");
|
||||
let e= 0;
|
||||
for(const nth of dones){
|
||||
if(!nth.success){
|
||||
e+= 1;
|
||||
log(2, `${nth.repository}: @e_${nth.message}`);
|
||||
continue;
|
||||
}
|
||||
Object.assign(config.packages[nth.index], registerDownloads(nth));
|
||||
}
|
||||
save(config);
|
||||
const { length }= dones;
|
||||
const msg= `updated ${length-e} of ${length} packages.`;
|
||||
return e ? Promise.reject(msg) : Promise.resolve(msg);
|
||||
});
|
||||
}
|
||||
function registerDownloads({ repository, last_update, message: downloads, exec, version }){
|
||||
let msg= colors.s+"OK";
|
||||
if(exec==="yes"){
|
||||
try{ fs.chmodSync(downloads, 0o755); }
|
||||
catch(e){ msg= colors.e+"try manual `chmod+x` for '"+downloads+"'"; }
|
||||
}
|
||||
log(2, `${repository}: ${msg}`);
|
||||
return { last_update, downloads, version };
|
||||
}
|
||||
async function check_({ packages }){
|
||||
let updates= 0, skipped= 0;
|
||||
for(const { repository, name, version, last_update, group, tag_name_regex } of packages){
|
||||
const { tag_name, published_at }= await githubRelease_(repository, tag_name_regex);
|
||||
const status= packageStatus(last_update, published_at);
|
||||
updates+= status===3;
|
||||
const skip= group==="skip";
|
||||
skipped+= skip;
|
||||
log(2, `@g_${repository} [${group}]: `+( !version ? "not installed" : packageStatusText(status, skip) ));
|
||||
}
|
||||
const u= updates-skipped;
|
||||
const s= skipped ? ` (inc. skipped: ${updates})` : "";
|
||||
return (!u ? "" : colors.w)+u+" update(s) available"+s;
|
||||
}
|
||||
async function register_(config){
|
||||
const { param: repository }= current;
|
||||
if(!Reflect.has(config, "packages")) Reflect.set(config, "packages", []);
|
||||
const packages= Reflect.get(config, "packages");
|
||||
let local_id= packages.findIndex(p=> p.repository===repository);
|
||||
if(local_id===-1)
|
||||
local_id= packages.push({ repository })-1;
|
||||
const local= config.packages[local_id];
|
||||
const remote= await githubRepo_(repository) || {};
|
||||
|
||||
log(1, "Registering: "+repository);
|
||||
const spaces= " ";
|
||||
local.name= await promt_(spaces+"Name", local.name || remote.name || "");
|
||||
if(!local.description) local.description= remote.description;
|
||||
logLines(2, [
|
||||
"@g_Group info:",
|
||||
"- you can update specific packages by using their group name",
|
||||
"- There some reserved options:",
|
||||
" - '' (empty): will be included in all groups",
|
||||
" - 'skip': will be always skipped"
|
||||
]);
|
||||
local.group= await promt_(spaces+"Group", local.group || "");
|
||||
local.file_name= await promt_(spaces+"File Name", local.file_name || local.name.toLowerCase().replace(/\s/g, "-") || "");
|
||||
local.exec= await promt_(spaces+"Make executable (yes/no)", local.exec || "no");
|
||||
save(config);
|
||||
return `${repository}: saved`;
|
||||
}
|
||||
function packageStatusText(status, skip){
|
||||
const s= skip ? colors.R+"skipped – "+colors.g : "";
|
||||
switch(status){
|
||||
case 0: return s+"nothing to compare";
|
||||
case 1: return s+"@s_up-to-date";
|
||||
case 2: return s+"newer";
|
||||
case 3: return s+"@e_outdated/not instaled";
|
||||
}
|
||||
}
|
||||
function packageStatus(local, remote){
|
||||
if(!remote) return 0;
|
||||
if(!local) return 3;
|
||||
if(remote===local) return 1;
|
||||
return 2+(local<remote);
|
||||
}
|
||||
function logSection(spaces, name, data){
|
||||
console.log(spaces+name);
|
||||
for(const [ key, value ] of Object.entries(data))
|
||||
console.log(spaces.repeat(2)+colors.g+key+": "+value.replace(/@(\w)_/g, (_, m)=> colors[m])+colors.R);
|
||||
}
|
||||
function githubRelease_(repository, tag_name_regex= ""){
|
||||
return downloadJSON_(repository, "https://api.github.com/repos/"+repository+"/releases")
|
||||
.then(data=> data.find(function find({ draft, published_at, tag_name }){
|
||||
if(draft||!published_at) return false;
|
||||
if(!tag_name_regex) return true;
|
||||
return (new RegExp(tag_name_regex, 'g')).test(tag_name);
|
||||
})||{});
|
||||
}
|
||||
function githubRepo_(repository){ return downloadJSON_(repository, "https://api.github.com/repos/"+repository); }
|
||||
function promt_(q, def){
|
||||
const rl= readline.createInterface({ input: process.stdin, output: process.stdout });
|
||||
return new Promise(function(resolve){
|
||||
rl.question(q+": ", a=> { rl.close(); resolve(a); });
|
||||
rl.write(def);
|
||||
});
|
||||
}
|
||||
function getConfig(){
|
||||
let config;
|
||||
try{ config= JSON.parse(fs.readFileSync(info.config)); }
|
||||
catch(e){ config= {}; log(1, "@w_Missing or corrupted config file. Creates empty one."); }
|
||||
return config;
|
||||
}
|
||||
function save(config){
|
||||
return fs.writeFileSync(info.config, JSON.stringify(config, null, " "));
|
||||
}
|
||||
function getCurrent(args){
|
||||
let command, command_arg, param;
|
||||
const hasArg= arg=> ({ args })=> args.includes(arg);
|
||||
for(let i=0, { length }= args, arg; i<length; i++){
|
||||
arg= args[i];
|
||||
if(!command){
|
||||
command= info.commands.find(hasArg(arg));
|
||||
command_arg= arg;
|
||||
continue;
|
||||
}
|
||||
if(!command.param||typeof param!=="undefined")
|
||||
break;
|
||||
param= arg;
|
||||
}
|
||||
if(!command)
|
||||
command= { cmd: "" };
|
||||
if(command.param&&typeof param==="undefined")
|
||||
return error(`Missign arguments for '${command_arg}'.`);
|
||||
return { command, param };
|
||||
}
|
||||
function downloadJSON_(repository, url){
|
||||
return downloadText_(url)
|
||||
.then(function(data){
|
||||
try{
|
||||
const response= JSON.parse(data);
|
||||
if(Reflect.has(response, "message")) throw new Error(response.message);
|
||||
return Promise.resolve(JSON.parse(data));
|
||||
} catch(e){
|
||||
log(1, "Received data: "+data);
|
||||
log(1, "@e_"+e);
|
||||
return Promise.reject(`JSON from '${repository}' failed.`);
|
||||
}
|
||||
});
|
||||
}
|
||||
function downloadText_(url){
|
||||
return get_(url)
|
||||
.then(function(response){ return new Promise(function(resolve){
|
||||
let data= "";
|
||||
response.on("data", chunk=> data+= chunk);
|
||||
response.on("end", ()=> resolve(data));
|
||||
}); });
|
||||
}
|
||||
function downloadFile_(to, { url, repository, size }){
|
||||
const file= fs.createWriteStream(to);
|
||||
return get_(url)
|
||||
.then(r=> get_(r.headers.location))
|
||||
.then(function(response){ return new Promise(function(resolve){
|
||||
let progress= 0, pc_prev= 0, avg= 0;
|
||||
const start= new Date();
|
||||
const i= setInterval(function(){
|
||||
readline.clearLine(process.stdout);
|
||||
const pc= (100*progress/size).toFixed(2);
|
||||
if(!pc_prev) pc_prev= pc;
|
||||
else {
|
||||
avg= ((100-pc)/(60*(pc-pc_prev))).toFixed(2);
|
||||
pc_prev= 0;
|
||||
}
|
||||
const running= ((new Date()-start)/60000).toFixed(2);
|
||||
log(2, repository+": "+pc+"%"+` (end in ~${avg} mins, running ${running} mins)`);
|
||||
readline.moveCursor(process.stdout, 0, -1);
|
||||
}, 500);
|
||||
response.on('data', function(chunk){
|
||||
file.write(chunk);
|
||||
progress+= chunk.length;
|
||||
});
|
||||
response.on('end', function(){
|
||||
clearInterval(i);
|
||||
readline.clearLine(process.stdout);
|
||||
log(2, repository+": @s_OK");
|
||||
file.close(()=> resolve({ success: 1, message: to })); /* close() is async, call cb after close completes. */
|
||||
});
|
||||
}); })
|
||||
.catch(({ message })=> {
|
||||
fs.unlink(to); // Delete the file async. (But we don't check the result)
|
||||
return { success: 0, message };
|
||||
});
|
||||
}
|
||||
function get_(url){ return new Promise(function(resolve, reject){
|
||||
https.get(
|
||||
url,
|
||||
{ headers: { 'Cache-Control': 'no-cache', 'User-Agent': 'node' } },
|
||||
resolve
|
||||
).on("error", reject);
|
||||
});}
|
||||
function applySequentially_(input, pF){
|
||||
const data= [];
|
||||
let p= pF(input[0]);
|
||||
const tie= nth=> result_mth=> ( data.push(result_mth), pF(input[nth]) );
|
||||
for(let i= 1, { length }= input; i<length; i++)
|
||||
p= p.then(tie(i));
|
||||
return p.then(o=> (data.push(o), data));
|
||||
}
|
||||
function error(message){
|
||||
const help_text= `@w_See help using '${info.commands[0].args[0]}'.`;
|
||||
log(1, `@e_Error: ${message} ${help_text}`);
|
||||
return process.exit(1);
|
||||
}
|
||||
function printMain(){
|
||||
const { name, version, description }= info;
|
||||
log(1, `@w_${name}@${version}`);
|
||||
log(1, description);
|
||||
const cmds= info.commands.map(({args})=> args[0].replace("--", "")).join(", ");
|
||||
log(1, `@w_Usage: ${name} --[cmd] [param]`);
|
||||
log(2, `…cmd: ${cmds}`);
|
||||
log(2, "…param: Based on cmd\n");
|
||||
}
|
||||
function printHelp(){
|
||||
log(1, "@s_Help:");
|
||||
log(2, "Commands:");
|
||||
info.commands.forEach(({ args, param, desc })=> {
|
||||
const args_text= args.join("|");
|
||||
param= param ? " "+param : "";
|
||||
log(3, `@g_${args_text}@R_${param}`);
|
||||
logLines(4, desc);
|
||||
});
|
||||
log(2, "Params:");
|
||||
for(const [ param, desc ] of Object.entries(info.params)){
|
||||
log(3, `@g_${param}`);
|
||||
logLines(4, desc);
|
||||
}
|
||||
}
|
||||
function log(tab, text){
|
||||
return console.log(" ".repeat(tab)+text.replace(/@(\w)_/g, (_, m)=> colors[m])+colors.R);
|
||||
}
|
||||
function logLines(tab, multiline_text){
|
||||
if(!Array.isArray(multiline_text)) multiline_text= multiline_text.split(/(?<=\.) /g);
|
||||
return log(tab, multiline_text.join("\n"+" ".repeat(tab)));
|
||||
}
|
@ -1,216 +0,0 @@
|
||||
{
|
||||
"packages": [
|
||||
{
|
||||
"repository": "shiftkey/desktop",
|
||||
"name": "GitHub Desktop",
|
||||
"group": "dev",
|
||||
"file_name": "github-desktop",
|
||||
"exec": "yes",
|
||||
"description": "Fork of GitHub Desktop to support various Linux distributions",
|
||||
"last_update": "2023-12-20T15:25:06Z",
|
||||
"downloads": "/home/jaandrle/bin/github-desktop",
|
||||
"version": "release-3.3.6-linux3"
|
||||
},
|
||||
{
|
||||
"repository": "jaandrle/jaaCSS-cli",
|
||||
"name": "jaaCSS",
|
||||
"description": "EXPERIMENT – Helper for managing functional CSS classes",
|
||||
"group": "dev",
|
||||
"file_name": "jaaCSS.js",
|
||||
"exec": "yes",
|
||||
"downloads": "/home/jaandrle/bin/jaaCSS.js",
|
||||
"version": "v1.3.2",
|
||||
"last_update": "2022-09-02T13:33:16Z"
|
||||
},
|
||||
{
|
||||
"repository": "th-ch/youtube-music",
|
||||
"name": "youtube-music",
|
||||
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
|
||||
"group": "nondev",
|
||||
"file_name": "youtube-music",
|
||||
"exec": "yes",
|
||||
"last_update": "2024-01-05T14:44:27Z",
|
||||
"downloads": "/home/jaandrle/bin/youtube-music",
|
||||
"version": "v3.2.2"
|
||||
},
|
||||
{
|
||||
"repository": "ArchGPT/insomnium",
|
||||
"name": "insomnium",
|
||||
"description": "Insomnium is a fast local API testing tool that is privacy-focused and 100% local. For testing GraphQL, REST, WebSockets and gRPC. This is a fork of Kong/insomnia",
|
||||
"group": "dev",
|
||||
"file_name": "insomnium",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-11-13T10:03:28Z",
|
||||
"downloads": "/home/jaandrle/bin/insomnium",
|
||||
"tag_name_regex": "core@.*",
|
||||
"version": "core@0.2.3-a"
|
||||
},
|
||||
{
|
||||
"repository": "Kong/insomnia",
|
||||
"name": "insomnia",
|
||||
"description": "The open-source, cross-platform API client for GraphQL, REST, and gRPC.",
|
||||
"group": "skip",
|
||||
"file_name": "insomnia",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-10-16T10:03:28Z",
|
||||
"downloads": "/home/jaandrle/bin/insomnia",
|
||||
"tag_name_regex": "core@.*",
|
||||
"version": "core@8.3.0"
|
||||
},
|
||||
{
|
||||
"repository": "rvpanoz/luna",
|
||||
"name": "luna",
|
||||
"description": "Manage npm dependencies through a modern UI.",
|
||||
"group": "skip",
|
||||
"file_name": "luna",
|
||||
"exec": "yes"
|
||||
},
|
||||
{
|
||||
"repository": "angela-d/wifi-channel-watcher",
|
||||
"name": "wifi-channel-watcher",
|
||||
"group": "skip",
|
||||
"file_name": "wifi-channel-watcher",
|
||||
"exec": "no",
|
||||
"description": "Monitor channel usage of neighboring routers & get an alert if your active channel is not optimal.\tTroubleshoot wifi without lifting a finger!"
|
||||
},
|
||||
{
|
||||
"repository": "vinceliuice/Tela-circle-icon-theme",
|
||||
"name": "Tela-circle-icon-theme",
|
||||
"description": "Tela-circle-icon-theme",
|
||||
"group": "themes",
|
||||
"file_name": "tela-circle-icon-theme.zip",
|
||||
"last_update": "2021-07-19T14:12:05Z",
|
||||
"exec": "no"
|
||||
},
|
||||
{
|
||||
"repository": "AppImage/AppImageKit",
|
||||
"name": "AppImageKit",
|
||||
"group": "skip",
|
||||
"file_name": "appimagekit",
|
||||
"exec": "yes",
|
||||
"description": "Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.freenode.net"
|
||||
},
|
||||
{
|
||||
"repository": "dynobo/normcap",
|
||||
"name": "NormCap",
|
||||
"description": "OCR powered screen-capture tool to capture information instead of images",
|
||||
"group": "nondev",
|
||||
"file_name": "normcap",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-12-12T22:23:37Z",
|
||||
"downloads": "/home/jaandrle/bin/normcap",
|
||||
"version": "v0.5.2"
|
||||
},
|
||||
{
|
||||
"repository": "upscayl/upscayl",
|
||||
"name": "upscayl",
|
||||
"description": "🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.",
|
||||
"group": "nondev",
|
||||
"file_name": "upscayl",
|
||||
"exec": "yes",
|
||||
"last_update": "2024-01-16T09:54:25Z",
|
||||
"downloads": "/home/jaandrle/bin/upscayl",
|
||||
"version": "v2.9.8"
|
||||
},
|
||||
{
|
||||
"repository": "RasmusLindroth/tut",
|
||||
"name": "tut",
|
||||
"description": "TUI for Mastodon with vim inspired keys",
|
||||
"group": "nondev",
|
||||
"file_name": "tut",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-01-26T17:48:00Z",
|
||||
"downloads": "/home/jaandrle/bin/tut",
|
||||
"version": "2.0.1"
|
||||
},
|
||||
{
|
||||
"repository": "sunner/ChatALL",
|
||||
"name": "ChatALL",
|
||||
"description": " Concurrently chat with ChatGPT, Bing Chat, bard, Alpaca, Vincuna, Claude, ChatGLM, MOSS, iFlytek Spark, ERNIE and more, discover the best answers",
|
||||
"group": "skip",
|
||||
"file_name": "chatall",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-09-30T14:08:00Z",
|
||||
"downloads": "/home/jaandrle/bin/chatall",
|
||||
"version": "v1.50.73"
|
||||
},
|
||||
{
|
||||
"repository": "jaandrle/bs",
|
||||
"name": "bs",
|
||||
"description": "The simplest possible build system using executables",
|
||||
"group": "dev",
|
||||
"file_name": "bs",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-06-30T07:48:58Z",
|
||||
"downloads": "/home/jaandrle/bin/bs",
|
||||
"version": "v0.7.3"
|
||||
},
|
||||
{
|
||||
"repository": "h3poteto/fedistar",
|
||||
"name": "Fedistar",
|
||||
"description": "Multi-column Mastodon, Pleroma, and Friendica client for desktop",
|
||||
"group": "nondev",
|
||||
"file_name": "fedistar",
|
||||
"exec": "yes",
|
||||
"last_update": "2024-01-29T10:29:58Z",
|
||||
"downloads": "/home/jaandrle/bin/fedistar",
|
||||
"version": "v1.8.3"
|
||||
},
|
||||
{
|
||||
"repository": "ollama/ollama",
|
||||
"name": "ollama",
|
||||
"description": "Get up and running with Llama 2 and other large language models locally",
|
||||
"group": "ai",
|
||||
"file_name": "ollama",
|
||||
"exec": "yes",
|
||||
"last_update": "2024-01-26T18:19:36Z",
|
||||
"downloads": "/home/jaandrle/bin/ollama",
|
||||
"version": "v0.1.22"
|
||||
},
|
||||
{
|
||||
"repository": "neovim/neovim",
|
||||
"name": "neovim",
|
||||
"tag_name_regex": "v.*",
|
||||
"description": "Vim-fork focused on extensibility and usability",
|
||||
"group": "dev-test",
|
||||
"file_name": "nvim",
|
||||
"exec": "yes",
|
||||
"downloads": "/home/jaandrle/bin/nvim",
|
||||
"version": "v0.9.5",
|
||||
"last_update": "2023-12-30T13:31:47Z"
|
||||
},
|
||||
{
|
||||
"repository": "viarotel-org/escrcpy",
|
||||
"name": "Escrcpy",
|
||||
"description": "📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。",
|
||||
"group": "dev",
|
||||
"file_name": "escrcpy",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-12-27T01:18:21Z",
|
||||
"downloads": "/home/jaandrle/bin/escrcpy",
|
||||
"version": "v1.16.8"
|
||||
},
|
||||
{
|
||||
"repository": "drovp/drovp",
|
||||
"name": "drovp",
|
||||
"description": "Desktop app for encoding, converting, upscaling, and much more.",
|
||||
"group": "dev-test",
|
||||
"file_name": "drovp",
|
||||
"exec": "yes",
|
||||
"last_update": "2023-12-06T11:30:02Z",
|
||||
"downloads": "/home/jaandrle/bin/drovp",
|
||||
"version": "0.8.0"
|
||||
},
|
||||
{
|
||||
"repository": "janhq/jan",
|
||||
"name": "Jan",
|
||||
"description": "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer",
|
||||
"group": "ai",
|
||||
"file_name": "jan",
|
||||
"exec": "yes",
|
||||
"last_update": "2024-01-29T05:19:22Z",
|
||||
"downloads": "/home/jaandrle/bin/jan",
|
||||
"version": "v0.4.5"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
const url_api= "https://nocodb.jaandrle.cz/api/v1/db/data/v1/Linky/Linky";
|
||||
$.api()
|
||||
.command("add-md")
|
||||
.action(async function addMd(){
|
||||
const { clipboard }= $;
|
||||
const [ title, url ]= clipboard.split("](");
|
||||
|
||||
const res= await fetch(url_api, {
|
||||
body: JSON.stringify({ Popis: title.slice(1), Url: url.slice(0, -1) }),
|
||||
headers: { "xc-token": "Js7Qu0oT_wTmGJDFKlIZEBhwk87WF0L1wLmQO01F",
|
||||
"accept": "application/json", "Content-Type": "application/json"
|
||||
},
|
||||
method: "post"
|
||||
}).then(res=>res.json());
|
||||
echo(res);
|
||||
})
|
||||
.parse();
|
@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [[ $(mount | grep OneDrive) ]]; then
|
||||
fusermount -uz ~/Vzdálené/OneDrive
|
||||
notify-send -i system-file-manager "OneDrive disk ODPOJEN"
|
||||
else
|
||||
rclone --vfs-cache-mode full mount "onedrive": ~/Vzdálené/OneDrive &
|
||||
dolphin ~/Vzdálené/OneDrive/ &
|
||||
notify-send -i system-file-manager "OneDrive disk PŘIPOJEN"
|
||||
fi
|
@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
const p_home= $.xdg.home`Applications/piper/`
|
||||
const p_models= p_home+"models/"
|
||||
|
||||
$.api("", true)
|
||||
.version("2023-05-31")
|
||||
.describe([
|
||||
"This is a wrapper around the piper CLI.",
|
||||
"It allows you to get the list of available models, or to simplify `piper` callings.",
|
||||
"",
|
||||
"Visit: https://github.com/rhasspy/piper",
|
||||
"Original help:",
|
||||
...s.$().run`${p_home}piper --help`.stderr.split("\n").filter(Boolean).map(l=> "\t"+l)
|
||||
])
|
||||
.option("--models", "prints available models")
|
||||
.option("--model, -m", "chooses voice model by it's index or by text search (full name)")
|
||||
.option("--input_file, -I", "path to input text file (defaults to stdin)")
|
||||
.action(function main({
|
||||
models: is_models,
|
||||
model= 0,
|
||||
input_file,
|
||||
_,
|
||||
...pass
|
||||
}){
|
||||
if(is_models){
|
||||
models()
|
||||
.forEach(l=> echo(l));
|
||||
echo(helpTextModels("…for more models"))
|
||||
$.exit(0);
|
||||
}
|
||||
model= getModel(model);
|
||||
pass= Object.entries(pass)
|
||||
.map(([ name, value ])=> `${name.length > 1 ? "--" : "-"}${name} '${value}'`)
|
||||
.join(" ");
|
||||
const o= s.run(`echo ${text(input_file)} | ${p_home}piper --model ${model} ${pass}`);
|
||||
$.exit(o.code);
|
||||
})
|
||||
.parse();
|
||||
|
||||
function text(input_file){
|
||||
const candidate= input_file ? s.cat(input_file).stdout : $.stdin.text();
|
||||
if(typeof candidate!=="string")
|
||||
$.error("Missing input text file or piped text. Use `--help` for more information.");
|
||||
return "'"+candidate.trim().replaceAll("\n", "\t — \t").replaceAll("'", "\"")+"'";
|
||||
}
|
||||
function getModel(identifier){
|
||||
const candidate= typeof identifier==="number" ?
|
||||
models()[identifier] :
|
||||
models().find(l=> l.includes(identifier));
|
||||
if(!candidate)
|
||||
$.error([
|
||||
`Model identifier '${identifier}' seems not to matching any existing model.`,
|
||||
"Try `--models` to see all available models."
|
||||
].join("\n"));
|
||||
return candidate.slice(candidate.indexOf(" ")+1);
|
||||
}
|
||||
function models(){
|
||||
const out= s.ls(`${p_models}*.onnx`)
|
||||
.map((l, n)=> `${n}: ${l}`);
|
||||
if(!out.length)
|
||||
$.error(helpTextModels("No available models."));
|
||||
return out;
|
||||
}
|
||||
function helpTextModels(...text_initial){
|
||||
return [
|
||||
...text_initial,
|
||||
"Visits https://github.com/rhasspy/piper",
|
||||
"and download/extract model(s) into "+p_models
|
||||
].join("\n");
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
[ ! -r ~/.config/pocketshaddrc ] && echo "\`~/.config/pocketshaddrc\` not found" && exit 1
|
||||
. ~/.config/pocketshaddrc
|
||||
|
||||
curl -sS -X POST \
|
||||
-F "url=$1" \
|
||||
-F "title=$2" \
|
||||
-F "consumer_key=$CONSUMER_KEY" \
|
||||
-F "access_token=$ACCESS_TOKEN" \
|
||||
https://getpocket.com/v3/add \
|
||||
> /dev/null
|
@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
|
||||
$.api("")
|
||||
.version("2023-08-11")
|
||||
.command("textInImage [file]", "Generovat obrázek s textem pro sdílení na sociálních sítích.")
|
||||
.alias("tii")
|
||||
.option("--pointsize", "Text size", "62")
|
||||
.option("--gravity", "`convert -list gravity`", "Center")
|
||||
.option("--text", "Text")
|
||||
.action(textInImage)
|
||||
.command("textSplit <file>", "Rozdělit text dle zadaného limitu.")
|
||||
.alias("ts")
|
||||
.option("--limit", "Počet znaků kde text rozdělovat.", 500)
|
||||
.option("--counter", "Prepend counter, set no. of chars of counter.", 5)
|
||||
.option("--text", "Text")
|
||||
.action(textSplit)
|
||||
.parse();
|
||||
|
||||
function textSplit(file, { limit, counter, text }){
|
||||
limit= parseInt(limit) - parseInt(counter);
|
||||
const words= getText(file, text).split(" ");
|
||||
let buffer= [], i= -1, chars= limit;
|
||||
for(const word of words){
|
||||
const { length }= word;
|
||||
if((chars+length) < limit){
|
||||
chars+= ( is_empty ? 0 : 1 ) + length;
|
||||
buffer[i].end= i;
|
||||
continue;
|
||||
}
|
||||
chars= 0;
|
||||
i+= 1;
|
||||
buffer[i]= { start: i };
|
||||
}
|
||||
const { length }= buffer;
|
||||
echo(buffer.map(function({ start, end }, i){
|
||||
return (i+1)+"/"+length+" "+words.slice(start, end).join(" ");
|
||||
}).join("\n============\n"));
|
||||
$.exit(0);
|
||||
}
|
||||
function textInImage(file, { text, gravity, pointsize }){
|
||||
text= getText(file, text);
|
||||
const output= !file ? "textInImage.png" : (({ pathname: p })=> p.slice(1, p.lastIndexOf(".")+1)+"png")(new URL(file, "file://"));
|
||||
const round_corners= [ //https://9to5answer.com/rounding-corners-of-pictures-with-imagemagick
|
||||
"\\(",
|
||||
"+clone -alpha extract",
|
||||
"-draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0'",
|
||||
"\\( +clone -flip \\) -compose Multiply -composite",
|
||||
"\\( +clone -flop \\) -compose Multiply -composite",
|
||||
"\\) -alpha off -compose CopyOpacity -composite",
|
||||
].join(" ");
|
||||
s.run([
|
||||
"convert",
|
||||
"\\(",
|
||||
"-size ::size::",
|
||||
"-pointsize ::pointsize::",
|
||||
"-fill ::fill:: -background ::background::",
|
||||
"-gravity ::gravity::",
|
||||
"-family ::family:: -weight Bold",
|
||||
"-bordercolor ::background:: -border 5%",
|
||||
"caption:::text::",
|
||||
"\\)",
|
||||
round_corners,
|
||||
"::output::"
|
||||
].join(" "), {
|
||||
fill: "whitesmoke",
|
||||
background: "#2b2b2b",
|
||||
size: "1024x512",
|
||||
family: "Ubuntu Mono",
|
||||
output, text, gravity, pointsize
|
||||
});
|
||||
$.exit(0);
|
||||
}
|
||||
function getText(file, text){
|
||||
if(file && s.test("-f", file))
|
||||
return s.cat(file).toString();
|
||||
if(!text)
|
||||
return $.stdin.text().trim();
|
||||
return text;
|
||||
}
|
@ -1,166 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
$.is_fatal= true;
|
||||
const token_file= "~/.config/openai.token";
|
||||
let token;
|
||||
const gitmoji_list= {
|
||||
build: "building_construction",
|
||||
chore: "bricks",
|
||||
ci: "construction_worker",
|
||||
docs: "memo",
|
||||
feat: "sparkles",
|
||||
fix: "bug",
|
||||
perf: "zap",
|
||||
refactor: "recycle",
|
||||
revert: "rewind",
|
||||
style: "art",
|
||||
test: "white_check_mark"
|
||||
};
|
||||
const git3moji_list= {
|
||||
build: "tv",
|
||||
chore: "tv",
|
||||
ci: "tv",
|
||||
docs: "abc",
|
||||
feat: "zap",
|
||||
fix: "bug",
|
||||
perf: "zap",
|
||||
refactor: "cop",
|
||||
style: "zap",
|
||||
test: "cop"
|
||||
};
|
||||
const conventional_desc= [
|
||||
"Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)",
|
||||
"Other changes that don't modify src or test files",
|
||||
"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)",
|
||||
"Documentation only changes",
|
||||
"A new feature",
|
||||
"A bug Fix",
|
||||
"A code change that improves performance",
|
||||
"A code change that neither fixes a bug nor adds a feature",
|
||||
"Reverts a previous commit",
|
||||
"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)",
|
||||
"Adding missing tests or correcting existing tests"
|
||||
];
|
||||
|
||||
$.api("", true)
|
||||
.version("2024-02-28")
|
||||
.describe([
|
||||
"Utility to use ChatGPT to generate a commit message from COMMIT_EDITMSG file.",
|
||||
`Don't forget to set the token in ${token_file} file.`,
|
||||
"",
|
||||
"Conventional/gitmoji commits should follow https://www.conventionalcommits.org/en/v1.0.0/ (https://github.com/pvdlg/conventional-commit-types).",
|
||||
"For the gitmoji the <type> uses emojis as follows:",
|
||||
...Object.entries(gitmoji_list).map(( v, i )=> echo.format("%c"+v[0]+` (${v[1]}): ${conventional_desc[i]}`, "display: list-item")),
|
||||
...Object.entries(git3moji_list).map(( v, i )=> echo.format("%c"+v[0]+` (${v[1]}): ${conventional_desc[i]}`, "display: list-item"))
|
||||
])
|
||||
.option("--format, -f", [ "Use one of the following formats to generate the commit message: [regular (default), conventional, gitmoji, git3moji]",
|
||||
"For gitmoji see: https://gitmoji.dev/"
|
||||
])
|
||||
.action(async function({ format= "regular" }= {}){
|
||||
const question= questionChatGPT(format);
|
||||
const response= (await pipe(
|
||||
()=> s.cat("./.git/COMMIT_EDITMSG"),
|
||||
s=> s.slice(s.indexOf("diff --git")),
|
||||
diffToChunks(3900-545), //the worst scenario of ★ +new lines
|
||||
ch=> ch.map(pipe( question, requestCommitMessage )),
|
||||
ch=> Promise.all(ch)
|
||||
)())
|
||||
.map(pipe(
|
||||
j=> j.choices[0].text.trim(),
|
||||
convertToArray,
|
||||
j=> (console.log(j), j),
|
||||
format==="regular" ? i=> i : i=> gitmoji(i, format==="git3moji"),
|
||||
a=> a.join("\n")
|
||||
))
|
||||
.join("\n\n");
|
||||
echo(response);
|
||||
$.exit(0);
|
||||
})
|
||||
.parse();
|
||||
|
||||
function diffToChunks(max_tokens){ return function(input){
|
||||
if(input.length < max_tokens)
|
||||
return [ input ];
|
||||
|
||||
return input.split(/(?=diff --git)/g)
|
||||
.flatMap(function(input){
|
||||
if(input.length < max_tokens)
|
||||
return [ input ];
|
||||
|
||||
const [ file, ...diffs ]= input.split(/\n(?=@@)/g);
|
||||
if(file.includes("new file"))
|
||||
return [ file ];
|
||||
return diffs
|
||||
.filter(chunk=> chunk.length < max_tokens)
|
||||
.reduce(function(chunks, chunk){
|
||||
const i= chunks.length-1;
|
||||
if(chunks[i].length + chunk.length < max_tokens-1)
|
||||
chunks[i]+= "\n"+chunk;
|
||||
else
|
||||
chunks.push(file+"\n"+chunk);
|
||||
return chunks;
|
||||
}, [ file ])
|
||||
.filter(chunk=> chunk.length < max_tokens);
|
||||
});
|
||||
}; }
|
||||
function convertToArray(text){
|
||||
// console.log(text);
|
||||
return text.split("\n")
|
||||
.map(line=> line.trim())
|
||||
.filter(line=> line.trim())
|
||||
.map(function(line){
|
||||
if(/^[0-9-].? /.test(line)) line= line.slice(line.indexOf(" ")+1);
|
||||
if(/^["']/.test(line[0])) line= line.slice(1);
|
||||
if(/["']$/.test(line[line.length-1])) line= line.slice(0, -1);
|
||||
return line;
|
||||
})
|
||||
;
|
||||
}
|
||||
function questionChatGPT(format){ return function(diff){
|
||||
const msg= [
|
||||
[
|
||||
"I would like to ask you to act like a git commit message writer.",
|
||||
"I will enter a git diff, and your job is to convert it into a useful commit message",
|
||||
"Make 3 options, one option per line.",
|
||||
"Do not preface the commit with anything, use a concise, precise, present-tense, complete sentence.",
|
||||
"The length should be fewer than 50 characters if possible.",
|
||||
].join(" ") //340chars★
|
||||
];
|
||||
if(format!=="regular")
|
||||
msg.push(
|
||||
[
|
||||
"It should follow the conventional commits.",
|
||||
"The format is <type in lowercase>: <description>.",
|
||||
"A type can be one of the following: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, or test.",
|
||||
].join(" ") //203chars★
|
||||
);
|
||||
msg.push("", diff);
|
||||
return msg.join("\n");
|
||||
}; }
|
||||
function gitmoji(candidates, is_three= false){
|
||||
return candidates.map(message=> message.trim().replace(/^[^:]*:/, toGitmoji));
|
||||
|
||||
function toGitmoji(name){
|
||||
const candidate= ( is_three ? git3moji_list : gitmoji_list )[name.slice(0, -1)];
|
||||
return !candidate ? name : `:${candidate}:`;
|
||||
}
|
||||
}
|
||||
function requestCommitMessage(prompt){
|
||||
if(!token) token= s.cat(token_file).stdout.trim();
|
||||
const model= "gpt-3.5-turbo-instruct";
|
||||
return fetch(`https://api.openai.com/v1/engines/${model}/completions`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": "Bearer "+token
|
||||
},
|
||||
body: JSON.stringify({
|
||||
max_tokens: 1000,
|
||||
temperature: 0.1,
|
||||
prompt
|
||||
}),
|
||||
signal: AbortSignal.timeout(10000)
|
||||
}).then(r=> r.json());
|
||||
}
|
||||
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||
// vim>60: set foldmethod=indent foldlevel=1 foldnestmax=2:
|
26
bin/§awk
26
bin/§awk
@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
this="${0##*/}"
|
||||
USAGE="\
|
||||
usage: $this [<awk_args>] <field_no>
|
||||
Ex: getent passwd | grep andy | $this -F: 5
|
||||
Ex: echo \"A B\" | $this 2
|
||||
"
|
||||
err(){ echo -e "$USAGE" >&2; exit 1; }
|
||||
|
||||
[[ $# -eq 0 ]] && err
|
||||
# bail if the *last* argument isn't a number (source:
|
||||
# http://stackoverflow.com/a/808740)
|
||||
last=${@:(-1)}
|
||||
if ! [ $last -eq $last ] &>/dev/null; then
|
||||
echo "_awk! Last argument (awk field) must be numeric." >&2
|
||||
err
|
||||
fi
|
||||
|
||||
if [ $# -gt 1 ]; then
|
||||
# Source:
|
||||
# http://www.cyberciti.biz/faq/linux-unix-bsd-apple-osx-bash-get-last-argument/
|
||||
rest=${@:1:$(( $# - 1 ))}
|
||||
else
|
||||
rest='' # just to be sure
|
||||
fi
|
||||
awk $rest "{ print \$$last }"
|
34
bin/§battery
34
bin/§battery
@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
version="2022-01-25"
|
||||
this="${0##*/}"
|
||||
USAGE="\
|
||||
$this@v$version
|
||||
Wrapper around 'upower' to show battery info(s).
|
||||
Usage: $this --[help|all|oneline|notify]
|
||||
|
||||
'oneline' [Default] prints 'status | time | percentage'
|
||||
'notify' sends 'oneline' to 'notify-send'
|
||||
'all' prints 'upower -i'
|
||||
'help' prints this text
|
||||
"
|
||||
arg=${1:---oneline}
|
||||
if [[ "$arg" = "--help" ]]; then
|
||||
echo -e "$USAGE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
batt_name=`upower -e | grep 'BAT'`
|
||||
batt_info=`upower -i $batt_name`
|
||||
if [[ "$arg" = "--all" ]]; then
|
||||
echo -e "$batt_info"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
batt_oneline=`echo "$batt_info" | grep -E "state|percentage|to\ full|to\ empty" | §awk -F: 2 | sed 's/^ *//g' | tr -s '\n' '|' | sed 's/|$/\n/' | sed 's/|/ | /g'`
|
||||
if [[ "$arg" = "--oneline" ]]; then
|
||||
echo -e "$batt_oneline"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
icon=`echo "$batt_info" | grep "icon-name" | §awk -F\' 2`
|
||||
notify-send --icon=$icon "Battery" "$batt_oneline"
|
@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
function _echo(){
|
||||
[ -t 0 ] && echo "$1" && exit
|
||||
notify-send -i kcalc "$1" && exit
|
||||
}
|
||||
_echo `python3 -c 'import sys; print(eval(" ".join(sys.argv[1:])))' "$*"`
|
@ -1,60 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop */
|
||||
import { join as pathJoin } from "path";
|
||||
import { platform } from "process";
|
||||
const config_path= $.xdg.data`package_global.json`;
|
||||
|
||||
$.is_fatal= true;
|
||||
$.api("[name]", true)
|
||||
.version("2022-10-06")
|
||||
.describe([
|
||||
"Release cordova app with saved data in: "+config_path+".",
|
||||
"This should be JSON file with `cordova_keys_store` key/object:",
|
||||
`{"cordova_keys_store": { "NAME": { "path": "", "password": "", "alias": "" } }}`,
|
||||
"You can lists all saved options (NAME), when you run without arguments." ])
|
||||
.option("--noclear", "Skipping cleaning existing apk files.")
|
||||
.action(function main(name, { noclear }){
|
||||
if(!name){
|
||||
echo("Available options:");
|
||||
pipe(getConfig, Object.keys, a=> "- "+a.join("\n- "), echo)();
|
||||
$.exit(0);
|
||||
}
|
||||
const /* runtime arguments and cwd */
|
||||
{ path, password, alias }= getConfigFor(name),
|
||||
cwd= process.cwd(),
|
||||
platform_android= toDirPath( cwd, "platforms", "android" ),
|
||||
platform_build= !s.test("-e", toDirPath(platform_android, "app")) ? toDirPath(platform_android, "build") : toDirPath(platform_android, "app", "build"),
|
||||
apk_dir= toDirPath(platform_build, "outputs", "apk"),
|
||||
key_path= pathJoin(cwd, "keystore.jks"),
|
||||
process_clear= !noclear && !s.test("-e", toDirPath(platform_android, "app"));
|
||||
|
||||
$.configAssign({ verbose: true, fatal: true });
|
||||
if(process_clear) s.rm("-Rf", apk_dir+"*");
|
||||
s.cp(path, key_path);
|
||||
s.run("cordova" + ( platform==="win32" ? ".cmd" : "" ) + " ::args::",
|
||||
{ args: [ "build", "--release", "android", "--",'--keystore=keystore.jks', "--storePassword="+password, "--password="+password, "--alias="+alias ] });
|
||||
s.rm(key_path);// cordova si to uklada a uz potom bez nej nelze buildit vubec
|
||||
s.rm(platform_android+"release-signing.properties");
|
||||
$.exit(0);
|
||||
})
|
||||
.parse(process.argv);
|
||||
|
||||
function toDirPath(...path){ return pathJoin(...path)+"/"; }
|
||||
function getConfigFor(name){
|
||||
const config= getConfig();
|
||||
if(Object.hasOwn(config, name))
|
||||
return config[name];
|
||||
|
||||
$.error(`Name '${name}' not found, use one of: `+Object.keys(config));
|
||||
}
|
||||
function getConfig(){
|
||||
if(!s.test("-f", config_path))
|
||||
$.error("No config file found! Tested file path: "+config_path);
|
||||
try{
|
||||
const config= s.cat(config_path).xargs(JSON.parse).cordova_keys_store;
|
||||
if(!Object.keys(config).length) throw new Error();
|
||||
return config;
|
||||
} catch(e){
|
||||
$.error("Unsupported config file: "+config_path+"! Use `--help` for more information.");
|
||||
}
|
||||
}
|
@ -1,94 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop, xdg, $ */
|
||||
import { basename } from "path";
|
||||
const app= {
|
||||
name: basename(process.argv[1]),
|
||||
version: "2022-09-28",
|
||||
cmd: $.xdg.home`.local/bin/himalaya`,
|
||||
configs: $.xdg.config`himalaya/`,
|
||||
modificator: "§"
|
||||
};
|
||||
const chars= { "&AOE-": "á", "&AWE-": "š", "&ARs-": "ě" };
|
||||
let argv_arr= argvArr();
|
||||
|
||||
if("help"===argv_arr.toString().replaceAll("-", "")){ //#region
|
||||
echo([ `${app.name}@${app.version}`,
|
||||
`This is small wrapper around 'himalaya' fixing coding errors and provide better 'read'. (Use § for calling himalaya directly)`,
|
||||
"" ].join("\n"));
|
||||
s.run(app.cmd+" --help");
|
||||
$.exit(0); //#endregion
|
||||
}
|
||||
if("version"===argv_arr.toString().replaceAll("-", "")){//#region
|
||||
echo(`${app.name} ${app.version}`);
|
||||
s.run(app.cmd+" --version");
|
||||
$.exit(0);//#endregion
|
||||
}
|
||||
if("completion,bash"===argv_arr.toString()){//#region
|
||||
const completion= s.run(app.cmd+" ::argv_arr::", { argv_arr });
|
||||
echo(completion.toString().replace("himalaya)", `himalaya|${app.name})`));
|
||||
echo(`alias ${app.name}-inbox="§mail § | less -R -S"`);
|
||||
echo(`complete -F _himalaya -o bashdefault -o default ${app.name}`);
|
||||
$.exit(0);//#endregion
|
||||
}
|
||||
(async function main(){
|
||||
if(argv_arr.indexOf(app.modificator)!==-1) await runH(argv_arr.filter(l=> l!==app.modificator));
|
||||
|
||||
argv_arr= argv_arr.filter(str=> str!==app.modificator);
|
||||
if(argv_arr.indexOf("list")!==-1){
|
||||
argv_arr.push("-w", process.stdout.columns);
|
||||
await runH(argv_arr);
|
||||
}
|
||||
if(argv_arr.indexOf("read")!==-1){
|
||||
const email= $.xdg.temp`/himalaya-read.eml`;
|
||||
argv_arr.push("-h", "From", "-h", "Subject");
|
||||
await s.$().runA(app.cmd+" ::argv_arr::", { argv_arr }).pipe(s=> s.to(email));
|
||||
await s.runA`vim ${email}`.pipe(process.stdout);
|
||||
$.exit(0);
|
||||
}
|
||||
|
||||
if(argv_arr[0] && argv_arr[0]!=="--rofi") await runH(argv_arr);
|
||||
|
||||
const template_path= app.configs+"template-inbox.json";
|
||||
if(!s.test("-f", template_path)) await runH([]);
|
||||
|
||||
const out= await pipe(
|
||||
f=> s.cat(f).xargs(JSON.parse),
|
||||
argv_arr.indexOf('--rofi')===-1 ? templateRead : templateRofi,
|
||||
a=> Promise.all(a)
|
||||
)(template_path);
|
||||
for(const l of out){
|
||||
if(typeof l=="string"&&!l.indexOf("%c===\n")) echo(l, "unset:all", "color:magenta");
|
||||
else echo(l);
|
||||
}
|
||||
$.exit(0);
|
||||
})();
|
||||
|
||||
function templateRofi(lines){
|
||||
return lines.filter(line=> line.type!=="text")
|
||||
.map(line=>
|
||||
s.$().runA(app.cmd+" ::value:: -w 120", line)
|
||||
.then(data=> data.toString().split("\n")
|
||||
.filter(l=> l)
|
||||
.map(line=> line.replaceAll("✷ ", "* "))
|
||||
.map(line_result=> line_result+" │ "+line.label)
|
||||
.join("\n"))
|
||||
);
|
||||
}
|
||||
function templateRead(lines){
|
||||
argv_arr.push("-w", process.stdout.columns);
|
||||
return lines.map(line=> line.type==="text" ?
|
||||
Promise.resolve("%c===\n%c"+line.value) :
|
||||
s.$().runA(app.cmd+" ::value:: ::argv_arr::", { value: line.value, argv_arr })
|
||||
);
|
||||
}
|
||||
|
||||
function argvArr(){
|
||||
const _chars= Object.entries(chars).reduce((acc, [ key, val ])=> Reflect.set(acc, val, key) && acc, {});
|
||||
return process.argv.slice(2).map(str=> str.replace(new RegExp(`(${Object.keys(_chars).join("|")})`, "g"), l=> _chars[l]));
|
||||
}
|
||||
async function runH(args){
|
||||
const result= await s.runA(app.cmd+" ::args::", { args }).pipe(process.stdout);
|
||||
$.exit(result.exitCode);
|
||||
}
|
||||
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab ft=javascript :
|
||||
// vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
@ -1,71 +0,0 @@
|
||||
#!/bin/bash
|
||||
this="${0##*/}"
|
||||
this_version="2021-12-01"
|
||||
err() { printf >&2 "Error: $*\n"; exit 1; }
|
||||
log() { printf ":: $* ::\n"; }
|
||||
|
||||
if [ ! -t 0 ]; then
|
||||
exo-open --launch TerminalEmulator -- -e "$this $*"
|
||||
exit
|
||||
fi
|
||||
action="${1:---help}"
|
||||
if [[ "$action" = "--help" ]]; then
|
||||
while read; do printf '%s\n' "$REPLY"
|
||||
done <<-EOF
|
||||
$this ($this_version) <andrle.jan@centrum.cz>
|
||||
Utility for updating my packages managers such as \`npm\`, \`apt\`, \`github-releases\` …
|
||||
|
||||
Usage: $this --[help|check|update] [basic|dangerous]
|
||||
[default] --help: show this text
|
||||
--check: check updates
|
||||
--update: update all
|
||||
--list: list of packages managers
|
||||
|
||||
modificators:
|
||||
[default] basic: checks/updates regular packages managers
|
||||
dangerous: ↘+also \`pip\`
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$action" = "--list" ]]; then
|
||||
echo npm
|
||||
echo github-releases.js
|
||||
echo _vim_plugins – updates only
|
||||
echo snap – updates only
|
||||
echo flatpak – updates only
|
||||
echo pip [dangerous]
|
||||
exit 0
|
||||
fi
|
||||
modificator="${2:-basic}"
|
||||
if [[ "$action" = "--check" ]]; then
|
||||
log "npm outdated --global (for update use: \`npm update --global\`)"
|
||||
npm outdated --global
|
||||
[[ "${?}" = "0" ]] && echo "> all up-to.date"
|
||||
log "github-releases.js --check (for update use for example: \`github-releases.js --update all\`)"
|
||||
github-releases.js --check
|
||||
if [[ ! "$modificator" = "basic" ]]; then
|
||||
log "pip list --outdated"
|
||||
pip list --outdated
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$action" = "--update" ]]; then
|
||||
log "npm update --global"
|
||||
npm update --global
|
||||
log "github-releases.js --update all"
|
||||
github-releases.js --update all
|
||||
log "_vim_plugins --update"
|
||||
_vim_plugins --update
|
||||
log "snap refresh --list"
|
||||
snap refresh --list
|
||||
log "flatpak update"
|
||||
flatpak update
|
||||
if [[ ! "$modificator" = "basic" ]]; then
|
||||
log "pip list --outdated --format=freeze | grep -v '^\\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user"
|
||||
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
err "Wrong arguments (use \`--help\`)"
|
@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop */
|
||||
$.is_fatal= true;
|
||||
$.api("<lang>")
|
||||
.version("2022-09-23")
|
||||
.describe("This is just wrapper around 'trans' cli utility.")
|
||||
.option("-b", "Turn off '-b' parametrer for 'trans' which is give by this script.")
|
||||
.option("-c", "Redirect into clipboard ('| xclip -selection clipboard')")
|
||||
.example("2en pes → 'trans cs:en -b pes'")
|
||||
.example("en -b dog → 'trans en:cs dog'")
|
||||
.action(function main(lang, { _: query, c: to_clipboard, b: to_long }){
|
||||
query= [ `"${query.join(" ").replaceAll('"', '\\"')}"` ];
|
||||
if(!to_long) query.unshift('-b');
|
||||
query.unshift(lang[0]==="2" ? lang.replace("2", "cs:") : ( lang.indexOf(":")!==-1 ? lang : lang+":cs" ));
|
||||
query.push('-no-ansi');
|
||||
|
||||
const result= s.$().run("trans "+query.join(" "));
|
||||
if(!to_clipboard) return echo(result.toString());
|
||||
result.runA("xclip -selection clipboard 2> /dev/null 1> /dev/null")
|
||||
.then($.exit.bind(null, 0)).catch($.exit.bind(null, 1));
|
||||
})
|
||||
.parse(process.argv);
|
@ -1,58 +0,0 @@
|
||||
#!/bin/bash
|
||||
this="${0##*/}"
|
||||
this_version="2021-01-22"
|
||||
USAGE="\
|
||||
$this@v$this_version
|
||||
Wrapper around '/etc/os-release' to show Ubuntu (like) os info.
|
||||
Usage: $this --[help|all|raw]
|
||||
|
||||
'all' [default] prints all infos
|
||||
'pick' prints only given key (default key is 'DESCRIPTION')
|
||||
'raw' cats '/etc/os-release'
|
||||
'help' prints this text
|
||||
|
||||
Examples:
|
||||
$this --all
|
||||
$this --pick NAME
|
||||
$this --pick VERSION_NAME
|
||||
$this --all | grep NAME
|
||||
"
|
||||
arg=${1:---all}
|
||||
if [[ "$arg" = "--help" ]]; then
|
||||
echo -e "$USAGE"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$arg" = "--raw" ]]; then
|
||||
cat /etc/os-release
|
||||
exit 0
|
||||
fi
|
||||
|
||||
. /etc/os-release
|
||||
out="ID=$ID"
|
||||
out="${out}\nDESCRIPTION=$PRETTY_NAME"
|
||||
case "$ID" in
|
||||
neon) out="${out}\nNAME=$NAME (${VARIANT:-User Edition})"
|
||||
out="${out}\nVERSION=$VERSION ($VERSION_ID)"
|
||||
;;
|
||||
*) out="${out}\nNAME=$NAME"
|
||||
out="${out}\nVERSION=$VERSION"
|
||||
;;
|
||||
esac
|
||||
out="${out}\nVERSION_NICK=$UBUNTU_CODENAME"
|
||||
codename=`grep $(lsb_release -rs) /usr/share/python-apt/templates/Ubuntu.info | grep -m 1 "Description: Ubuntu " | cut -d "'" -f2`
|
||||
out="${out}\nVERSION_NAME=$codename"
|
||||
# http://www.releases.ubuntu.com/jammy/
|
||||
out="${out}\nLIKE=$ID_LIKE"
|
||||
out="${out}\n`grep URL /etc/os-release | sed 's/^\([A-Z_]*\)_URL/URL_\1/'`"
|
||||
|
||||
if [[ "$arg" = "--all" ]]; then
|
||||
echo -e "$out"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$arg" = "--pick" ]]; then
|
||||
echo -e `echo -e "$out" | grep "\b${2:-DESCRIPTION}\b" | cut -d = -f 2-`
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Wrong argument, see '--help'."
|
||||
exit 1
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
find ~/.vim/undodir/ -maxdepth 1 -mindepth 1 -type f -mtime +180 -delete
|
||||
find ~/.vim/view/ -maxdepth 1 -mindepth 1 -type f -mtime +180 -delete
|
@ -1,281 +0,0 @@
|
||||
#!/usr/bin/env nodejsscript
|
||||
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||
//TODO: save options!?
|
||||
$.is_fatal= true;
|
||||
const dirs= { vim_root: $.xdg.home`.vim` };
|
||||
Object.assign(dirs, {
|
||||
pack: dirs.vim_root+"/pack/",
|
||||
bundle: dirs.vim_root+"/bundle/",
|
||||
one_files: dirs.vim_root+"/bundle/__one_files/plugin/" });
|
||||
const file_one_file= dirs.bundle+"one_file.json";
|
||||
const runResToArr= pipe( s.$().run, ({ stderr, stdout })=> stdout+stderr, o=> o.split("\n"));
|
||||
const css= echo.css`
|
||||
.code{ color: yellow; }
|
||||
.code::before, .code::after{ content: "\`"; }
|
||||
.url{ color: lightblue; }
|
||||
.bold{ color: magenta; }
|
||||
`;
|
||||
|
||||
$.api()
|
||||
.version("2023-04-18")
|
||||
.describe([
|
||||
"Utility for managing vim plugins “native” way. It uses two types:",
|
||||
`- “old” way (${f("bundle", css.code)}): inspiration from ${f("https://shapeshed.com/vim-packages/", css.url)}`,
|
||||
`- vim8 native package managing (${f("pack", css.code)}): see for example ${f("https://shapeshed.com/vim-packages/", css.url)}`
|
||||
])
|
||||
.command("path <type>", [ "Prints paths for given package type",
|
||||
"Use (‘S’ is alias for this script name):",
|
||||
"- "+f("cd `S path bundle`", css.code),
|
||||
"- "+f("cd `S path one_files`", css.code),
|
||||
"- "+f("cd `S path pack`", css.code)
|
||||
])
|
||||
.action(function(type){ echo(dirs[type]); $.exit(0); })
|
||||
.command("clone <type> <url>", [ "Add/install new package.",
|
||||
`Use ${f("bundle", css.code )}/${f("pack", css.code)} to specify the package ${f("type", css.code)}.`,
|
||||
`The ${f("url", css.url)} should be a URL to the script itself or url of the git repository or github repository in the form of ${f("username/reponame", css.url)}.`
|
||||
])
|
||||
.alias("C")
|
||||
.option("--target, -t [target]", `In case of ${f("pack", css.code)} type, specify the target sub-directory (typically/defaults ${f("start", css.code)}).`)
|
||||
.option("--branch, -b [branch]", `In case of ${f("git", css.bold)} repository, specify the branch if it is different from default one.`)
|
||||
.action(function(type, url, options){
|
||||
switch(type){
|
||||
case "bundle": return addBundle(url);
|
||||
case "pack": return addPack(url, options);
|
||||
}
|
||||
echo("Nothing todo, check given arguments (compare to `--help`):", { type, url, options });
|
||||
$.exit(1);
|
||||
})
|
||||
.command("remove <type> <path>", [ "Remove/uninstall package.",
|
||||
`As ${f("type", css.bold)}/${f("path", css.bold)} use output printed by ${f("list", css.code)} command.`
|
||||
])
|
||||
.alias("R").alias("rm")
|
||||
.action(function(type, path){
|
||||
switch(type){
|
||||
case "bundle": return removeBundle(path);
|
||||
case "pack": return removePack(path);
|
||||
}
|
||||
echo("Nothing todo, check given arguments (compare to `--help`):", { type, path });
|
||||
$.exit(1);
|
||||
})
|
||||
.command("list", "List all plugins paths/url/… (based on option).")
|
||||
.alias("L").alias("ls")
|
||||
.option("--type, -t [type]", `Defaults to list of paths (${f("paths", css.code)}). Use ${f("repos", css.code)} to show plugins origin.`)
|
||||
.example("list")
|
||||
.example("list --type paths")
|
||||
.example("list --type repos")
|
||||
.action(actionList)
|
||||
.command("export", "List all plugins in the form that can be imported by this Utility.")
|
||||
.action(actionList.bind(null, { type: "json" }))
|
||||
.command("status", "Loops through all installed plugins and shows overall status.")
|
||||
.alias("S")
|
||||
.action(actionStatus)
|
||||
.command("pull", "Loops through all installed plugins and updates them.")
|
||||
.alias("P").alias("update")
|
||||
.action(actionUpdate)
|
||||
.parse();
|
||||
|
||||
function removePack(path){
|
||||
s.cd(dirs.pack);
|
||||
s.$("-V").rm("-rf", path);
|
||||
const root= dirs.pack+path.split("/")[0];
|
||||
const { code, stdout }= s.$().find(root+"/*/*");
|
||||
if(!code) echo(stdout);
|
||||
else if(s.test("-d", root))
|
||||
s.$("-V").rm("-rf", root);
|
||||
$.exit(0);
|
||||
}
|
||||
function removeBundle(path){
|
||||
const is_onefile= dirs.one_files.endsWith(path.split("/").slice(0, 2).join("/")+"/");
|
||||
const name= path.slice(path.lastIndexOf("/")+1);
|
||||
s.cd(dirs.bundle);
|
||||
if(is_onefile){
|
||||
s.rm("-f", path);
|
||||
pipe( s.cat, JSON.parse, f=> f.filter(u=> !u.endsWith(name)), JSON.stringify, s.echo )
|
||||
(file_one_file).to(file_one_file);
|
||||
} else {
|
||||
s.run`git submodule deinit -f ${path}`;
|
||||
s.run`git rm ${path}`;
|
||||
s.rm("-rf", ".git/modules/"+path);
|
||||
}
|
||||
const type= is_onefile ? "file" : "repo";
|
||||
s.run`git commit --all -m "Remove ${type}: ${name}"`;
|
||||
$.exit(0);
|
||||
}
|
||||
async function addBundle(url){
|
||||
const is_onefile= url.endsWith(".vim");
|
||||
if(!is_onefile)
|
||||
url= gitUrl(url);
|
||||
const name= url.split(/[\/\.]/g).at(is_onefile ? -2 : -1);
|
||||
s.cd(dirs.bundle);
|
||||
if(is_onefile){
|
||||
const file= await fetch(url).then(r=> r.text());
|
||||
s.echo(file).to(dirs.one_files+name+".vim");
|
||||
const log= new Set(s.cat(file_one_file).xargs(JSON.parse));
|
||||
log.add(url);
|
||||
s.echo(JSON.stringify([ ...log ])).to(file_one_file);
|
||||
} else {
|
||||
s.run`git submodule init`;
|
||||
s.run`git submodule add ${url}`;
|
||||
}
|
||||
s.run`git add .`;
|
||||
const type= is_onefile ? "file" : "repo";
|
||||
s.run`git commit -m "Added ${type}: ${name}"`;
|
||||
$.exit(0);
|
||||
}
|
||||
/** @param {string} url @param {{ target: "start", branch?: string }} options */
|
||||
function addPack(url, { target= "start", branch }){
|
||||
url= gitUrl(url);
|
||||
const author= url.split(/[:\/]/).at(-2);
|
||||
const path= dirs.pack+author+"/"+target;
|
||||
s.mkdir("-p", path);
|
||||
s.cd(path);
|
||||
branch= !branch ? "" : `-b ${branch}`;
|
||||
s.run`git clone ${branch} --single-branch ${url} --depth 1`;
|
||||
$.exit(0);
|
||||
}
|
||||
function gitUrl(url_candidate){
|
||||
if(url_candidate.endsWith(".git"))
|
||||
return url_candidate;
|
||||
return "git@github.com:"+url_candidate;
|
||||
}
|
||||
async function actionUpdate(){
|
||||
const css= echo.css`
|
||||
.success{ color: lightgreen; }
|
||||
.success::before{ content: "✓ "; }
|
||||
`;
|
||||
updateRepo(dirs.bundle, getBundle());
|
||||
const todo= getOneFilesUrls();
|
||||
const progress= echoProgress(todo.length, "Downloaded one-file plugins");
|
||||
await Promise.all(todo.map(function(url, i){
|
||||
return fetch(url).then(r=> {
|
||||
progress.update(i, url);
|
||||
return r.text();
|
||||
}).then(f=> s.echo(f).to(dirs.one_files+fileName(url)));
|
||||
}));
|
||||
echo("One-file plugin(s) updated.");
|
||||
s.cd(dirs.bundle).$().run`git commit -m "Update"`;
|
||||
updateRepo(dirs.pack, getPack());
|
||||
|
||||
$.exit(0);
|
||||
|
||||
function updateRepo(dir, paths){
|
||||
echo(dir);
|
||||
const progress= echoProgress(paths.length, "Pulling");
|
||||
const todo= paths.map(function(p, i){
|
||||
progress.update(i, p);
|
||||
return pull(p);
|
||||
}).filter(isUpToDate);
|
||||
if(!todo.length)
|
||||
return echo("%cAll up-to-date!", css.success);
|
||||
todo.forEach(([ p, result ])=> echo("%c"+p+"\n", css.success, result.join("\n")));
|
||||
}
|
||||
function pull(p){
|
||||
s.cd(p);
|
||||
return [ p, runResToArr("git pull") ];
|
||||
}
|
||||
function isUpToDate([ _, result ]){
|
||||
return result[0]===" Already up-to-date.";
|
||||
}
|
||||
}
|
||||
function actionList({ type= "paths" }){
|
||||
if("paths"===type){
|
||||
echo("%cbundle", css.bold, dirs.bundle);
|
||||
getOneFiles().forEach(echoPath);
|
||||
getBundle().forEach(echoPath);
|
||||
|
||||
echo("%cpack", css.bold, dirs.pack);
|
||||
getPack().forEach(echoPath);
|
||||
$.exit(0);
|
||||
}
|
||||
const progress= echoProgress(3, "Collecting plugins urls");
|
||||
progress.update(0, dirs.bundle);
|
||||
const urls_bundle= getBundle().map(getRepo);
|
||||
progress.update(1, dirs.bundle);
|
||||
const urls_onefiles= getOneFilesUrls();
|
||||
progress.update(2, dirs.pack);
|
||||
const urls_pack= getPack().map(getRepo);
|
||||
|
||||
if("repos"===type){
|
||||
const echoUrl= pipe(
|
||||
u=> u.replace("git@github.com:", "https://github.com/"),
|
||||
u=> f(u, css.url),
|
||||
echo
|
||||
)
|
||||
echo("%cbundle", css.bold, dirs.bundle);
|
||||
urls_bundle.forEach(echoUrl);
|
||||
echo("%cbundle", css.bold, dirs.one_files);
|
||||
urls_onefiles.forEach(echoUrl);
|
||||
echo("%cpack", css.bold, dirs.pack);
|
||||
urls_pack.forEach(echoUrl);
|
||||
}
|
||||
if("json"===type){ //TODO: save options!?
|
||||
const o= {};
|
||||
o.bundle= urls_bundle;
|
||||
o.one_files= urls_onefiles;
|
||||
o.pack= urls_pack;
|
||||
echo(JSON.stringify(o));
|
||||
}
|
||||
$.exit(0);
|
||||
|
||||
function getRepo(p){ s.cd(p); return runResToArr("git remote -v")[0].split(/\s+/g)[1]; }
|
||||
}
|
||||
function actionStatus(){
|
||||
const css= echo.css`
|
||||
.success { color: lightgreen; }
|
||||
.success::before { content: "✓ "; }
|
||||
`;
|
||||
check(dirs.bundle, getBundle());
|
||||
echo("Onefiles plugins are not supported yet");
|
||||
check(dirs.pack, getPack());
|
||||
$.exit(0);
|
||||
|
||||
function check(root, repos){
|
||||
echo(root);
|
||||
const progress= echoProgress(repos.length);
|
||||
const results= repos.flatMap(function(p, i){
|
||||
progress.update(i, p);
|
||||
s.cd(p);
|
||||
const result= runResToArr("git fetch --dry-run --verbose")
|
||||
.filter(l=> !l ? false : l.startsWith("From") || (!l.startsWith(" = [up-to-date]") && !l.startsWith("POST") ));
|
||||
if(result.length===1) return [];
|
||||
return [ [ p, result.join("\n") ] ];
|
||||
});
|
||||
if(!results.length)
|
||||
return echo("%cup-to-date", css.success);
|
||||
results.forEach(([ p, l ])=> {
|
||||
echoPath(p);
|
||||
echo(l);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
import { relative } from 'node:path';
|
||||
function echoPath(path){ return echo(formatPath(path)); }
|
||||
function formatPath(path){
|
||||
const type= path.startsWith(dirs.bundle) ? "bundle" : "pack";
|
||||
return echo.format("%c"+relative(dirs[type], path), "color:lightblue");
|
||||
}
|
||||
import { stdout } from 'node:process';
|
||||
function echoProgress(length, message_start= "Working"){
|
||||
if(typeof stdout.isTTY === "undefined") return { update(){} };
|
||||
|
||||
const css= echo.css`
|
||||
.progress { color: lightblue; }
|
||||
`;
|
||||
echo.use("-R", `${message_start} (%c0/${length}%c)`, css.progress);
|
||||
return {
|
||||
update(i, status){
|
||||
const s= status ? `: ${status}` : "";
|
||||
return echo.use("-R", `${message_start} (%c${i+1}/${length}%c)${s}`, css.progress);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function getPack(){ return s.ls(dirs.pack).flatMap(f=> s.find(dirs.pack+f+"/start/*/")[0]).filter(Boolean); }
|
||||
function getBundle(){ return s.cd(dirs.bundle).grep("path", ".gitmodules").split("\n").filter(Boolean).map(l=> dirs.bundle+l.split(" = ")[1]); }
|
||||
function getOneFiles(){ return s.find(dirs.one_files+"*"); }
|
||||
function getOneFilesUrls(){ return s.cat(file_one_file).xargs(JSON.parse); }
|
||||
|
||||
function fileName(url){ return url.split("/").pop(); }
|
||||
/** Quick formating of one piece of text. */
|
||||
function f(text, css){ return echo.format("%c"+text, css); }
|
@ -1,44 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
|
||||
import { readFileSync, writeFileSync, createWriteStream } from "fs";
|
||||
import { get } from "https";
|
||||
import { homedir } from "os";
|
||||
|
||||
const url_main= "https://www.bing.com";
|
||||
const folder= homedir()+"/Obrázky/Bing Image Of The Day/";
|
||||
|
||||
get_(url_main+"/HPImageArchive.aspx?format=js&idx=0&n=2&mkt=cs-CZ")
|
||||
.then(res=> {
|
||||
let body= "";
|
||||
res.on("data", chunk=> body+= chunk);
|
||||
res.on("end", ()=> pipe(data, update)(body));
|
||||
})
|
||||
.catch(e=> console.error(String(e)));
|
||||
|
||||
function update(data){
|
||||
if(data===null) return false;
|
||||
Promise.allSettled(data.map(({ url, copyright }, id)=> getImage_(url, id ? "prev" : "now", copyright)))
|
||||
.then(res=> {
|
||||
let template= readFileSync(folder+"index_template.html").toString();
|
||||
writeFileSync(folder+"index.html", res.reduce((out, { status, value })=> status==="rejected" ? out : out.replace(`::${value.name}::`, value.description), template));
|
||||
})
|
||||
.catch(e=> console.error(String(e)));
|
||||
}
|
||||
function getImage_(url, name, desc){
|
||||
const description= desc.replace("(©", "<br>(©");
|
||||
return get_(url_main+url)
|
||||
.then(res=> {
|
||||
const fs= createWriteStream(folder+name+'.jpg');
|
||||
res.pipe(fs);
|
||||
return new Promise(res=> fs.on("finish", ()=> {
|
||||
fs.close();
|
||||
res({ name, description });
|
||||
}));
|
||||
});
|
||||
}
|
||||
function data(body){
|
||||
try { return JSON.parse(body).images; }
|
||||
catch (_) { return null; }
|
||||
}
|
||||
function get_(url){ return new Promise(function(res,rej){ get(url, res).on("error", rej); }); }
|
||||
function pipe(...f){ return Array.prototype.reduce.bind(f, (acc, f)=> f(acc)); }
|
Loading…
Reference in New Issue
Block a user