dotfiles/.config/rofi/scripts/vim-cheat.sh
2024-01-28 11:44:50 -06:00

77 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Usage:
# 1. Download Vim cheat sheet
# $ rofi-vim --download
#
# 2. Use dmenu to open the cheat sheet
# $ rofi-vim --dvim
#
# 3. Run it!
# $ rofi-vim
#
# Where to save the cheat sheet.
VIM_FILE="$HOME/.cache/vimcheat.txt"
# Get current time
CURRENT_TIME=$(date +%s)
# Url of cheat sheet to download.
URL=('https://raw.githubusercontent.com/rdvm/rofi-vim/master/vimcheat')
function notify() {
if [ "$(command -v notify-send)" ]; then
notify-send "$1" "$2"
fi
}
function download() {
notify `basename "$0"` 'Downloading Vim cheat sheet'
echo "" > "$VIM_FILE"
# Echo URL to terminal and download the cheat sheet
echo "Downloading: $URL"
cheatsheet=$(curl -s "$URL")
echo "$cheatsheet" >> "$VIM_FILE"
notify `basename "$0"` "Cheat sheet downloaded"
}
# Download the cheat sheet if it doesn't exist or is older than 5 days
if [ ! -f "$VIM_FILE" ] || [ $((CURRENT_TIME - `stat -c %Y $VIM_FILE`)) -gt 432000 ]; then
download
fi
function rvim() {
sheet=$(cat "$VIM_FILE")
line=$(echo "$sheet" | rofi -monitor -1 -dmenu -p "  command " -i -font "mono 23" -width 100 -location 0 -lines 15)
exit_code=$?
line=($line)
}
function dvim() {
sheet=$(cat "$VIM_FILE")
line=$(echo "$sheet" | dmenu -fn "mono 23" -p "vim command" -i -l 15)
exit_code=$?
line=($line)
}
case $1 in
--download)
download
;;
--dvim)
dvim
;;
*)
rvim
;;
esac