没有合适的资源?快使用搜索试试~ 我知道了~
首页GNU Emacs Lisp 参考手册
"GNU Emacs Lisp Preference Manual In English"
这篇资源是关于GNU Emacs Lisp参考手册的英文版,适用于Emacs版本25.2。该手册由Bil Lewis、Dan LaLiberte、Richard Stallman以及GNU手册小组等人编写,修订版为3.1,发布于2014年10月。手册内容详细介绍了GNU Emacs中的Lisp编程语言,包括其数据类型、函数、宏和其他关键概念,对于学习和使用GNU Emacs的用户来说是一本经典推荐书籍。
Emacs Lisp(也称为Elisp)是GNU Emacs编辑器内置的脚本语言,它允许用户自定义和扩展编辑器的功能。手册的章节涵盖了以下主要知识点:
1. **介绍**:这部分可能包含Emacs Lisp的基础知识,解释了为什么需要学习Emacs Lisp以及如何开始使用它来增强Emacs的体验。可能还会介绍Emacs的哲学和Lisp语言在其中的角色。
2. **Lisp数据类型**:Lisp语言拥有丰富的数据结构,如符号(symbol)、列表(list)、字符串(string)、数字(number)、向量(vector)等。这一章会详细介绍这些数据类型以及它们的操作,如创建、访问和修改。
3. **控制结构**:涵盖条件语句(如if、when、unless)、循环(do、dotimes、dolist)、递归等,这些都是编程中不可或缺的部分。
4. **函数与宏**:Emacs Lisp中函数是第一类对象,可以作为参数传递,也可以存储在变量中。宏则用于代码的抽象和扩展,它们在编译时执行,生成新的Lisp代码。
5. **变量与绑定**:包括局部变量、全局变量、动态绑定和静态绑定的概念,以及如何使用let、setq等命令来操作它们。
6. **对象与类**:Emacs Lisp支持面向对象编程,包括定义类、对象实例化、方法调用等。
7. **事件处理与交互**:Emacs作为一个交互式的文本编辑器,其Lisp代码经常需要处理用户输入和事件。这一部分会讲解如何响应用户操作,编写交互式功能。
8. **调试与错误处理**:介绍如何调试Elisp代码,以及如何处理和捕获运行时错误。
9. **包与模块系统**:Emacs有一个强大的模块系统,允许组织和导入代码。这一章将解释如何使用use-package或其他机制来管理代码库。
10. **与其他Emacs功能的集成**:Emacs有许多内置功能,如缓冲区(buffer)、窗口(window)、框架(frame)等。手册会展示如何通过Lisp与这些功能进行交互。
购买此PDF版本的读者不仅可以获得清晰易读的文本,还可以直接复制和粘贴内容,方便学习和引用。此外,手册遵循GNU Free Documentation License,这意味着你可以自由地复制、分发和修改文档,支持了自由软件的发展和推广。
《GNU Emacs Lisp Reference Manual》是Emacs用户和开发者的重要参考资料,无论你是初学者还是经验丰富的程序员,都能从中受益匪浅,深入理解Emacs的强大定制能力。

xiv
24.8.7 Standard File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
24.9 Contents of Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
24.10 Creating, Copying and Deleting Directories . . . . . . . . . . . . . . . . . 529
24.11 Making Certain File Names “Magic” . . . . . . . . . . . . . . . . . . . . . . . 529
24.12 File Format Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
24.12.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
24.12.2 Round-Trip Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
24.12.3 Piecemeal Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
25 Backups and Auto-Saving. . . . . . . . . . . . . . . . . . . 539
25.1 Backup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
25.1.1 Making Backup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
25.1.2 Backup by Renaming or by Copying? . . . . . . . . . . . . . . . . . . . 541
25.1.3 Making and Deleting Numbered Backup Files . . . . . . . . . . . 542
25.1.4 Naming Backup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
25.2 Auto-Saving. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
25.3 Reverting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
26 Buffers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
26.1 Buffer Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
26.2 The Current Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
26.3 Buffer Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
26.4 Buffer File Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
26.5 Buffer Modification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
26.6 Buffer Modification Time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
26.7 Read-Only Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
26.8 The Buffer List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
26.9 Creating Buffers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
26.10 Killing Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
26.11 Indirect Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
26.12 Swapping Text Between Two Buffers . . . . . . . . . . . . . . . . . . . . . . . 565
26.13 The Buffer Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
27 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
27.1 Basic Concepts of Emacs Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 567
27.2 Windows and Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
27.3 Window Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
27.4 Resizing Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
27.5 Preserving Window Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
27.6 Splitting Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
27.7 Deleting Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
27.8 Recombining Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
27.9 Selecting Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
27.10 Cyclic Ordering of Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
27.11 Buffers and Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
27.12 Switching to a Buffer in a Window . . . . . . . . . . . . . . . . . . . . . . . . . 595
27.13 Choosing a Window for Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598

