function fish_commandline_append --description "Append the given string to the command-line, or remove the suffix if already there"
    if not commandline | string length -q
        commandline -r $history[1]
    end

    set -l escaped (string escape --style=regex -- $argv[1])
    set -l job (commandline -j | string collect)
    if set job (string replace -r -- $escaped\$ "" $job)
        set -l cursor (commandline -C)
        commandline -rj -- $job
        commandline -C $cursor
    else
        commandline -aj -- $argv[1]
    end
end