Xah Shorthand System
xtodo work in progress

- general scheme
- use phonetic spelling, as much as possible.
- when there are several alternatives, then words ending
- a →
- b →
- c → change
- d → ed
- e →
- f →
- g →
- h →
- i → ing
- j →
- k →
- l → ly
- m → ment
- n →
- o →
- p →
- q → ?
- r →
- s → tion
- sv → sive
- t →
- u →
- v →
- w →
- x → ex, eks
- y →
- z →
- ing → i
- tion → s
- sive → sv
- ment → m
- ly → l
- ble → b
- ed → d
- change → qj
- church → c
- thing → th
- unused letters a e i o u c
- questionable letters x g q
Massive new era keyboard based shorthand system in the works.
- We have the pitman shorthand system. Which is based on phonetics, and for hand writing.
- Then we have the shavian alphabet, based on it.
- We have steno, which is based on part phonetics, chording hardware, and part ad hoc.
- Am slowly designing a keyboard based shorthand system.
- Single key press one at a time, not chord, and for computer keyboard.
- similar to, the statistics based input system word completion on smart phone.
- Look at it this way: in typing study, the idiotic nerds have bigrams.
- But they never thought of word-grams.
- These, are basically what the machine learning statistics based system on phone is.
- Which, saves typing by phrase and sentences, that's a magnitude more than a phonetic system (such as steno).
- The first easy step, in this xah system, is for each word in dict, shorten them to just consanant letters. And, also, rectify them, so k instead c.
- For example, word becoms w. Time and times both became t. Communication becomes kmnks.
- Now, u have maybe 1 thousand such abbrev words. Many will stand for multiple words.
- Now, look at frequency of those words, pick the most frequently used on for that abbrev.
- Now, this system, as it is, would be already very significant.
- After than, u refine it, by, look at the top 300 most used english words. For each that doesn't already have a abbrev, add one, by devising some scheme so they r diff from the phonetic abbrev.
- Also, is to look at most frequently used phrases, of 2 to 5 words. Similar, device a scheme to abbrev them so they r differentiated from the phonetic abbrev.
;; -*- 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
Keybinding and Input-System
- Why Alt Tab is Inefficient
- How Many Shortcuts Are There
- Emacs vs vim, Keybinding Efficiency
- vim HJKL vs IJKL
- Gamers WASD Keys
- Design of vim Mode Activation Key
- History of Key Shortcuts: Emacs, vim, WASD, Etc
- History of vi Keys
- Muscle Memory vs Mnemonics
- Ctrl ❌
Ban Key Combos - Ban Shift Key
- Function Key vs Key Chord
- Fast-repeat vs Non-fast-repeat Keys
- Modifier Keys Usage Frequency
-
Keyboard Shortcut vs Launch Buttons - Best Way to Insert Parenthesis/Brackets
Math Input Design
Create Math/TeX/APL Layout- Linux Mac Windows, Which is Best for Keybinding?
- Problem of Dual-Purpose Keys (home row mods)
- Xah Shorthand System