xv
27.14 Action Functions for display-buffer . . . . . . . . . . . . . . . . . . . . . . 599
27.15 Additional Options for Displaying Buffers . . . . . . . . . . . . . . . . . . 603
27.16 Window History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
27.17 Dedicated Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
27.18 Quitting Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
27.19 Windows and Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
27.20 The Window Start and End Positions . . . . . . . . . . . . . . . . . . . . . . 610
27.21 Textual Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
27.22 Vertical Fractional Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
27.23 Horizontal Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
27.24 Coordinates and Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
27.25 Window Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
27.26 Window Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
27.27 Hooks for Window Scrolling and Changes. . . . . . . . . . . . . . . . . . . 628
28 Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
28.1 Creating Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
28.2 Multiple Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
28.3 Frame Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
28.3.1 Frame Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
28.3.2 Frame Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
28.3.3 Size and Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
28.3.4 Implied Frame Resizing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
28.4 Frame Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
28.4.1 Access to Frame Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
28.4.2 Initial Frame Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
28.4.3 Window Frame Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
28.4.3.1 Basic Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
28.4.3.2 Position Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
28.4.3.3 Size Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
28.4.3.4 Layout Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
28.4.3.5 Buffer Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
28.4.3.6 Window Management Parameters. . . . . . . . . . . . . . . . . . 649
28.4.3.7 Cursor Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
28.4.3.8 Font and Color Parameters . . . . . . . . . . . . . . . . . . . . . . . . 651
28.4.4 Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
28.5 Terminal Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
28.6 Frame Titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
28.7 Deleting Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
28.8 Finding All Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
28.9 Minibuffers and Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
28.10 Input Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
28.11 Visibility of Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
28.12 Raising and Lowering Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
28.13 Frame Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
28.14 Mouse Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
28.15 Mouse Position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
28.16 Pop-Up Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662

xvi
28.17 Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
28.18 Pointer Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
28.19 Window System Selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
28.20 Drag and Drop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
28.21 Color Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
28.22 Text Terminal Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
28.23 X Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
28.24 Display Feature Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
29 Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
29.1 Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
29.2 Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
29.2.1 Motion by Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
29.2.2 Motion by Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
29.2.3 Motion to an End of the Buffer . . . . . . . . . . . . . . . . . . . . . . . . . 676
29.2.4 Motion by Text Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
29.2.5 Motion by Screen Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
29.2.6 Moving over Balanced Expressions . . . . . . . . . . . . . . . . . . . . . . 681
29.2.7 Skipping Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
29.3 Excursions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
29.4 Narrowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
30 Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
30.1 Overview of Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
30.2 Predicates on Markers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
30.3 Functions that Create Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
30.4 Information from Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
30.5 Marker Insertion Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
30.6 Moving Marker Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
30.7 The Mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
30.8 The Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
31 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
31.1 Examining Text Near Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
31.2 Examining Buffer Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
31.3 Comparing Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
31.4 Inserting Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
31.5 User-Level Insertion Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
31.6 Deleting Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
31.7 User-Level Deletion Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
31.8 The Kill Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
31.8.1 Kill Ring Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
31.8.2 Functions for Killing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
31.8.3 Yanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
31.8.4 Functions for Yanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
31.8.5 Low-Level Kill Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
31.8.6 Internals of the Kill Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711

