Xah Shorthand System

By Xah Lee. Date: . Last updated: .

xtodo work in progress

xah shorthand system 2023-01-07
xah shorthand system 2023-01-07

Massive new era keyboard based shorthand system in the works.

;; -*- coding: utf-8; lexical-binding: t; -*-
;; Emacs: Abbrev Mode
;; http://xahlee.info/emacs/emacs/emacs_abbrev_mode.html

;; Xah Shorthand System
;; http://xahlee.info/kbd/xah_shorthand_system.html


;; HHHH---------------------------------------------------

(clear-abbrev-table global-abbrev-table)

(define-abbrev-table 'global-abbrev-table
  '(

    ;; HHHH---------------------------------------------------
    ;; maybe temp

    ("xtodo" "<span class=\"todo\">xtodo</span>")

    ("1st" "first")
    ("2nd" "second")

    ("etu" "equal to")
    ("gtu" "greater than")
    ("gtoetu" "greater than or equal to")
    ("ltu" "less than")
    ("ltoetu" "less than or equal to")

    ("xe" "XahEmacs")
    ("gpu" "graphics primitives")

    ("cisst" "Case-insensitive")
    ("csst" "Case-sensitive")

    ("uhkt" "Ultimate Hacking Keyboard")

    ;; English top common word/phrase

    ("h" "have")
    ("k" "know")
    ("n" "and")
    ("r" "are")
    ("u" "you")

    ("ab" "about")
    ("aft" "after")

    ("bf" "before")
    ("bk" "because")
    ("bt" "between")
    ("btr" "better")

    ("cn" "cannot")
    ("ddn" "didn't")
    ("dn" "don't")
    ("ds" "does")
    ("dsn" "doesn't")
    ("hev" "however")
    ("hn" "have not")
    ("hrs" "here's")
    ("hs" "has")
    ("hsn" "has not")
    ("hvnt" "haven't")
    ("hvt" "have to")
    ("im" "I'm")
    ("isnt" "isn't")
    ("mb" "maybe")
    ("min" "minute")
    ("oft" "often")
    ("pb" "problem")
    ("pbl" "probably")
    ("ph" "perhaps")
    ("pls" "please")
    ("pp" "people")
    ("rly" "really")
    ("rt" "return")
    ("sd" "should")
    ("sdb" "should be")
    ("sec" "second" xah-abbrev-ahf)
    ("sm" "some")
    ("st" "sometime" xah-abbrev-ahf)
    ("sth" "something")

    ("t" "the")

    ("tb" "to be")
    ("ths" "these")
    ("thx" "thanks")
    ("tir" "their")
    ("tis" "it is")
    ("tos" "those")
    ("tosr" "those are")
    ("tr" "there")
    ("trr" "there are")
    ("trs" "there is")
    ("ts" "this")
    ("tss" "this is")
    ("tt" "that")
    ("ttr" "that are")
    ("tts" "that is")
    ("ty" "they")

    ("udst" "understand")
    ("udstd" "understanding")
    ("ul" "you'll")
    ("ur" "your")
    ("usl" "usually")
    ("uv" "you've")
    ("w" "with")
    ("wa" "what")
    ("wc" "which")
    ("wd" "would")
    ("wdnt" "wouldn't")
    ("wh" "where")
    ("wn" "when")
    ("wnt" "won't")
    ("wo" "without")
    ("wsnt" "wasn't")
    ("wt" "want" xah-abbrev-ahf)
    ("wr" "were" xah-abbrev-ahf)

    ;; English most common phrases

    ("il" "I will")
    ("isb" "it should be")
    ("itd" "it would")
    ("itl" "it will")
    ("iv" "i have")
    ("ivt" "i have to")
    ("oned" "one would")
    ("sdv" "should have")
    ("sdvb" "should have been")
    ("tu" "thank you")
    ("twb" "that would be")
    ("tyr" "they are")
    ("tyr" "they are")

    ;; wr → were
    ;; wr → we were

    ("wl" "we will")
    ("ws" "what is")

    ("itt" "is that")
    ("itti" "is that it")

    ("abi" "about it")
    ("afaik" "as far as i know")
    ("atm" "at the moment")
    ("btw" "by the way")
    ("dfb" "difference between")
    ("dunno" "don't know")
    ("evr" "every")
    ("evrt" "every time")
    ("evrtn" "everything")
    ("evrw" "everyone")
    ("hdu" "how do you")
    ("ht" "how to")
    ("ic" "I see")
    ("idk" "I don't know")
    ("ie" "i.e.")
    ("iirc" "if i recall correctly")
    ("irl" "in real life")
    ("nw" "no way")
    ("ot" "of the")
    ("pov" "point of view")
    ("rl" "real life")
    ("sdnt" "shouldn't")
    ("tsb" "there should be")
    ("uc" "you see")
    ("wrt" "with respect to")
    ("wtdb" "What's the difference between")
    ("wtf" "what the fuck")

    ("itfu" "in the following")

    ;; english, most common

    ("adi" "adding")
    ("ant" "another")
    ("ard" "already")
    ("cj" "change")
    ("cji" "changing")
    ("ent" "anything")
    ("fnl" "finally")
    ("lk" "look")
    ("lka" "look at")
    ("lt" "little")
    ("mk" "make")
    ("ow" "always")
    ("rlz" "realize")
    ("rlzs" "realizes")
    ("tk" "think")
    ("tki" "thinking")
    ("tm" "them")
    ("tn" "thing")
    ("yrs" "years")

    ;; english, long words

    ("abtr" "arbitrary")
    ("abtrl" "arbitrarily")
    ("actc" "architecture")
    ("addr" "address" xah-abbrev-ahf)
    ("agm" "argument" xah-abbrev-ahf)
    ("agrm" "algorithm")
    ("agrt" "algorithm")
    ("ags" "aggressive")
    ("anls" "analysis")
    ("anm" "announcement" xah-abbrev-ahf)
    ("annm" "anonymous")
    ("apr" "apparent")
    ("aprl" "apparently")
    ("ar" "around")
    ("arj" "arrange")
    ("arjm" "arrangement")
    ("armt" "arithmetic")
    ("asd" "accident")
    ("asdtl" "accidentally")
    ("asm" "assignment")
    ("asse" "associate")
    ("asses" "association" xah-abbrev-ahf)
    ("atb" "attribute" xah-abbrev-ahf)
    ("atk" "article" xah-abbrev-ahf)
    ("atl" "actually")
    ("atmt" "automatic")
    ("atmtkl" "automatically")
    ("atnt" "alternative")
    ("atntl" "alternatively")
    ("atv" "activate")
    ("avt" "advantage")
    ("avts" "advantages")

    ("bg" "background")
    ("bgn" "beginning")
    ("bhv" "behavior")
    ("bksl" "backslash")
    ("bsn" "business")

    ("davt" "disadvantage")
    ("df" "define" xah-abbrev-ahf)
    ("dfk" "difficult")
    ("dfn" "definite")
    ("dfnl" "definitely")
    ("dfns" "definition")
    ("dfr" "different")
    ("dfrl" "differently")
    ("dfrs" "difference")
    ("dkl" "declare")
    ("dklrs" "declaration")
    ("dkm" "document")
    ("dkmtr" "documentary")
    ("dkmts" "documentation")
    ("dks" "discussion")
    ("dkv" "discover")
    ("dkvd" "discoverd" xah-abbrev-ahf)
    ("dkvr" "discovery" xah-abbrev-ahf)
    ("dl" "download")
    ("dms" "dimension")
    ("dmsn" "dimensional")
    ("dmst" "demonstrate")
    ("dpd" "dependent")
    ("dsb" "disable")
    ("dsg" "disagree")
    ("dsgm" "disagreement")
    ("dsk" "describe")
    ("dsks" "description")
    ("dsnr" "dictionary")
    ("dsnrs" "dictionaries")
    ("dsp" "disappear")
    ("dsps" "disappears")
    ("dt" "distance")
    ("dtg" "distinguish")
    ("dvl" "develop")
    ("dvlm" "development")

    ("efs" "efficient")
    ("efss" "efficiency")
    ("eft" "effective")
    ("eftl" "effectively")
    ("eg" "e.g.")
    ("egn" "engineer")
    ("egnm" "ergonomic")
    ("egnr" "engineering")
    ("eklt" "equality")
    ("elm" "element" xah-abbrev-ahf)
    ("eltct" "electricity")
    ("epsl" "especially")
    ("ettm" "entertainment")
    ("evrm" "environment")
    ("ex" "example")
    ("exs" "examples")

    ("fc" "feature")
    ("fdmt" "fundamental")
    ("fds" "foundation")
    ("fkl" "frequently")
    ("fks" "frequency")
    ("fl" "follow")
    ("fli" "following")
    ("flsf" "philosophy")
    ("fnmn" "phenomenon")
    ("fsk" "physical")
    ("fsnlt" "functionality")
    ("fs" "function" xah-abbrev-ahf)
    ("fvr" "favorite")

    ("gnr" "generate")
    ("gvm" "government")

    ("hait" "height")
    ("hsdsm" "hexadecimal")
    ("hl" "highlight")
    ("hrk" "hierarchy")
    ("hrzt" "horizontal")
    ("htr" "history")
    ("htrk" "historical")

    ("idpd" "independent")
    ("idt" "industry")
    ("idtf" "identify")
    ("idtfr" "identifer" xah-abbrev-ahf)
    ("iefs" "inefficient")
    ("ifms" "information")
    ("ihr" "inherit")
    ("ihrs" "inherits")
    ("ihrt" "inheritance")
    ("ik" "include" xah-abbrev-ahf)
    ("ikd" "including")
    ("ikdb" "incredible")
    ("ikphsb" "incomprehensible")
    ("ikptb" "incompatible")
    ("ikptblt" "incompatibility")
    ("ikr" "incorrect")
    ("iks" "inclusive")
    ("ikst" "inconsistent")
    ("iksts" "inconsistency")
    ("ikvn" "inconvenient")
    ("ikvns" "inconvenience")
    ("iltst" "electricity")
    ("imd" "immediate")
    ("imdl" "immediately")
    ("ipm" "implement")
    ("ipmts" "implementation")
    ("ips" "impatient")
    ("ipsb" "impossible")
    ("ipt" "important")
    ("irlv" "irrelevant")
    ("isr" "insurance")
    ("ists" "instruction" xah-abbrev-ahf)
    ("istt" "instant")
    ("isttn" "instantaneous")
    ("ita" "interact")
    ("itas" "interaction")
    ("itat" "interactive")
    ("itds" "introduction")
    ("itf" "interface")
    ("itj" "integer" xah-abbrev-ahf)
    ("itn" "internet")
    ("itnsn" "international")
    ("itp" "interpret")
    ("itpi" "interpreting")
    ("itpt" "interpreted")
    ("itpts" "interpretation")
    ("itrt" "interesting")
    ("ivle" "evaluate" xah-abbrev-ahf)
    ("ivles" "evaluation")

    ("kb" "keyboard")
    ("kbd" "keybinding")
    ("kbns" "combination")
    ("kbs" "keyboards")
    ("kc" "question")
    ("kds" "condition")
    ("kf" "comfort")
    ("kfs" "confusion")
    ("kfsd" "confusion")
    ("kftb" "comfortable")
    ("kktn" "concatenate")
    ("kmd" "command")
    ("kmnks" "communication")
    ("kmnt" "community")
    ("kn" "connect" xah-abbrev-ahf)
    ("kp" "keypad")
    ("kphs" "comprehension")
    ("kphsv" "comprehensive")
    ("kpl" "complete")
    ("kplx" "complex")
    ("kplxt" "complexity")
    ("kpn" "company")
    ("kpr" "compare")
    ("kprd" "compared")
    ("kprs" "comparison")
    ("kpt" "computer")
    ("kptb" "compatible")
    ("kptblt" "compatibility")
    ("kr" "current")
    ("kre" "create")
    ("kres" "creates")
    ("krn" "correctness")
    ("krsp" "correspond" xah-abbrev-ahf)
    ("krspd" "corresponding")
    ("krt" "character")
    ("krtrt" "characteristic")
    ("krts" "characters")
    ("ksd" "consider" xah-abbrev-ahf)
    ("ksk" "consequence")
    ("ksprs" "conspiracy")
    ("kst" "constitute" xah-abbrev-ahf)
    ("ktgr" "category")
    ("ktgrs" "categories")
    ("ktm" "customize")
    ("ktmzs" "customization")
    ("ktn" "continue")
    ("ktnes" "continuation")
    ("ktr" "control")
    ("ktrd" "controlled")
    ("ktvs" "controversial")
    ("kv" "convert")
    ("kvn" "convenient")
    ("kvrs" "conversion")
    ("kvs" "convention" xah-abbrev-ahf)
    ("kw" "keyword")

    ("lgj" "language")
    ("lgjs" "languages")
    ("lst" "livestream")
    ("ltrc" "literature")

    ("mgz" "magazine")
    ("mknk" "mechanical")
    ("mkns" "mechanism")
    ("mln" "millennials")
    ("mmt" "mathematics")
    ("mmtk" "mathematical")
    ("mmts" "mathematician")
    ("mmtss" "mathematicians")
    ("mn" "meaning")
    ("mnf" "meaningful")
    ("msj" "message")
    ("mt" "mountain")
    ("mtns" "maintenance")
    ("mtp" "multiple")
    ("mtpks" "multiplication")
    ("mudstd" "misunderstanding")

    ("nb" "number")
    ("nlj" "knowledge")
    ("nssr" "necessary")
    ("nssrl" "necessarily")
    ("ntl" "nonetheless")
    ("ntn" "nothing")
    ("nts" "notation")
    ("nv" "never")
    ("nvtl" "nevertheless")

    ("obsl" "obsolete")
    ("ofs" "official")
    ("ogn" "organize")
    ("ognzs" "organization")
    ("oj" "object")
    ("okr" "occur")
    ("okrs" "occurrence")
    ("oprs" "operation" xah-abbrev-ahf)
    ("oprt" "operator" xah-abbrev-ahf)
    ("orgnl" "originally")
    ("otmz" "optimize")
    ("otmzs" "optimization")
    ("otw" "otherwise")

    ("pe" "power")
    ("pef" "powerful")
    ("pf" "prefer")
    ("pfr" "preference")
    ("pfs" "profession")
    ("pfsn" "professional")
    ("pg" "program")
    ("pgd" "programed")
    ("pgm" "programing")
    ("pgmb" "programable")
    ("pgmblt" "programability")
    ("pgmr" "programer")
    ("pgmrs" "programers")
    ("pgmtkl" "programatically")
    ("pj" "project")
    ("pjs" "projection")
    ("pkg" "package")
    ("pkgs" "packages")
    ("pltk" "political")
    ("ppgd" "propaganda")
    ("ppl" "popular")
    ("ppsn" "proportional")
    ("ppsnl" "proportionally")
    ("pptr" "proprietary")
    ("prg" "paragraph")
    ("prmt" "parameter")
    ("prmts" "parameters")
    ("procs" "process")
    ("prof" "professor")
    ("prts" "parenthesis")
    ("psb" "possible")
    ("psbl" "possibly")
    ("psd" "procedure")
    ("psdr" "procedural")
    ("pss" "position")
    ("psy" "psychology")
    ("ptk" "practical")
    ("ptkl" "particular")
    ("ptkll" "particularly")
    ("pts" "potential")
    ("pv" "private")
    ("pw" "password")

    ("rfr" "reference")
    ("rgl" "regardless")
    ("rk" "require")
    ("rkm" "recommend")
    ("rkmds" "recommendation")
    ("rkn" "recognize")
    ("rkni" "recognizing")
    ("rls" "relation")
    ("rlss" "relationship")
    ("rlt" "relative")
    ("rp" "respond" xah-abbrev-ahf)
    ("rpl" "replace")
    ("rplm" "replacement")
    ("rps" "represent" xah-abbrev-ahf)
    ("rpsb" "responsible")
    ("rpst" "represented")
    ("rpsti" "representing")
    ("rpsts" "representation")
    ("rpts" "repetition")
    ("rstr" "restaurant")
    ("rv" "review")

    ("sais" "science")
    ("sk" "screen")
    ("sk" "shortcut")
    ("sks" "sequence")
    ("sksl" "sequential")
    ("sls" "solution")
    ("sml" "similar")
    ("smll" "similarly")
    ("smtn" "simultaneous")
    ("smtnl" "simultaneously")
    ("snfk" "significant") ;
    ("snfks" "significance")
    ("spr" "separate")
    ("sprl" "separately")
    ("sprs" "suppress")
    ("sps" "special")
    ("spsf" "specify")
    ("spsfk" "specific")
    ("spsfks" "specification")
    ("spsfs" "specifies")
    ("ss" "screenshot")
    ("sst" "substring")
    ("sstv" "sensitive")
    ("sstvt" "sensitivity")
    ("stc" "structure")
    ("std" "standard")
    ("stf" "scientific")
    ("stmt" "systematic")
    ("str" "string")
    ("sts" "sentence")
    ("sttm" "statement")
    ("sttt" "statistics")
    ("svlzs" "civilization")
    ("svr" "several")
    ("sw" "software")

    ("tds" "tradition")
    ("tdsn" "traditional")
    ("tdsnl" "traditionally")
    ("tf" "transform")
    ("tfms" "transformation")
    ("tgt" "together")
    ("tls" "translation")
    ("tmr" "tomorrow")
    ("tnk" "technical")
    ("tnkl" "technically")
    ("tnlj" "technology")
    ("tpkl" "typically")
    ("tpr" "transparent")
    ("tprc" "temperature")
    ("tprr" "temporary")
    ("tprrl" "temporarily")
    ("tprs" "transparency")
    ("trf" "therefore")

    ("ud" "under")
    ("uept" "unexpected")
    ("ukftb" "uncomfortable")
    ("unssr" "unnecessary")
    ("unv" "universe")
    ("unvst" "university")
    ("urdb" "unreadable")

    ("vd" "video")
    ("ver" "version")
    ("vr" "very")
    ("vtk" "vertical")

    ("wdt" "width")
    ("wtn" "written")

    ("xpl" "explain" xah-abbrev-ahf)
    ("xpns" "explanation")
    ("xpr" "experience")
    ("xprd" "experienced")
    ("xps" "expression" xah-abbrev-ahf)
    ("xs" "except")
    ("xsjr" "exaggerate" xah-abbrev-ahf)
    ("xsl" "excellent")
    ("xss" "exercise")
    ("xtm" "extreme")
    ("xtml" "extremely")
    ("xts" "extension")
    ("xtss" "extensions")
    ("xz" "exist")
    ("xzt" "existance")

    ;; HHHH---------------------------------------------------

    ;; computing

    ("avlb" "available")
    ("bti" "builtin")
    ("clb" "clipboard")
    ("cmd" "command")
    ("cmds" "commands")
    ("cpt" "codepoint")
    ("drs" "direction")
    ("drtr" "directory")
    ("drtrs" "directories")
    ("dtb" "database")
    ("dtt" "datatype")
    ("ekvl" "equivalent")
    ("fn" "filename")
    ("fskr" "fullscreen")
    ("lbr" "library") ; libraries
    ("lhs" "left-hand-side")
    ("md" "metadata")
    ("obj" "object")
    ("ovw" "overwrite")
    ("ppt" "property")
    ("ppts" "properties")
    ("rhs" "right-hand-side")
    ("subdir" "subdirectory")
    ("subdirs" "subdirectories")
    ("tmnlg" "terminology")
    ("ttrl" "tutorial")
    ("udsk" "underscore")
    ("vl" "value")
    ("vrb" "variable")
    ("vrbs" "variables")

    ;; HHHH---------------------------------------------------

    ;; english phrases

    ("bcu" "backward compatibility ")
    ("bdfu" "by default")
    ("cmlu" "command line")
    ("diyu" "Do It Yourself")
    ("faqu" "frequently asked questions")
    ("feu" "For example")
    ("ftfu" "for the first time")
    ("itou" "instead of")
    ("qnau" "questions and answers")
    ("rnu" "right now")
    ("sau" "such as")
    ("sjwu" "social justice warrior")
    ("sou" "Sample output:")
    ("sosu" "see also")
    ("tocu" "table of contents")
    ("ttu" "touch type")
    ("wipu" "work in progress")

    ;; computing, phrase

    ("aiu" "artificial intelligence")
    ("cau" "cellular automata")
    ("cfgu" "context-free grammar")
    ("cliu" "command line interface")
    ("csu" "computer science")
    ("dtstcu" "data structure")
    ("evu" "environment variable")
    ("evsu" "environment variables")
    ("fpu" "functional programing")
    ("fplu" "functional programing language" xah-abbrev-ahf)
    ("guiu" "graphical user interface")
    ("gvu" "global variable")
    ("ipau" "IP address")
    ("isu" "image source")
    ("oopu" "object oriented programing")
    ("osu" "operating system")
    ("plu" "programing language")
    ("rsi" "Repetitive Strain Injury")
    ("scu" "source code")
    ("uiu" "user interface")
    ("wpmu" "words per minute")

    ;; HHHH---------------------------------------------------

    ;; english, proper noun

    ("ahdo" "American Heritage Dictionary")
    ("calio" "California")
    ("nyo" "New York")
    ("nyto" "New York Times")
    ("chno" "Chinese")
    ("engo" "English")
    ("euo" "Europe")
    ("jpo" "Japan")
    ("jpno" "Japanese")
    ("sfo" "San Francisco")
    ("wpo" "Wikipedia")

    ;; HHHH---------------------------------------------------

    ;; computing, proper noun

    ("regexu" "regular expression")
    ("wm" "Window Manager")

    ("wml" "Windows, Mac, Linux")
    ("win10" "Windows 10")
    ("ahk" "AutoHotkey")
    ("cl" "Common Lisp")
    ("elt" "emacs lisp")

    ("fb" "Facebook")
    ("ff" "Firefox")
    ("gc" "Google Chrome")
    ("iet" "Internet Explorer")
    ("jst" "JavaScript")
    ("jvm" "Java Virtual Machine")
    ("lsl" "Linden Scripting Language")
    ("mac" "Mac")
    ("macos" "macOS")
    ("macosx" "Mac OS X")
    ("mma" "Mathematica")
    ("ms" "Microsoft")

    ("msvs" "Microsoft Visual Studio")
    ("msw" "Microsoft Windows")
    ("sofu" "StackOverflow")

    ("nn" "non-nil")
    ("pp1" "PayPal")
    ("pes" "PowerShell")
    ("tst" "TypeScript")
    ("wfs" "WolframScript")
    ("wfl" "WolframLang")

    ("sl" "Second Life")
    ("vb" "Visual Basic")

    ("wflu" "Wolfram language")
    ("wf" "Wolfram")
    ("wfe" "WolframEngine")
    ("yt" "YouTube")
    ("ops" "open source")

    ;; math, phrase

    ("deu" "differential equations")
    ("dgu" "differential geometry")
    ("odeu" "ordinary differential equations")

    ;; programing

    ("eq" "==")
    ("eqq" "===")
    ("eqt" "=\"▮\"")

    ("hh" "HHHH---------------------------------------------------")

    ("byline" "<div class=\"byline\">By Xah Lee. Date: <time>2009-07-30</time>. Last updated: <time>2017-05-09</time>.</div>")

    ;; ("twittercard" "<meta name=\"twitter:image\" content=\"http://example.com/cat.jpg\">" )

    ;; regex
    ("azrg" "\\([A-Za-z0-9]+\\)")
    ("bracketrg" "\\[\\([^]]+?\\)\\]")
    ("curlyrg" "“\\([^”]+?\\)”")
    ("digitsrg" "\\([0-9]+\\)")
    ("daterg" "\\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\\)")
    ("dotrg" "\\(.\\)")
    ("strrg" "\\([^\"]+?\\)")
    ("tagrg" "\\([</>=\" A-Za-z0-9]+\\)")

    ;; shell
    ("ytdl" "youtube-dl --id --keep-video --extract-audio --")
    ("ytd" "~/bin/yt-dlp.exe  --id --keep-video --extract-audio --")

    ;; html

    ("flowxl" "<ul class=\"flowxl\">\n<li>  </li>\n</ul>")
    ("mxt" "<kbd>Alt</kbd>+<kbd>x</kbd>")
    ("pmovedt" "<p class=\"page_moved_64598\">page moved to <a href=\"x.html\">x</a></p>")
    ("rltd" "<div class=\"rltd\">\n▮\n</div>\n\n" xah-abbrev-ahf)
    ("zh" "<span class=\"zhChar\" lang=\"zh\">▮</span>")
    ("ei" "<p>put this in your <a href=\"emacs_init_file.html\">Emacs Init File</a>:</p>\n\n")
    ("topict" "<div class=\"topicXL\">\n<h4>topicttt</h4>\n<ul>\n<li><a href=\"xx1.html\">xx1</a></li>\n<li><a href=\"xx2.html\">xx2</a></li>\n</ul>\n</div>\n\n")

    ;; unicode
    ("asciit" "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")

    ("bu" "•")
    ("la" "←")
    ("ua" "↑")
    ("ra" "→")
    ("da" "↓")

    ("emo" "😃😄😅😂🤩
🤡🤗😠😮😒
😑 🚀☄
🎪💀♥🌟💠❌
💨🔥💯👍👎
")

    ("rocketu" "🚀")

    ;; code

    ("utf8t" "-*- coding: utf-8 -*-")

    ("vdspc" "Visual Dictionary of Special Plane Curves")
    ("xfk" "xah-fly-keys")
    ("xwm" "xah-wolfram-mode")
    ("eem" "ergoemacs-mode")

    ;; url
    ("3dxmu" "http://3D-XplorMath.org/")

    ;; xah personal
    ("xtsu" "Xah Talk Show")
    ("xtv" "XahTV")
    ("xl" "xahlee")
    ("xxlo" "Xah@XahLee.org")

    ("asciiu" "c:/Users/xah/web/xahlee_info/comp/ascii_chars.html")
    ("binaryu" "c:/Users/xah/web/xahlee_info/comp/binary_number.html")
    ("byteu" "c:/Users/xah/web/xahlee_info/comp/what_is_byte.html")
    ("codepointu" "c:/Users/xah/web/xahlee_info/comp/unicode_codepoint.html")
    ("hexadecimalu" "c:/Users/xah/web/xahlee_info/comp/hexadecimal_number.html")

    ("xlsu" "Livestream in x hours. x San Francisco time.
https://www.youtube.com/c/xahlee/live
Topic:
sub + 🔔

")

    ;;

    ))

(set-default 'abbrev-mode t)

;; HHHH---------------------------------------------------

(defun xah-abbrev-ahf ()
  "Abbrev hook function, used for `define-abbrev'.
 Our use is to prevent inserting the char that triggered expansion. Experimental.
Version: 2016-10-24"
  t)

(put 'xah-abbrev-ahf 'no-self-insert t)

(defun xah-global-expand-abbrev ()
  "function for value of `abbrev-expand-function'.
Expand the symbol before cursor,
if cursor is not in string or comment.
Returns the abbrev symbol if there's a expansion, else nil.
Version: 2019-01-10"
  (interactive)
  (when (xah-elisp-abbrev-enable-function) ; abbrev property :enable-function doesn't seem to work, so check here instead
    (let ( $p1 $p2 $abrStr $abrSymbol )

      ;; (save-excursion
      ;;   (forward-symbol -1)
      ;;   (setq $p1 (point))
      ;;   (goto-char $p0)
      ;;   (setq $p2 $p0))

      (save-excursion
        ;; 2017-01-16 note: we select the whole symbol to solve a problem. problem is: if “aa”  is a abbrev, and “▮bbcc” is existing word with cursor at beginning, and user wants to type aa- to result in aa-bbcc. Normally, aa immediately expands. This prevent people editing bbcc to become aa-bbcc. This happens for example in elisp, when editing “search-forward” to become “re-search-forward”. The downside of this is that, people cannot type a abbrev when in middle of a word.
        (forward-symbol -1)
        (setq $p1 (point))
        (forward-symbol 1)
        (setq $p2 (point)))

      (setq $abrStr (buffer-substring-no-properties $p1 $p2))
      (setq $abrSymbol (abbrev-symbol $abrStr))
      (if $abrSymbol
          (progn
            (abbrev-insert $abrSymbol $abrStr $p1 $p2 )
            (xah-global-abbrev-position-cursor $p1)
            $abrSymbol)
        nil))))

(defun xah-global-abbrev-position-cursor (&optional Pos)
  "Move cursor back to ▮ if exist, else put at end.
Return true if found, else false.
Version: 2016-10-24"
  (interactive)
  (let (($foundQ (search-backward "▮" (if Pos Pos (max (point-min) (- (point) 100))) t )))
    (when $foundQ (delete-char 1))
    $foundQ
    ))

(setq abbrev-expand-function 'xah-global-expand-abbrev)
;; (setq abbrev-expand-function 'abbrev--default-expand)

(setq save-abbrevs nil)

Xah Talk Show 2022-02-02

Xah Talk Show 2022-02-02 Emacs Xah Wolfram Mode, Xah Shorthand System, Why Steno Sucks, Why OpenGL Sucks

Keybinding and Input-System

Xah Keyboard Guide