home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cpm / editors / z80emacs.pma / MAPKEYS.DOC < prev    next >
Text File  |  1979-12-31  |  10KB  |  223 lines

  1. "bINDING" IS ONE OF THOSE WORDS OF EMACS JARGON THAT MIGHT
  2.  
  3. BE BOTHERSOME, BUT WE HAVE TO USE IT.
  4.  
  5.  
  6.  
  7. tHE IDEA IS THAT AN EDITOR CONTAINS A CERTAIN SET OF COMMANDS, 
  8.  
  9. WHICH ARE ALWAYS THE SAME COMMANDS NO MATTER WHAT KEYSTROKES ARE 
  10.  
  11. USED TO INVOKE THEM. tHE ASSOCIATION OF A KEYSTROKE TO A
  12.  
  13. COMMAND IS CALLED A "BINDING".
  14.  
  15.  
  16.  
  17. eDITORS DERIVED FROM EMACS HAVE AN INTERNAL STRUCTURE THAT MAKES
  18.  
  19. IT EASY TO CHANGE THE BINDINGS ( UNLIKE wORDsTAR OR vde ).
  20.  
  21.  
  22.  
  23. oN A BIG COMPUTER, YOU CAN CHANGE EMACS BINDINGS ONLINE; BUT Z80EMACS 
  24.  
  25. HAS TO FIT IN 64kb, SO THE BINDINGS ARE DONE OFFLINE.
  26.  
  27.  
  28.  
  29. z80EMACS COMES WITH A DEFAULT SET OF BINDINGS ALREADY INSTALLED. 
  30.  
  31. tHESE BINDINGS ARE JUST FINE FOR THE TERMINAL i USE, BUT YOU 
  32.  
  33. PROBABLY WILL WANT TO CHANGE THEM IN YOUR COPY OF THE PROGRAM.
  34.  
  35.  
  36.  
  37. hERE'S HOW:
  38.  
  39.  
  40.  
  41. fIRST, MAKE SURE YOU HAVE A COPY ( not YOUR ONLY COPY! ) OF me.com
  42.  
  43. ON YOUR CURRENT DISK AND USER AREA; MAKE SURE YOU HAVE zmecmds.lst,
  44.  
  45. me.sym, mapkeys.com, AND meconfig.com.
  46.  
  47.  
  48.  
  49. tAKE A LOOK AT zmecmds.lst, BUT DON'T CHANGE IT!
  50.  
  51. tHIS FILE CONTAINS A LIST OF THE NAMES OF ALL THE COMMANDS IN 
  52.  
  53. Z80EMACS, AND FOR EACH COMMAND THERE IS A NUMBER.
  54.  
  55.  
  56.  
  57. tHE COMMAND NAMES ARE IN THE FORMAT OF THE uecs ( uNIVERSAL eDITOR
  58.  
  59. cOMMAND sET ), VERSION 1.0; EACH NAME STARTS WITH A PREFIX
  60.  
  61. THAT ASSIGNS THE COMMAND TO A CLASS OF COMMANDS.
  62.  
  63.  
  64.  
  65. iN ORDER TO CUSTOMIZE THE BINDINGS, YOU WILL HAVE TO RUN TWO PROGRAMS, 
  66.  
  67. FIRST mapkeys.com AND THEN meconfig.com.
  68.  
  69.  
  70.  
  71. mapkeys.com WILL READ THE zmecmds.lst FILE AS PART OF ITS PROCESSING.
  72.  
  73. aNOTHER PART OF ITS PROCESSING WILL BE TO READ THE KEYBOARD, AND 
  74.  
  75. YOU'LL BE TYPING IN THESE NAMES. fORTUNATELY, YOU WON'T HAVE TO TYPE 
  76.  
  77. IN THE WHOLE NAME ( AS WE'LL SEE LATER ).
  78.  
  79.  
  80.  
  81. meconfig.com WILL READ A FILE PRODUCED BY mapkeys ( maptable.zme ),
  82.  
  83. WILL READ me.com AND me.sym, AND WILL WRITE THE NEW BINDINGS OUT TO me.
  84.  
  85. com. iT INSTALLS THE BINDINGS BY PATCHING THEM INTO THE PROGRAM.
  86.  
  87.  
  88.  
  89. ======================================================
  90.  
  91. =                                                    =
  92.  
  93. = using mapkeys.com                                  =
  94.  
  95. =                                                    =
  96.  
  97. ======================================================
  98.  
  99.  
  100.  
  101. aFTER YOU START mapkeys, IT WILL TELL YOU HOW MANY LINES IT READ FROM 
  102.  
  103. zmecmds.lst, AND THEN ASK YOU TO "eNTER A NAME: ".
  104.  
  105.  
  106.  
  107. iF YOU JUST HIT return, IT WILL LIST ALL THE COMMANDS, ONE SCREENFUL 
  108.  
  109. AT A TIME, WITH "[rETURN TO CONTINUE]".
  110.  
  111.  
  112.  
  113. tRY TYPING "WORD" AT THIS PROMPT ( LEAVE OUT THE QUOTES, HIT return 
  114.  
  115. AT THE END OF IT ). mapkeys WILL LIST FOR YOU ABOUT 9 COMMANDS THAT 
  116.  
  117. INCLUDE THE WORD "wORD", AND TELL YOU HOW MANY COMMANDS IT MATCHED.
  118.  
  119. nEAT STUFF, HUH?
  120.  
  121.  
  122.  
  123. iF YOU MANAGE TO MATCH EXACTLY ONE NAME, mapkeys WILL PROMPT YOU TO 
  124.  
  125. "eNTER A KEYSTROKE SEQUENCE: ".
  126.  
  127.  
  128.  
  129. yOU CAN JUST TYPE THE SEQUENCE THAT YOU WANT TO USE TO INVOKE THE 
  130.  
  131. COMMAND, AND THEN HIT return. tHIS IS EASY ENOUGH, BUT HOW DO YOU 
  132.  
  133. MAP SOMETHING TO return? OR TO linefeed?
  134.  
  135.  
  136.  
  137. aHA, THERE'S A TRICK! i FIGURED THAT YOU WOULDN'T WANT TO MAP THE
  138.  
  139. CARAT ( "^" ) TO ANYTHING ELSE ( IN FACT YOU CAN'T, AS i'LL EXPLAIN 
  140.  
  141. LATER WHEN i TELL YOU WHAT YOU can'T MAP ), SO:
  142.  
  143.  
  144.  
  145.     iF YOU TYPE "^m" ( A CARAT AND AN m ), mapkeys INTERPRETS IT
  146.  
  147.     AS MEANING ^m ( CONTROL-m, OR CARRIAGE RETURN ).
  148.  
  149.  
  150.  
  151. aT THE "eNTER A KEYSTROKE SEQUENCE: " PROMPT, IF YOU DON'T WANT TO 
  152.  
  153. MAKE A NEW MAPPING FOR THIS COMMAND AFTER ALL, JUST HIT return RIGHT 
  154.  
  155. AWAY.
  156.  
  157.  
  158.  
  159. tHERE'S ONE MORE TRICK YOU NEED TO KNOW ABOUT: HOW TO unmap A KEY!
  160.  
  161.  
  162.  
  163. tHE PROBLEM IS THIS: THERE IS A PREDEFINED AMOUNT OF SPACE ALLOCATED 
  164.  
  165. FOR THE COMMAND DISPATCH TABLES. iF YOU MAP ^j TO SOMETHING, meconfig
  166.  
  167. WILL SEE THAT ^j USED TO BE MAPPED TO SOMETHING ELSE, AND WILL 
  168.  
  169. FREE UP THE SLOT IN THE TABLE THAT WAS USED BY THE OLD MAPPING.
  170.  
  171.  
  172.  
  173. bUT, IF YOU MAP ^x^j TO SOMETHING, YOU'VE USED UP ONE OF THE EMPTY 
  174.  
  175. SLOTS! sUPPOSE YOU MAP IT TO ec-wORD-fORW; meconfig DOES not ASSUME 
  176.  
  177. THAT YOU WANT TO UNMAP ^f; IT'S LEGITIMATE TO HAVE MORE THAN ONE 
  178.  
  179. SEQUENCE BOUND TO THE SAME COMMAND!
  180.  
  181.  
  182.  
  183. tO KEEP FROM RUNNING OUT OF SLOTS IN THE TABLE, YOU MAY HAVE TO 
  184.  
  185. EXPLICITLY unmap SOME SEQUENCES BY MAPPING THEM TO
  186.  
  187. "uNDEFINED-fUNCTION".
  188.  
  189.  
  190.  
  191. ======================================================
  192.  
  193. =                                                    =
  194.  
  195. = what's a "sequence"; what you can't do             =
  196.  
  197. =                                                    =
  198.  
  199. ======================================================
  200.  
  201.  
  202.  
  203. iN THE STANDARD EMACS COMMAND-SPACE, THERE ARE 384 POSSIBLE
  204.  
  205. SEQUENCES OF KEYSTROKES THAT COULD BE MAPPED TO COMMANDS.
  206.  
  207. ( BUT ONLY 382 SEQUENCES ).
  208.  
  209.  
  210.  
  211. fIRST OF ALL, THERE ARE THE 128 NORMAL ascii CHARACTERS.
  212.  
  213. iN ANY PROPER EMACS, THEY ARE ALL MAPPABLE; BUT IN ORDER TO BE
  214.  
  215. ABLE TO KEEP UP WITH YOUR FLYING FINGERS, Z80EMACS HAD TO MAKE 
  216.  
  217. A FEW COMPROMISES; FOUR SPECIAL CHARACTERS, ^u, ^\, ^x, AND escape,
  218.  
  219. ARE HARDCODED IN THE PROGRAM, AND CAN'T BE REASSIGNED
  220.  
  221. ( THIS DEFECT CAME WITH THE ORIGINAL MICROEMACS CODE ),
  222.  
  223. AND THE PRINTABLE CHARACTERS ARE ALL FORCED TO BE SELF-INSERTING
  224.  
  225. ( TYPE AN 'a', GET AN 'a' IN THE FILE ).
  226.  
  227.  
  228.  
  229. sECONDLY, THERE ARE 128 "META-CHARACTERS", WHICH YOU TYPE BY 
  230.  
  231. HITTING escape AND THEN HITTING ANY OF THE 128 NORMAL ascii 
  232.  
  233. CHARACTERS.
  234.  
  235.  
  236.  
  237. tHIRD AND LAST, THERE ARE 128 "CONTROL-x" CHARACTERS, THAT YOU 
  238.  
  239. ENTER BY HITTING ^x AND THEN SOMETHING ELSE.
  240.  
  241.  
  242.  
  243. bY THE WAY, LHE OTHER SPECIAL CHARACTERS i MENTIONED,
  244.  
  245. CONTROL-u AND CONTROL-\, ARE USED WHEN YOU WANT TO START TYPING IN
  246.  
  247. A NUMERICAL ARGUMENT TO FEED TO THE NEXT REGULAR COMMAND.
  248.  
  249.  
  250.  
  251. tHUS, THERE ARE 284 DIFFERENT COMMAND SEQUENCES THAT CAN BE 
  252.  
  253. REMAPPED, WHICH MAKES Z80EMACS PRETTY WELL CUSTOMIZABLE, THOUGH
  254.  
  255. NOT PERFECTLY SO.
  256.  
  257.  
  258.  
  259. tHERE ARE ONLY 67 OR SO COMMANDS THAT YOU CAN ASSIGN TO THESE 
  260.  
  261. 380 COMMAND SEQUENCES, SO MOST SEQUENCES WILL BE UNDEFINED.
  262.  
  263. tHE COMMAND SPACE IS MUCH LARGER THAN THE NUMBER OF COMMANDS, SO 
  264.  
  265. MULTIPLE MAPPINGS ARE SENSIBLE; A MULTIPLE MAPPING IS WHERE YOU 
  266.  
  267. HAVE TWO OR MORE SEQUENCES BOUND TO THE SAME COMMAND, IN OTHER WORDS, 
  268.  
  269. MORE THAN ONE WAY TO DO THE SAME THING.
  270.  
  271.  
  272.  
  273. oNLY 4 OF THE COMMANDS ARE BUILT IN TO THE ROOT SEGMENT, AND ALWAYS 
  274.  
  275. STAY IN MEMORY: ^g ( ci-aBORT-cANCEL ), RIGHT ARROW, LEFT ARROW, AND
  276.  
  277. SELF-INSERT; SELF-INSERT ISN'T IN THE INTERNAL DISPATCH TABLE,
  278.  
  279. AND THERE IS ONLY ONE FREE SLOT IN THIS TABLE
  280.  
  281. ( THIS IS RELEVANT TO THE DISCUSSION ABOUT RUNNING OUT OF SLOTS; SEE ABOVE ).
  282.  
  283.  
  284.  
  285. aLL THE OTHER COMMANDS LIVE IN OVERLAYS, AND THEIR DISPATCH TABLE HAS 
  286.  
  287. 5 EXTRA ENTRIES. a FEW COMMANDS ALREADY HAVE MULTIPLE SEQUENCES IN
  288.  
  289. THE DEFAULT MAPPING ( THIS IS BECAUSE SOME ascii TEMINALS SEND ^j 
  290.  
  291. FOR DOWN-ARROW, BUT OTHERS SEND ^v ).
  292.  
  293.  
  294.  
  295. iF YOU'RE RUNNING OUT OF SPACE IN THE OVERLAY DISPATCH TABLE BECAUSE 
  296.  
  297. YOU ARE MAKING LOTS OF MULTIPLE MAPPINGS, THERE ARE COMMANDS YOU CAN 
  298.  
  299. GET RID OF:
  300.  
  301. "DEBLANK", 
  302.  
  303. "LOWERCASE REGION", "UPPERCASE REGION",
  304.  
  305. "PREVIOUS WINDOW" ( "NEXT WINDOW" IS GOOD ENOUGH, YOU WON'T HAVE SO 
  306.  
  307. MANY WINDOWS THAT YOU NEED A "PREVIOUS WINDOW" COMMAND ), 
  308.  
  309. "SHRINK WINDOW" ( YOU CAN ALWAYS CHANGE TO THE OTHER WINDOW AND ENLARGE IT ), 
  310.  
  311. "SCROLL DOWN WINDOW" ( YOU CAN HIT ^\^x^k, "SCROLL UP" WITH A NEGATIVE 
  312.  
  313. PARAMETER ),
  314.  
  315. "SCROLL UP WINDOW" ( TO SAVE SPACE, Z80EMACS DOESN'T DO FANCY SCREEN 
  316.  
  317. UPDATING, SO THE SCROLLING COMMANDS AREN'T TOO GREAT ),
  318.  
  319. "CAPITALIZE WORD", "LOWERCASE WORD", "UPPERCASE WORD".
  320.  
  321.  
  322.  
  323. ======================================================
  324.  
  325. =                                                    =
  326.  
  327. = choosing a mapping; why the default is so awful    =
  328.  
  329. =                                                    =
  330.  
  331. ======================================================
  332.  
  333.  
  334.  
  335. iF YOU'RE USED TO ANY OF THE SEVERAL STANDARD INCOMPATIBLE
  336.  
  337. FORMS OF EMACS, THE DEFAULT MAPPING IS AWFUL BECAUSE IT ISN'T
  338.  
  339. LIKE THE ONE YOU'RE USED TO.
  340.  
  341.  
  342.  
  343. tHE DEFAULT MAPPING IS A COMPROMISE BETWEEN A NEWFANGLED 
  344.  
  345. "THEORETICALLY BEST" MAPPING i ALMOST FINISHED WORKING OUT,
  346.  
  347. AND AN OLDFASHIONED DESIRE TO BE ABLE TO USE ALL THE FANCY
  348.  
  349. KEYS ON THE TERMINAL i USED WHILE DEVELOPING Z80EMACS.
  350.  
  351. i SHOULD CLEAN THIS UP, OF COURSE...
  352.  
  353.  
  354.  
  355. tHE COMMANDS LABELED zmap IN "MAPPING.H" ARE THEORETICAL;
  356.  
  357. THE THEORETICAL MAPPING IS A COMPROMISE BETWEEN ERGONOMICS
  358.  
  359. ( FREQUENTLY-USED COMMANDS ARE EASY TO TYPE, A CONSIDERATION
  360.  
  361. THAT MOST EMACS COMMAND SETS OVERLOOKED; FOR EXAMPLE, MOST 
  362.  
  363. EMACSES USE m-F FOR WORD FORWARDS, m-V FOR PAGE BACK ), 
  364.  
  365. AND MNEMONICS ( LESS-OFTEN-USED COMMANDS TRY TO BE EASIER TO 
  366.  
  367. REMEMBER ).
  368.  
  369.  
  370.  
  371. tHE COMMANDS WITH tvi IN THEIR COMMENTS ARE BASED ON MY FUNCTION 
  372.  
  373. KEYS.
  374.  
  375.  
  376.  
  377. sEVERAL USEFUL CONTROL KEYS WERE LEFT UNMAPPED: 
  378.  
  379.  
  380.  
  381. ^a BECAUSE i THOUGHT i MIGHT PUT IN "MAGIC MODE", SO i COULD USE 
  382.  
  383. THE funct KEY ON MY TERMINAL,
  384.  
  385.  
  386.  
  387. ^q AND ^s BECAUSE LOTS OF TERMINALS EAT THESE,
  388.  
  389. ( IF YOU CAN USE ^q, PLEASE DON'T MAKE IT "QUOTE" AS EMACS DOES;
  390.  
  391. IT'S SO STUPID TO USE UP AN EASY-TO-TYPE CHARACTER FOR A 
  392.  
  393. RARELY-USED COMMAND ),
  394.  
  395.  
  396.  
  397. ^w SHOULD PROBABLY BE ZMAP FOR DELETE-WORD-FORWARD,
  398.  
  399.  
  400.  
  401. ^] AND ^_ COULD BE USED FOR ANYTHING YOU WANT.
  402.  
  403.  
  404.  
  405. tO CHOOSE YOUR OWN MAPPING, i RECOMMEND THAT YOU TRY KEEPING zmap
  406.  
  407. COMMANDS AS THEY ARE, AND REMAP THE tvi COMMANDS TO WHATEVER YOUR 
  408.  
  409. TERMINAL DOES.
  410.  
  411.  
  412.  
  413. oF COURSE, IF YOUR TERMINAL SENDS ^[[a FOR UP-ARROW, YOU'RE OUT OF 
  414.  
  415. LUCK. iF THERE'S EVER ANOTHER RELEASE, THIS SHOULD BE FIXED.
  416.  
  417.  
  418.  
  419. ======================================================
  420.  
  421. =                                                    =
  422.  
  423. = printing out what mapping you installed            =
  424.  
  425. =                                                    =
  426.  
  427. ======================================================
  428.  
  429.  
  430.  
  431. tHERE SHOULD BE A PROGRAM TO READ me.com AND REPORT ON THE 
  432.  
  433. INSTALLED MAPPING; THERE ISN'T.
  434.  
  435.  
  436.  
  437. hAVE FUN,
  438.  
  439.  
  440.  
  441. rALPH bETZA,oCTOBER 4, 1991
  442.  
  443.  
  444.  
  445.