xvii
31.9 Undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
31.10 Maintaining Undo Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
31.11 Filling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
31.12 Margins for Filling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
31.13 Adaptive Fill Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
31.14 Auto Filling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
31.15 Sorting Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
31.16 Counting Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
31.17 Indentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
31.17.1 Indentation Primitives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
31.17.2 Indentation Controlled by Major Mode . . . . . . . . . . . . . . . . 727
31.17.3 Indenting an Entire Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
31.17.4 Indentation Relative to Previous Lines . . . . . . . . . . . . . . . . . 729
31.17.5 Adjustable Tab Stops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
31.17.6 Indentation-Based Motion Commands . . . . . . . . . . . . . . . . . 730
31.18 Case Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
31.19 Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
31.19.1 Examining Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
31.19.2 Changing Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
31.19.3 Text Property Search Functions . . . . . . . . . . . . . . . . . . . . . . . 736
31.19.4 Properties with Special Meanings . . . . . . . . . . . . . . . . . . . . . . 738
31.19.5 Formatted Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
31.19.6 Stickiness of Text Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . 744
31.19.7 Lazy Computation of Text Properties. . . . . . . . . . . . . . . . . . 745
31.19.8 Defining Clickable Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
31.19.9 Defining and Using Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
31.19.10 Why Text Properties are not Intervals . . . . . . . . . . . . . . . . 750
31.20 Substituting for a Character Code . . . . . . . . . . . . . . . . . . . . . . . . . . 751
31.21 Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
31.22 Transposition of Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
31.23 Dealing With Compressed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
31.24 Base 64 Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
31.25 Checksum/Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
31.26 Parsing HTML and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
31.26.1 Document Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
31.27 Atomic Change Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
31.28 Change Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
32 Non-ASCII Characters . . . . . . . . . . . . . . . . . . . . . . 761
32.1 Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
32.2 Disabling Multibyte Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
32.3 Converting Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
32.4 Selecting a Representation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
32.5 Character Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
32.6 Character Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
32.7 Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
32.8 Scanning for Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
32.9 Translation of Characters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772

xviii
32.10 Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
32.10.1 Basic Concepts of Coding Systems. . . . . . . . . . . . . . . . . . . . . 774
32.10.2 Encoding and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
32.10.3 Coding Systems in Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
32.10.4 User-Chosen Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . . . 779
32.10.5 Default Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
32.10.6 Specifying a Coding System for One Operation . . . . . . . . 783
32.10.7 Explicit Encoding and Decoding . . . . . . . . . . . . . . . . . . . . . . . 784
32.10.8 Terminal I/O Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
32.11 Input Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
32.12 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
33 Searching and Matching . . . . . . . . . . . . . . . . . . . . 790
33.1 Searching for Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
33.2 Searching and Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
33.3 Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
33.3.1 Syntax of Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 793
33.3.1.1 Special Characters in Regular Expressions . . . . . . . . . 793
33.3.1.2 Character Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
33.3.1.3 Backslash Constructs in Regular Expressions . . . . . . . 798
33.3.2 Complex Regexp Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
33.3.3 Regular Expression Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 802
33.4 Regular Expression Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
33.5 POSIX Regular Expression Searching. . . . . . . . . . . . . . . . . . . . . . . . 806
33.6 The Match Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
33.6.1 Replacing the Text that Matched . . . . . . . . . . . . . . . . . . . . . . . 807
33.6.2 Simple Match Data Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
33.6.3 Accessing the Entire Match Data . . . . . . . . . . . . . . . . . . . . . . . 810
33.6.4 Saving and Restoring the Match Data . . . . . . . . . . . . . . . . . . 811
33.7 Search and Replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
33.8 Standard Regular Expressions Used in Editing . . . . . . . . . . . . . . . 814
34 Syntax Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
34.1 Syntax Table Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
34.2 Syntax Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
34.2.1 Table of Syntax Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
34.2.2 Syntax Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
34.3 Syntax Table Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
34.4 Syntax Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
34.5 Motion and Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
34.6 Parsing Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
34.6.1 Motion Commands Based on Parsing . . . . . . . . . . . . . . . . . . . 825
34.6.2 Finding the Parse State for a Position . . . . . . . . . . . . . . . . . . 825
34.6.3 Parser State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
34.6.4 Low-Level Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
34.6.5 Parameters to Control Parsing. . . . . . . . . . . . . . . . . . . . . . . . . . 827
34.7 Syntax Table Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
34.8 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
剩余1164页未读,继续阅读
242 浏览量
111 浏览量
185 浏览量
2013-02-09 上传
147 浏览量
119 浏览量
223 浏览量

zhuanruangong4744
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

最新资源
- 快速入门:一周掌握C#基础与框架
- 使用LoadRunner进行性能测试:快速入门指南
- C++与MFC实现的文件拷贝函数对比
- web.xml配置深度解析
- Ajax开发详解:B/S请求响应机制与Web开发模式
- DSP基础学习资源与TI-DSP处理器
- BBS论坛设计与实现:B/S结构应用系统解析
- ASP.NET与SQLServer2000连接字符串解析及Web组件创建指南
- C++与SQLServer实现的学生档案管理系统
- 银行ATM模拟:SQL脚本创建与数据库设计
- JFace教程:简化SWT GUI开发
- SAP Portal与SAP NetWeaver的应用详解
- Linux新手入门:详尽管理员指南
- Linux Kernel中文版:从硬件到核心详解
- 优化SQL性能:索引、连接与WHERE语句的实战策略
- C#编程入门与实践指南
安全验证
文档复制为VIP权益,开通VIP直接复制
