⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 internal.el

📁 windows版本的emacs
💻 EL
📖 第 1 页 / 共 2 页
字号:
;;; internal.el --- support for PC internal terminal -*- coding: raw-text; -*-;; Copyright (C) 1993, 1994, 1998, 1999, 2001 Free Software Foundation, Inc.;; Author: Morten Welinder <terra@diku.dk>;; This file is part of GNU Emacs.;; GNU Emacs is free software; you can redistribute it and/or modify;; it under the terms of the GNU General Public License as published by;; the Free Software Foundation; either version 2, or (at your option);; any later version.;; GNU Emacs is distributed in the hope that it will be useful,;; but WITHOUT ANY WARRANTY; without even the implied warranty of;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License;; along with GNU Emacs; see the file COPYING.  If not, write to the;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,;; Boston, MA 02111-1307, USA.;;; Commentary:;;; Code:;; ---------------------------------------------------------------------------;; keyboard setup -- that's simple!(set-input-mode nil nil 0)(define-key function-key-map [backspace] "\177") ; Normal behaviour for BS(define-key function-key-map [delete] "\C-d")    ; ... and Delete(define-key function-key-map [tab] [?\t])(define-key function-key-map [linefeed] [?\n])(define-key function-key-map [clear] [11])(define-key function-key-map [return] [13])(define-key function-key-map [escape] [?\e])(define-key function-key-map [M-backspace] [?\M-\d])(define-key function-key-map [M-delete] [?\M-d])(define-key function-key-map [M-tab] [?\M-\t])(define-key function-key-map [M-linefeed] [?\M-\n])(define-key function-key-map [M-clear] [?\M-\013])(define-key function-key-map [M-return] [?\M-\015])(define-key function-key-map [M-escape] [?\M-\e])(put 'backspace 'ascii-character 127)(put 'delete 'ascii-character 127)(put 'tab 'ascii-character ?\t)(put 'linefeed 'ascii-character ?\n)(put 'clear 'ascii-character 12)(put 'return 'ascii-character 13)(put 'escape 'ascii-character ?\e);; ----------------------------------------------------------------------;;   DOS display setup;;   =================;;;;   DOS can only support a single font.  On most systems (with the;;   possible exception of Far Eastern DOS versions), this means that;;   two character sets are available at any given time: the ASCII;;   charset, and a single national charset, usually mapped to codes;;   above 128 (i.e., with 8th bit set).  Which national charset is;;   supported depends on the codepage loaded by the system when it;;   boots; usually, this codepage cannot be changed without;;   rebooting.;;;;   Since each codepage can usually display character of a single;;   MULE charset, Emacs can display a single MULE charset with the;;   glyphs of the current codepage.  The mapping from DOS codepages;;   to MULE charsets is established by the charset property of the;;   cpNNN-decode-table variables in codepage.el, which also;;   defines translation tables for each such pair, and a bunch of;;   functions to generate coding systems that use those translation;;   tables to convert codepage-encoded text to the appropriate MULE;;   charset and back.  When Emacs starts on DOS, it automatically;;   sets its default coding systems for file I/O and terminal output;;   according to the currend DOS codepage, given by the;;   `dos-codepage' variable.;;;;   This leaves us with the problem of displaying character sets;;   other than the one which maps directly into the current codepage.;;   The following functions and variables handle this nuisance by;;   defining a display table where each character that doesn't have a;;   glyph in some codepage is mapped to a string which represents it.;;   For example, a small c with cedilla is mapped to the string;;   "{,c}" (the braces serve as a sign that this is a single;;   character).  A nice feature of the display tables is that Emacs;;   knows that the string represents a single character, and thus;;   cursor motion works as you'd expect: a single `C-f' moves past;;   the entire string which represents a single character.;; ----------------------------------------------------------------------(defvar IT-character-translations  '(    (latin-iso8859-1     . [255 "!I" "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"        "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"	"'" "u" ".P" "^." "'," "^1" "_o" ">>" "1/4" "1/2"	"3/4" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"	"`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "-D" "~N"	"`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"	"\"U" "Y'" "-P" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"	"ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"	"-d" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"	"u'" "u^" "\"u" "y'" "-p" "\"y"]     )    (latin-iso8859-2     . [255 "A;" "'(" "/L" "$$" "L<" "S'" "SE" "\"" "S<"	",S" "T<" "Z'" "--" "Z<" "Z^." "^o" "a;" "';" "/l"	"'" "l<" "s'" "'<" "'," "s<" ",s" "t<" "z'" "'"	"z<" "z^." "R'" "A'" "A^" "A(" "\"A" "L'" "C'" ",C"	"C<" "E'" "E;" "E:" "E<" "I'" "I^" "D<" "/D" "N'"	"N<" "O'" "O^" "O''" "\"O" "*x" "R<" "U^0" "U'" "U''"	"\"U" "Y'" ",T" "ss" "r'" "a'" "a^" "a(" "\"a" "l'"	"c'" ",c" "c<" "e'" "e;" "\"e" "e<" "i'" "i^" "d<"	"/d" "n'" "n<" "o'" "o^" "o''" "\"o" "-:" "r<" "u^0"	"u'" "u''" "\"u" "y'" ",t" "'."]     )    (latin-iso8859-3     . [255 "/H" "'(" "Pd" "$$" " " "H^" "SE" "\"" "I^."	",S" "G(" "J^" "--" " " "Z^." "^o" "/h" "^2" "^3"	"'" "u" "h^" "." "'," "i^." ",s" "g(" "j^" "1/2"	" " "z^." "`A" "A'" "A^" " " "\"A" "C^." "C^" ",C"	"`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" " " "~N"	"`O" "O'" "O^" "G^." "\"O" "*x" "G^" "`U" "U'" "U^"	"\"U" "U(" "S^" "ss" "`a" "a'" "a^" " " "\"a" "c^."	"c^" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"	" " "~n" "`o" "o'" "o^" "g^." "\"o" "-:" "g^" "`u"	"u'" "u^" "\"u" "u(" "s^" "^."]     )    (latin-iso8859-4     . [255 "A;" "kk" ",R" "$$" "?I" ",L" "SE" "\"" "S<"	"E-" ",G" "/T" "--" "Z<" "'-" "^o" "a;" "';" ",r"	"'" "~i" ",l" "'<" "'," "s<" "e-" ",g" "/t" "NG"	"z<" "ng" "A-" "A'" "A^" "~A" "\"A" "Ao" "AE" "I;"	"C<" "E'" "E;" "\"E" "E^." "I'" "I^" "I-" "/D" ",N"	"O-" ",K" "O^" "~O" "\"O" "*x" "/O" "U;" "U'" "U^"	"\"U" "~U" "U-" "ss" "a-" "a'" "a^" "~a" "\"a" "ao"	"ae" "i;" "c<" "e'" "e;" "\"e" "e^." "i'" "i^" "i-"	"/d" ",n" "o-" ",k" "o^" "~o" "\"o" "-:" "/o" "u;"	"u'" "u^" "\"u" "~u" "u-" "^."]     )    (cyrillic-iso8859-5     . [255 "\"E" "Dj" "Gj" "IE" "Dz" "Ii" "Ji" "JE" "Lj"	"Nj" "Ts" "Kj" 240 "V%" "Dzh"  65  "B="  66 226	68  69  "Z%"  51  85 "J="  75 "L="  77  72	79  "P="  80  67  84  89 232  88 "C=" "C%"	"S%" "Sc" "=\"" "Y=" "%\"" "Ee" "Yu" "Ya" 97  98	"v=" "g=" 103 101 "z%" "z=" 117 "j=" 107 "l="	"m=" "n=" 111 110 112 99 "t=" 121 "f=" 120	"c=" "c%" "s%" "sc" "='" "y=" "%'" "ee" "yu" "ya"	"N0" "\"e" "dj" "gj" "ie" "dz" "ii" "ji" "je" "lj"	"nj" "ts" "kj"  21 "v%" "dzh"]     )    (arabic-iso8859-6     . [255 nil nil nil "$$" nil nil nil nil nil	nil nil ",+" "--" nil nil nil nil nil nil	nil nil nil nil nil nil nil ";+" nil nil	nil "?+" nil "H'" "aM" "aH" "wH" "ah" "yH"	"a+" "b+" "tm" "t+" "tk" "g+" "hk" "x+" "d+" "dk"	"r+" "z+" "s+" "sn" "c+" "dd" "tj" "zH" "e+" "i+"	nil nil nil nil nil "++" "f+" "q+" "k+" "l+"	"m+" "n+" "h+" "w+" "j+" "y+" ":+" "\"+" "=+" "/+"	"'+" "1+" "3+" "0+" nil nil nil nil nil nil	nil nil nil nil nil nil nil]     )    (greek-iso8859-7     . [255 "9'" "'9" "Pd" nil nil "|" "SE" "\"" "(c)"	nil "<<" "~" "--" nil "-M" "^o" "+-" "^2" "^3"	"'" "'%" "'A" "^." "'E" "'H" "'I" ">>" "'O" "1/2"	"'Y" "W%" "i3" 65 66 "G*" "D*" 69 90 72	"TH" 73 74 "L*" 77 78 "C*" 79 "P*" 80	nil "S*" 84 89 "F*" 88 "Q*" "W*" "\"I" "\"Y"	"a%" "e%" "y%" "i%" "u3" "a*" "b*" "g*" "d*" "e*"	"z*" "y*" "h*" "i*" 107 "l*" "m*" "n*" "c*" 111	"p*" "r*" "*s" "s*" "t*" 117 "f*" "x*" "q*" "w*"	"\"i" "\"u" "'o" "'u" "'w" nil]     )    ;; Note: some of the characters undefined according to ISO 8859-8    ;; in the ranges 190..220 and 250..255 are replaced with SI 1311-1    ;; points (Niqud) and bidi formatting characters    (hebrew-iso8859-8     . [255 nil "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"	"*x" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"	"'" "u" ".P" "^." "'," "^1" "-:" ">>" "1/4" "1/2"	"3/4" nil ":'" "v:" "-:" "-':" ".'" ".." "v'" "-'"	"-," "`." nil "\\." "(.)" "|'" "`-" nil "||" nil	nil "::" nil nil nil nil nil nil nil "LRO"	"RLO" "PDF" nil "=2" "A+" "B+" "G+" "D+" "H+" "W+"	"Z+" "X+" "Tj" "J+" "K%" "K+" "L+" "M%" "M+" "N%"	"N+" "S+" "E+" "P%" "P+" "Zj" "ZJ" "Q+" "R+" "Sh"	"T+" "LRE" "RLE" "LRM" "RLM" nil]     )    (latin-iso8859-9     . [255 "!I" "|c" "Pd" "$$" "Ye" "|" "SE" "\"" "(c)"        "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"	"'" "u" ".P" "^." "'," "^1" "_o" ">>" "1/4" "1/2"	"3/4" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"	"`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "G(" "~N"	"`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"	"\"U" "I^." ",S" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"	"ae" ",c" "`e" "e'" "e<" "\"e" "e^." "i'" "i^" "i-"	"g(" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"	"u'" "u^" "\"u" "i." ",s" "\"y"]     )    (latin-iso8859-14     . [255 "B`" "b`" "Pd" "C`" "c`" "D`" "SE" "`W" "(c)"	"W'" "d`" "`Y" "--" "(R)" "\"Y" "F`" "f`" "G`" "g`"	"M`" "m`" ".P" "P`" "`w" "p`" "w'" "S`" "`y" "\"W"	"\"w" "s`" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"	"`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "W^" "~N"	"`O" "O'" "O^" "~O" "\"O" "T`" "/O" "`U" "U'" "U^"	"\"U" "Y'" "Y^" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"	"ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"	"w^" "~n" "`o" "o'" "o^" "~o" "\"o" "t`" "/o" "`u"	"u'" "u^" "\"u" "y'" "y^" "\"y"]    )    (latin-iso8859-15     . [255 "!I" "|c" "Pd" "E=" "Ye" "S<" "SE" "s<" "(c)"        "_a" "<<" "~" "--" "(R)" "'-" "^o" "+-" "^2" "^3"	"Z<" "u" ".P" "^." "z<" "^1" "_o" ">>" "OE" "oe"	"\"Y" "?I" "`A" "A'" "A^" "~A" "\"A" "Ao" "AE" ",C"	"`E" "E'" "E^" "\"E" "`I" "I'" "I^" "\"I" "-D" "~N"	"`O" "O'" "O^" "~O" "\"O" "*x" "/O" "`U" "U'" "U^"	"\"U" "Y'" "|P" "ss" "`a" "a'" "a^" "~a" "\"a" "ao"	"ae" ",c" "`e" "e'" "e^" "\"e" "`i" "i'" "i^" "\"i"	"-d" "~n" "`o" "o'" "o^" "~o" "\"o" "-:" "/o" "`u"	"u'" "u^" "\"u" "y'" "|p" "\"y"]     )    )  "An alist of MULE ISO-8859 character sets and the strings thatshould be used to represent the characters from each set on a DOSterminal which does not have corresponding glyphs built into theinstalled codepage.")(defun IT-display-table-setup (codepage &optional table)  "Set up display table TABLE for a DOS terminal which supportsglyphs built into the codepage CODEPAGE.If TABLE is nil or omitted, `standard-display-table' is used."  (let* ((surrogates IT-character-translations)	 (disp-tab (or table standard-display-table))	 (built-in-set (cp-charset-for-codepage codepage))	 (offset (cp-offset-for-codepage codepage))	 (cp-decoder	  (symbol-value (intern-soft (format "%s-decode-table" codepage))))	 (cp-decoder-len (length cp-decoder))	 (c offset)	 association chset)    ;; Undo the effects of previous call (where they may have used    ;; a different codepage) by reverting the display table for the    ;; built-in charset to its pristine shape.    (while (< c 256)      (aset disp-tab (make-char built-in-set c) nil)      (setq c (1+ c)))    (while surrogates      (setq association (car surrogates))      (setq chset (car association))      (let* ((vector (cdr association))	     (veclen (length vector))	     (i 0)	     glyph)	(while (< i veclen)	  (setq glyph (aref vector i))	  (or glyph (setq glyph dos-unsupported-char-glyph))	  (if (or (not (equal chset built-in-set))		  (>= i cp-decoder-len)		  (null (aref cp-decoder i)))	      (aset disp-tab (make-char chset (+ i (logand offset 127)))		    (vconcat		     (if (numberp glyph)			 (char-to-string glyph)		       (if (> (length glyph) 1) (concat "{" glyph "}")			 glyph)))))	  (setq i (1+ i))))      (setq surrogates (cdr surrogates)))))(defvar IT-unicode-translations  '(    (mule-unicode-0100-24ff		; charset     256				; base     256 563				; first, last     [ "A-" "a-" "A(" "a(" "A;" "a;" "C'" "c'" "C>" "c>" ; Latin Extended-A       "C." "c." "C<" "c<" "D<" "d<" "D/" "d/" "E-" "e-"       "E(" "e(" "E." "e." "E;" "e;" "E<" "e<" "G>" "g>"       "G(" "g(" "G." "g." "G," "g," "H>" "h>" "H/" "h/"       "I~" "i~" "I-" "i-" "I(" "i(" "I;" "i;" "I." "i."       "IJ" "ij" "J>" "j>" "K," "k," "kk" "L'" "l'" "L,"       "l," "L<" "l<" "L." "l." "L/" "l/" "N'" "n'" "N,"       "n," "N<" "n<" "'n" "NG" "ng" "O-" "o-" "O(" "o("       "O\"" "o\"" "OE" "oe" "R'" "r'" "R," "r," "R<" "r<"       "S'" "s'" "S>" "s>" "S," "s," "S<" "s<" "T," "t,"       "T<" "t<" "T/" "t/" "U~" "u~" "U-" "u-" "U(" "u("       "U0" "u0" "U\"" "u\"" "U;" "u;" "W>" "w>" "Y>" "y>"       "Y:" "Z'" "z'" "Z." "z." "Z<" "z<" "s1"                ; 017f       "b/" "B2" "=B" "=b" "B6" "b6" "!C" "C2" "c2" "-D" ;Lat. Extended-B       "D2" "=D" "=d" "!d" "!E" "-E" "Eps" "F2" "f2" "G2"       "V0" "hv" "io" "-I" "K2" "k2" "-l"  "la-" "!M" "2N"       "n_" "-O" "O9" "o9" "OI" "oi" "P2" "p2" "'R" "!S"       "!s" "Esh" "!esh" "t~" "T2" "t2" "T~" "U9" "u9" "Ups"       "V2" "Y2" "y2" "Z/" "z/" "ED" "!ED" "!ed" "ed;" "2/"       "5-" "_5-" "ts" "wn" "|_" "||" "|=" "!_" "DZ<" "Dz<"       "dz<" "LJ3" "Lj3" "lj3" "NJ3" "Nj3" "nj3" "A<" "a<" "I<"       "i<" "O<" "o<" "U<" "u<" "U:-" "u:-" "U:'" "u:'" "U:<"       "u:<" "U:!" "u:!" "e1" "A:-" "a:-" "A.-" "a.-" "AE-" "ae-"       "G/" "g/" "G<" "g<" "K<" "k<" "O;" "o;" "O1" "o1"       "EZ" "ez" "j<" "DZ3" "Dz3" "dz3" "G'" "g'" "Hv" "Wn"       "N`" "n`" "AA'" "aa'" "AE'" "ae'" "O/'" "o/'" "A!!" "a!!"       "A)" "a)" "E!!" "e!!" "E)" "e)" "I!!" "i!!" "I)" "i)"       "O!!" "o!!" "O)" "o)" "R!!" "r!!" "R)" "r)" "U!!" "u!!"       "U)" "u)" ",S" ",s" ",T" ",t" "'3" "'3_" "H<" "h<"       nil nil "8" "8_" "Z2" "z2" "A." "a." "E," "e,"       "O:-" "o:-" "O~-" "o~-" "O." "o." "O.-" "o.-" "Y-" "y-"] ; 0x233     )    (mule-unicode-0100-24ff		; charset     256				; base     884 1123				; first, last     [ "'" "," nil nil nil nil "j3" nil nil nil        ; Greek       "?;" nil nil nil nil nil "'*" "'%" "A%" ".*"       "E%" "Y%" "I%" nil "O%" nil "U%" "W%" "i3" "A*"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -