Anton Shestakov <av6@dwimlabs.net>, Sat, 26 Nov 2022 02:07:35 +0400
.vimrc: set updatetime from 4000ms to 500ms
This matters for certain async plugins, such as signify, that use CursorHold
autocommand event. Signify recommends going as low as 100, but 500 should be
good enough.
# Remove temporary files even if we get interrupted
trap "cleanup_exit" 0 # normal exit
trap "exit 255" HUP INT QUIT ABRT TERM
HGTMP=$(mktemp -d "${TMPDIR-/tmp}/hgeditor.XXXXXX")
if [ -z "$HGTMP" ] || ! [ -d "$HGTMP" ]; then
echo "Could not create temporary directory! Exiting." 1>&2
LINE=$(fgrep 'HG: --- 8< ---' -nm1 "$1" | cut -d: -f1)
head -n "$(( LINE - 1 ))" "$1" > "$HGTMP/msg"
tail -n +"$(( LINE + 1 ))" "$1" | sed -e 's/^HG: //g' > "$HGTMP/diff"
MD5=$(which md5sum 2>/dev/null) || \
MD5=$(which md5 2>/dev/null)
[ -x "${MD5}" ] && CHECKSUM=$(${MD5} "$HGTMP/msg")
if [ -s "$HGTMP/diff" ]; then
vim -f "+e $HGTMP/diff" '+set buftype=help filetype=diff' "+vsplit $HGTMP/msg" '+setlocal spell' || exit $?
vim -f "$HGTMP/msg" '+setlocal spell' || exit $?
[ -x "${MD5}" ] && (echo "$CHECKSUM" | ${MD5} -c >/dev/null 2>&1 && exit 13)