#!/bin/bash # Install script for zsh-autocomplete config="$HOME/.zshrc" for config in "$HOME/.zshrc" "$ZDOTDIR/.zshrc" "$1"; do echo $config #first checks if ~/.zshrc file exists and is readable if [ -r "$config" ]; then break elif [ "$config" = "$1" ]; then echo "\nError: Please specify as first argument the file in which to load zsh-autosuggestions (usually ~/.zshrc)!\n" exit 1 fi done SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" SOURCE="$(readlink "$SOURCE")" [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located done DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" # appends the string to $config (usually ~/.zshrc) file cat >> "$config" <<-EOF # Setup zsh-autosuggestions source $DIR/autosuggestions.zsh # Enable autosuggestions automatically zle-line-init() { zle autosuggest-start } zle -N zle-line-init # use ctrl+t to toggle autosuggestions(hopefully this wont be needed as # zsh-autosuggestions is designed to be unobtrusive) bindkey '^T' autosuggest-toggle EOF echo "\nSetup completed successfully!\n" exit 0