📄 texinfo.el
字号:
;; Major mode for editing texinfo files.;; Copyright (C) 1985, 1988 Free Software Foundation, Inc.;; 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA.(defvar texinfo-mode-syntax-table nil)(if texinfo-mode-syntax-table nil (setq texinfo-mode-syntax-table (make-syntax-table)) (modify-syntax-entry ?\" " " texinfo-mode-syntax-table) (modify-syntax-entry ?\\ " " texinfo-mode-syntax-table) (modify-syntax-entry ?@ "\\" texinfo-mode-syntax-table) (modify-syntax-entry ?\^q "\\" texinfo-mode-syntax-table) (modify-syntax-entry ?\[ "(]" texinfo-mode-syntax-table) (modify-syntax-entry ?\] ")[" texinfo-mode-syntax-table) (modify-syntax-entry ?{ "(}" texinfo-mode-syntax-table) (modify-syntax-entry ?} "){" texinfo-mode-syntax-table) (modify-syntax-entry ?\' "w" texinfo-mode-syntax-table))(defvar texinfo-mode-map nil)(if texinfo-mode-map nil (setq texinfo-mode-map (make-sparse-keymap)) (define-key texinfo-mode-map "\C-c\C-f" 'texinfo-format-region) (define-key texinfo-mode-map "\C-c\C-s" 'texinfo-show-structure) (define-key texinfo-mode-map "\e}" 'up-list) (define-key texinfo-mode-map "\e{" 'texinfo-insert-braces) (define-key texinfo-mode-map "\C-c\C-cv" 'texinfo-insert-@var) (define-key texinfo-mode-map "\C-c\C-cs" 'texinfo-insert-@samp) (define-key texinfo-mode-map "\C-c\C-cn" 'texinfo-insert-@node) (define-key texinfo-mode-map "\C-c\C-ci" 'texinfo-insert-@item) (define-key texinfo-mode-map "\C-c\C-ce" 'texinfo-insert-@end) (define-key texinfo-mode-map "\C-c\C-cd" 'texinfo-insert-@dfn) (define-key texinfo-mode-map "\C-c\C-cc" 'texinfo-insert-@code))(defun texinfo-insert-@var () "Insert the string @var in a texinfo buffer." (interactive) (insert "@var{}") (backward-char))(defun texinfo-insert-@samp () "Insert the string @samp in a texinfo buffer." (interactive) (insert "@samp{}") (backward-char))(defun texinfo-insert-@node () "Insert the string @node in a texinfo buffer, along with a comment indicating the arguments to @node." (interactive) (insert "@node \n@comment node-name, next, previous, up") (forward-line -1) (forward-char 6))(defun texinfo-insert-@item () "Insert the string @item in a texinfo buffer." (interactive) (insert "@item") (newline))(defun texinfo-insert-@end () "Insert the string @end in a texinfo buffer." (interactive) (insert "@end "))(defun texinfo-insert-@dfn () "Insert the string @dfn in a texinfo buffer." (interactive) (insert "@dfn{}") (backward-char))(defun texinfo-insert-@code () "Insert the string @code in a texinfo buffer." (interactive) (insert "@code{}") (backward-char))(defun texinfo-insert-braces () "Make a pair of braces and be poised to type inside of them.Use \\[up-list] to move forward out of the braces." (interactive) (insert "{}") (backward-char))(defun texinfo-mode () "Major mode for editing texinfo files. It has these extra commands:\\{texinfo-mode-map} These are files that are used as input for TeX to make printed manualsand also to be turned into Info files by \\[texinfo-format-buffer].These files must be written in a very restricted and modified versionof TeX input format. Editing commands are like text-mode except that the syntax table isset up so expression commands skip Texinfo bracket groups. To seewhat the Info version of a region of the Texinfo file will look like,use \\[texinfo-format-region]. This command runs Info on the current regionof the Texinfo file and formats it properly. You can show the structure of a Texinfo file with \\[texinfo-show-structure].This command shows the structure of a Texinfo file by listing thelines with the @-sign commands for @node, @chapter, @section and thelike. These lines are displayed in another window called the *Occur*window. In that window, you can position the cursor over one of thelines and use \\[occur-mode-goto-occurrence], to jump to thecorresponding spot in the Texinfo file. In addition, Texinfo mode provides commands that insert variousfrequently used @-sign commands into the buffer. You can use thesecommands to save keystrokes. And you can insert balanced braces with\\[texinfo-insert-braces] and later use the command \\[up-list] tomove forward past the closing brace.Entering Texinfo mode calls the value of text-mode-hook, and then thevalue of texinfo-mode-hook." (interactive) (text-mode) (setq mode-name "Texinfo") (setq major-mode 'texinfo-mode) (use-local-map texinfo-mode-map) (set-syntax-table texinfo-mode-syntax-table) (make-local-variable 'require-final-newline) (setq require-final-newline t) (make-local-variable 'paragraph-separate) (setq paragraph-separate (concat "^\b\\|^@[a-zA-Z]*[ \n]\\|" paragraph-separate)) (make-local-variable 'paragraph-start) (setq paragraph-start (concat "^\b\\|^@[a-zA-Z]*[ \n]\\|" paragraph-start)) (make-local-variable 'fill-column) (setq fill-column 72) (make-local-variable 'comment-start) (setq comment-start "@c ") (make-local-variable 'comment-start-skip) (setq comment-start-skip "@c +") (run-hooks 'text-mode-hook 'texinfo-mode-hook))(defvar texinfo-heading-pattern "^@\\(chapter\\|unnum\\|appendix\\|sect\\|sub\\|heading\\|major\\|node\\)" "This is a regular expression to match Texinfo lines that are chapteror sections headings or like such.")(defun texinfo-show-structure () "Show the structure of a Texinfo file by listing the lines with the@-sign commands for @node, @chapter, @section and the like. Lineswith structuring commands in them are displayed in another windowcalled the *Occur* window. In that window, you can position thecursor over one of the lines and use \\[occur-mode-goto-occurrence],to jump to the corresponding spot in the Texinfo file." (interactive) (save-excursion (goto-char (point-min)) (occur texinfo-heading-pattern)) (pop-to-buffer "*Occur*") (goto-char (point-min)) (flush-lines "-----"))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -