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

📄 textsw.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*	@(#)textsw.h 1.1 92/07/30 SMI	*//* * Copyright (c) 1986, 1987 by Sun Microsystems, Inc. */#ifndef suntool_textsw_DEFINED#define suntool_textsw_DEFINED/* * Programmatic interface to textsw */#					ifndef pr_rop#include <pixrect/pixrect.h>#					endif#					ifndef rect_right#include <sunwindow/rect.h>#					endif#					ifndef rl_rectoffset#include <sunwindow/rectlist.h>#					endif#					ifndef pw_rop#include <sunwindow/pixwin.h>#					endif#					ifndef sunwindow_attr_DEFINED#include <sunwindow/attr.h>#					endif#					ifndef tool_struct_DEFINED#include <suntool/tool_struct.h>#					endif#					ifndef suntool_selection_attributes_DEFINED#include <suntool/selection_attributes.h>#					endif/* New window_create() defs */#					ifndef tool_DEFINED#include <suntool/window.h>#define TEXTSW_TYPE ATTR_PKG_TEXTSW#define TEXTSW textsw_window_object, WIN_COMPATIBILITYextern caddr_t textsw_window_object();#					endif#if lint	typedef void * Textsw_opaque;#else	typedef char * Textsw_opaque;#endiftypedef Textsw_opaque		Textsw;#define	TEXTSW_NULL		((Textsw)0)typedef long int		Textsw_index;#define	TEXTSW_INFINITY		((Textsw_index)0x77777777)#define	TEXTSW_CANNOT_SET	((Textsw_index)0x80000000)#define	TEXTSW_UNIT_IS_CHAR	SELN_LEVEL_FIRST#define	TEXTSW_UNIT_IS_WORD	SELN_LEVEL_FIRST+1#define	TEXTSW_UNIT_IS_LINE	SELN_LEVEL_LINEextern Textswtextsw_build( /* tool, attributes */ );#							ifdef notdef	struct tool	 *tool;	char		**attributes;#							endifextern voidtextsw_destroy( /* textsw */ );#							ifdef notdef	Textsw		textsw;#							endifextern voidtextsw_destroy_view( /* textsw */ );#							ifdef notdef	Textsw		textsw;#							endifextern Textswtextsw_first( /* textsw */ );#							ifdef notdef	Textsw		textsw;#							endifextern Textswtextsw_init( /* windowfd, attributes */ );#							ifdef notdef	int		  windowfd;	char		**attributes;#							endifextern Textswtextsw_next( /* textsw */ );#							ifdef notdef	Textsw		textsw;#							endifextern void textsw_reset( /* abstract, locx, locy */ ); #							ifdef notdef	Textsw 		abstract;	int		locx; 	int		locy; #							endifextern void textsw_file_lines_visible( /* abstract, top, bottom */ );#							ifdef notdef 	Textsw 		abstract; 	int 		*top; 	int 		*bottom;#							endif/* Status values for textsw_build and textsw_init. */typedef enum {	TEXTSW_STATUS_OKAY,	TEXTSW_STATUS_OTHER_ERROR,	TEXTSW_STATUS_CANNOT_ALLOCATE,	TEXTSW_STATUS_CANNOT_OPEN_INPUT,	TEXTSW_STATUS_BAD_ATTR,	TEXTSW_STATUS_BAD_ATTR_VALUE,	TEXTSW_STATUS_CANNOT_INSERT_FROM_FILE,	TEXTSW_STATUS_OUT_OF_MEMORY} Textsw_status;/* Status values for textsw_expand. */typedef enum {	TEXTSW_EXPAND_OK,	TEXTSW_EXPAND_FULL_BUF,	TEXTSW_EXPAND_OTHER_ERROR} Textsw_expand_status;extern Textsw_expand_statustextsw_expand( /* abstract, start, stop_plus_one,	          out_buf, out_buf_len, total_chars */ );#							ifdef notdef	Textsw			 abstract;	Es_index		 start;	/* Entity to start expanding at */	Es_index		 stop_plus_one; /* 1st ent not expanded */	char			*out_buf;	int			 out_buf_len;	int			*total_chars;#							endif/* Attributes for textsw_build, textsw_init, textsw_set and textsw_get. */#define TEXTSW_ATTR(type, ordinal)	ATTR(ATTR_PKG_TEXTSW, type, ordinal)typedef enum {    /* Apply to underlying sw collection */	TEXTSW_ADJUST_IS_PENDING_DELETE	= TEXTSW_ATTR(ATTR_BOOLEAN,	  2),	TEXTSW_AGAIN_LIMIT		= TEXTSW_ATTR(ATTR_INT,		  3),	TEXTSW_AGAIN_RECORDING		= TEXTSW_ATTR(ATTR_BOOLEAN,	  4),	TEXTSW_AUTO_INDENT		= TEXTSW_ATTR(ATTR_BOOLEAN,	  5),	TEXTSW_AUTO_SCROLL_BY		= TEXTSW_ATTR(ATTR_INT,		  7),	TEXTSW_BLINK_CARET		= TEXTSW_ATTR(ATTR_BOOLEAN,	  8),	TEXTSW_BROWSING			= TEXTSW_ATTR(ATTR_BOOLEAN,	 11),	TEXTSW_CHECKPOINT_FREQUENCY	= TEXTSW_ATTR(ATTR_INT,		 13),	TEXTSW_CLIENT_DATA		= TEXTSW_ATTR(ATTR_OPAQUE,	 14),	TEXTSW_CONFIRM_OVERWRITE	= TEXTSW_ATTR(ATTR_BOOLEAN,	 17),	TEXTSW_CONTENTS			= TEXTSW_ATTR(ATTR_STRING,	 20),	TEXTSW_CONTROL_CHARS_USE_FONT	= TEXTSW_ATTR(ATTR_BOOLEAN,	 21),	TEXTSW_DESTROY_ALL_VIEWS	= TEXTSW_ATTR(ATTR_BOOLEAN,	 22),	TEXTSW_DISABLE_CD		= TEXTSW_ATTR(ATTR_BOOLEAN,	 23),	TEXTSW_DISABLE_LOAD		= TEXTSW_ATTR(ATTR_BOOLEAN,	 26),	TEXTSW_EDIT_BACK_CHAR		= TEXTSW_ATTR(ATTR_CHAR,	220),	TEXTSW_EDIT_BACK_LINE		= TEXTSW_ATTR(ATTR_CHAR,	221),	TEXTSW_EDIT_BACK_WORD		= TEXTSW_ATTR(ATTR_CHAR,	222),	TEXTSW_WRAPAROUND_SIZE		= TEXTSW_ATTR(ATTR_INT,		201),	TEXTSW_EDIT_COUNT		= TEXTSW_ATTR(ATTR_INT,		 27),	TEXTSW_ERROR_MSG		= TEXTSW_ATTR(ATTR_STRING,	 29),	TEXTSW_ES_CREATE_PROC		= TEXTSW_ATTR(ATTR_FUNCTION_PTR, 30),	TEXTSW_FILE			= TEXTSW_ATTR(ATTR_STRING,	 32),	TEXTSW_FILE_CONTENTS		= TEXTSW_ATTR(ATTR_STRING,	 33),	TEXTSW_FONT			= TEXTSW_ATTR(ATTR_PIXFONT_PTR,  35),	TEXTSW_HEIGHT			= TEXTSW_ATTR(ATTR_Y,		 38),	TEXTSW_HISTORY_LIMIT		= TEXTSW_ATTR(ATTR_INT,		 41),	TEXTSW_IGNORE_LIMIT		= TEXTSW_ATTR(ATTR_INT,		 44),	TEXTSW_INSERT_FROM_FILE		= TEXTSW_ATTR(ATTR_STRING,	 45),	TEXTSW_INSERT_MAKES_VISIBLE	= TEXTSW_ATTR(ATTR_ENUM,	 47),	TEXTSW_INSERT_ONLY		= TEXTSW_ATTR(ATTR_BOOLEAN,	 48),	TEXTSW_INSERTION_POINT		= TEXTSW_ATTR(ATTR_INT,		 50),	TEXTSW_LENGTH			= TEXTSW_ATTR(ATTR_INT,		 53),	TEXTSW_LOAD_DIR_IS_CD		= TEXTSW_ATTR(ATTR_ENUM,	200),	TEXTSW_LOWER_CONTEXT		= TEXTSW_ATTR(ATTR_INT,		 56),	TEXTSW_MEMORY_MAXIMUM		= TEXTSW_ATTR(ATTR_INT,		 59),	TEXTSW_MENU			= TEXTSW_ATTR(ATTR_OPAQUE,	 62),	TEXTSW_MENU_STYLE		= TEXTSW_ATTR(ATTR_INT,		240),	TEXTSW_MODIFIED			= TEXTSW_ATTR(ATTR_BOOLEAN,	 65),	TEXTSW_MULTI_CLICK_SPACE	= TEXTSW_ATTR(ATTR_INT,		 68),	TEXTSW_MULTI_CLICK_TIMEOUT	= TEXTSW_ATTR(ATTR_INT,		 71),	TEXTSW_MUST_SHOW_CARET		= TEXTSW_ATTR(ATTR_BOOLEAN,	 72),	TEXTSW_NAME			= TEXTSW_ATTR(ATTR_STRING,	 74),	TEXTSW_NAME_TO_USE		= TEXTSW_ATTR(ATTR_STRING,	 75),	TEXTSW_NO_REPAINT_TIL_EVENT	= TEXTSW_ATTR(ATTR_BOOLEAN,	 300),	TEXTSW_NO_RESET_TO_SCRATCH	= TEXTSW_ATTR(ATTR_BOOLEAN,	 76),	TEXTSW_NO_SELECTION_SERVICE	= TEXTSW_ATTR(ATTR_BOOLEAN,	 77),	TEXTSW_NOTIFY_LEVEL		= TEXTSW_ATTR(ATTR_INT,		 80),	TEXTSW_NOTIFY_PROC		= TEXTSW_ATTR(ATTR_FUNCTION_PTR, 83),	TEXTSW_PIXWIN			= TEXTSW_ATTR(ATTR_PIXWIN_PTR,	 86),	TEXTSW_READ_ONLY		= TEXTSW_ATTR(ATTR_BOOLEAN,	 89),	TEXTSW_RESET_MODE		= TEXTSW_ATTR(ATTR_ENUM,	 92),	TEXTSW_RESET_TO_CONTENTS	= TEXTSW_ATTR(ATTR_NO_VALUE,	 93),	TEXTSW_STATUS			= TEXTSW_ATTR(ATTR_OPAQUE,	 95),	TEXTSW_STORE_CHANGES_FILE 	= TEXTSW_ATTR(ATTR_BOOLEAN,	 97),	TEXTSW_STORE_SELF_IS_SAVE	= TEXTSW_ATTR(ATTR_BOOLEAN,	 98),	TEXTSW_TAB_WIDTH		= TEXTSW_ATTR(ATTR_INT,		101),	TEXTSW_TEMP_FILENAME		= TEXTSW_ATTR(ATTR_STRING,	102),	TEXTSW_TOOL			= TEXTSW_ATTR(ATTR_INT,		104),	TEXTSW_UPPER_CONTEXT		= TEXTSW_ATTR(ATTR_INT,		107),	TEXTSW_WIDTH			= TEXTSW_ATTR(ATTR_X,		110),    /* Make individual view changes affect all views */    	TEXTSW_END_ALL_VIEWS		= TEXTSW_ATTR(ATTR_NO_VALUE,	140),    	TEXTSW_FOR_ALL_VIEWS		= TEXTSW_ATTR(ATTR_NO_VALUE,	141),    /* Apply to individual views */	TEXTSW_COALESCE_WITH		= TEXTSW_ATTR(ATTR_OPAQUE,	113),    	TEXTSW_FIRST			= TEXTSW_ATTR(ATTR_INT,		170),    	TEXTSW_FIRST_LINE		= TEXTSW_ATTR(ATTR_INT,		173),	TEXTSW_LEFT_MARGIN		= TEXTSW_ATTR(ATTR_INT,		176),	TEXTSW_LINE_BREAK_ACTION	= TEXTSW_ATTR(ATTR_ENUM,	179),	TEXTSW_RIGHT_MARGIN		= TEXTSW_ATTR(ATTR_INT,		182),	TEXTSW_SCROLLBAR		= TEXTSW_ATTR(ATTR_OPAQUE,	185),	TEXTSW_UPDATE_SCROLLBAR		= TEXTSW_ATTR(ATTR_NO_VALUE,	188),    /* Spares for development between updates to this enumeration */	TEXTSW_SPARE_1			=			TEXTSW_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_INT),									252),	TEXTSW_SPARE_2			=			TEXTSW_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_INT),									253),#ifdef DEBUG	TEXTSW_MALLOC_DEBUG_LEVEL	= TEXTSW_ATTR(ATTR_INT,		254),#endif} Textsw_attribute;/* Following definitions are for compatibility during 3.0. */#define	TEXTSW_NO_CD		TEXTSW_DISABLE_CDtypedef enum {	TEXTSW_NEVER		= 0,	    /* Additional values for TEXTSW_LOAD_DIR_IS_CD */	TEXTSW_ALWAYS		= 1,	TEXTSW_ONLY		= 2,	    /* Additional values for TEXTSW_INSERT_MAKES_VISIBLE */	TEXTSW_IF_AUTO_SCROLL,	    /* Valid values for TEXTSW_LINE_BREAK_ACTION */	TEXTSW_CLIP,	TEXTSW_WRAP_AT_CHAR,	TEXTSW_WRAP_AT_WORD,	TEXTSW_WRAP_AT_LINE,	    /* Style values for menu appearance */	TEXTSW_STYLE_ORGANIZED,	TEXTSW_STYLE_UNORGANIZED} Textsw_enum;	/* A special scrollbar value for TEXTSW_VIEW_SCROLLBAR */#define	TEXTSW_DEFAULT_SCROLLBAR	((caddr_t)1)	/* Flag values for TEXTSW_NOTIFY_LEVEL attribute. */#define	TEXTSW_NOTIFY_NONE		0x00#define	TEXTSW_NOTIFY_DESTROY_VIEW	0x01#define	TEXTSW_NOTIFY_EDIT_DELETE	0x02#define	TEXTSW_NOTIFY_EDIT_INSERT	0x04#define	TEXTSW_NOTIFY_EDIT		(TEXTSW_NOTIFY_EDIT_DELETE | \					 TEXTSW_NOTIFY_EDIT_INSERT)#define	TEXTSW_NOTIFY_PAINT		0x08#define	TEXTSW_NOTIFY_REPAINT		0x10#define	TEXTSW_NOTIFY_SCROLL		0x20#define	TEXTSW_NOTIFY_SPLIT_VIEW	0x40#define	TEXTSW_NOTIFY_STANDARD		0x80#define	TEXTSW_NOTIFY_ALL		(TEXTSW_NOTIFY_DESTROY_VIEW | \					 TEXTSW_NOTIFY_EDIT	    | \					 TEXTSW_NOTIFY_PAINT	    | \					 TEXTSW_NOTIFY_REPAINT	    | \					 TEXTSW_NOTIFY_SCROLL	    | \					 TEXTSW_NOTIFY_SPLIT_VIEW   | \					 TEXTSW_NOTIFY_STANDARD)extern inttextsw_default_notify( /* textsw, attributes */ );#							ifdef notdef	Textsw		textsw;	Attr_avlist	attributes;#							endifextern inttextsw_nop_notify( /* textsw, attributes */ );#							ifdef notdef	Textsw		textsw;	Attr_avlist	attributes;#							endif/* * Following are actions defined for client provided notify_proc. * Two standard notify procs are textsw_default_notify and textsw_nop_notify. */#define	TEXTSW_ATTR_RECT_PAIR	ATTR_TYPE(ATTR_BASE_RECT_PTR, 2)#define	TEXTSW_ATTR_REPLACE_5	ATTR_TYPE(ATTR_BASE_INT, 5)typedef enum {	TEXTSW_ACTION_CAPS_LOCK		= TEXTSW_ATTR(ATTR_BOOLEAN,	 1),	TEXTSW_ACTION_CHANGED_DIRECTORY	= TEXTSW_ATTR(ATTR_STRING,	 4),	TEXTSW_ACTION_EDITED_FILE	= TEXTSW_ATTR(ATTR_STRING,	 7),	TEXTSW_ACTION_EDITED_MEMORY	= TEXTSW_ATTR(ATTR_NO_VALUE,	 8),	TEXTSW_ACTION_FILE_IS_READONLY	= TEXTSW_ATTR(ATTR_STRING,	10),	TEXTSW_ACTION_LOADED_FILE	= TEXTSW_ATTR(ATTR_STRING,	13),	TEXTSW_ACTION_SAVING_FILE	= TEXTSW_ATTR(ATTR_NO_VALUE,	14),	TEXTSW_ACTION_STORING_FILE	= TEXTSW_ATTR(ATTR_STRING,	15),	TEXTSW_ACTION_USING_MEMORY	= TEXTSW_ATTR(ATTR_NO_VALUE,	16),	TEXTSW_ACTION_WRITE_FAILED	= TEXTSW_ATTR(ATTR_NO_VALUE,	17),	TEXTSW_ACTION_TOOL_CLOSE	= TEXTSW_ATTR(ATTR_NO_VALUE,	19),	TEXTSW_ACTION_TOOL_DESTROY	= TEXTSW_ATTR(ATTR_OPAQUE,	20),	TEXTSW_ACTION_TOOL_MGR		= TEXTSW_ATTR(ATTR_OPAQUE,	22),	TEXTSW_ACTION_TOOL_QUIT		= TEXTSW_ATTR(ATTR_OPAQUE,	31),	TEXTSW_ACTION_REPLACED		=				   TEXTSW_ATTR(TEXTSW_ATTR_REPLACE_5,	34),	TEXTSW_ACTION_PAINTED		= TEXTSW_ATTR(ATTR_RECT_PTR,	37),	TEXTSW_ACTION_SCROLLED		=				   TEXTSW_ATTR(TEXTSW_ATTR_RECT_PAIR,	40),	TEXTSW_ACTION_DESTROY_VIEW	= TEXTSW_ATTR(ATTR_NO_VALUE,	43),	TEXTSW_ACTION_SPLIT_VIEW	= TEXTSW_ATTR(ATTR_OPAQUE,	46),} Textsw_action;/* * Menu command tokens */typedef enum {	TEXTSW_MENU_NO_CMD,	TEXTSW_MENU_SAVE,	TEXTSW_MENU_SAVE_QUIT,	TEXTSW_MENU_SAVE_RESET,	TEXTSW_MENU_SAVE_CLOSE,	TEXTSW_MENU_STORE,	TEXTSW_MENU_STORE_QUIT,	TEXTSW_MENU_STORE_CLOSE,	TEXTSW_MENU_CLIP_LINES,	TEXTSW_MENU_WRAP_LINES_AT_CHAR,	TEXTSW_MENU_WRAP_LINES_AT_WORD,	TEXTSW_MENU_RESET,	TEXTSW_MENU_LOAD,	TEXTSW_MENU_CREATE_VIEW,	TEXTSW_MENU_DESTROY_VIEW,	TEXTSW_MENU_CD,	TEXTSW_MENU_NORMALIZE_INSERTION,	TEXTSW_MENU_NORMALIZE_TOP,	TEXTSW_MENU_NORMALIZE_BOTTOM,/* 	TEXTSW_MENU_NORMALIZE_SELECTION, */	TEXTSW_MENU_NORMALIZE_LINE,	TEXTSW_MENU_COUNT_TO_LINE,	TEXTSW_MENU_FILE_STUFF,	TEXTSW_MENU_FIND_PULLRIGHT,	TEXTSW_MENU_FIND,	TEXTSW_MENU_FIND_BACKWARD,	TEXTSW_MENU_FIND_SHELF_PULLRIGHT,	TEXTSW_MENU_FIND_SHELF,	TEXTSW_MENU_FIND_SHELF_BACKWARD,#ifdef _TEXTSW_FIND_RE	TEXTSW_MENU_FIND_RE,	TEXTSW_MENU_FIND_RE_BACKWARD,	TEXTSW_MENU_FIND_TAG,	TEXTSW_MENU_FIND_TAG_BACKWARD,#endif	TEXTSW_MENU_PUT_THEN_GET,	TEXTSW_MENU_FIND_AND_REPLACE,	TEXTSW_MENU_SEL_ENCLOSE_FIELD,   /* Select |> field <| in pending and delete mode */	TEXTSW_MENU_SEL_NEXT_FIELD,	TEXTSW_MENU_SEL_PREV_FIELD,	TEXTSW_MENU_MATCH_FIELD,	TEXTSW_MENU_SEL_MARK_TEXT,	TEXTSW_MENU_AGAIN,	TEXTSW_MENU_UNDO,	TEXTSW_MENU_UNDO_ALL,	TEXTSW_MENU_CUT,	TEXTSW_MENU_COPY,	TEXTSW_MENU_PASTE,	TEXTSW_MENU_SHOW_CLIPBOARD_FROM_EDIT, /* actual menu */	TEXTSW_MENU_SHOW_CLIPBOARD_FROM_FIND, /* actual menu */	TEXTSW_MENU_SHOW_CLIPBOARD, /* pullright */	TEXTSW_MENU_LAST_CMD} Textsw_menu_cmd;/* Bit flags returned by textsw_process_event */#define	TEXTSW_PE_BUSY		0x1#define TEXTSW_PE_READ_ONLY	0x2#define TEXTSW_PE_USED		0x4/* Reset actions for Load/Reset/Save/Store */#define	TEXTSW_LRSS_CURRENT		0#define	TEXTSW_LRSS_ENTITY_START	1#define	TEXTSW_LRSS_LINE_START		2/* fields flags */#define	TEXTSW_NOT_A_FIELD		0	/* This tells the field code don't do the search, only do a match.  */	#define	TEXTSW_FIELD_FORWARD		1#define	TEXTSW_FIELD_BACKWARD		2#define	TEXTSW_FIELD_ENCLOSE		3#define TEXTSW_DELIMITER_FORWARD	4#define TEXTSW_DELIMITER_BACKWARD	5#define TEXTSW_DELIMITER_ENCLOSE	6/* Support for marking of positions in the textsw */typedef Textsw_opaque		Textsw_mark;#define	TEXTSW_NULL_MARK	((Textsw_mark)0)	/* Flags for use with textsw_add_mark */#define	TEXTSW_MARK_DEFAULTS		0x0#define	TEXTSW_MARK_MOVE_AT_INSERT	0x1#define	TEXTSW_MARK_READ_ONLY		0x2extern Textsw_marktextsw_add_mark( /* textsw, position, flags */ );#ifdef notdef	Textsw		textsw;	Textsw_index	position;	unsigned	flags;#endifextern Textsw_indextextsw_find_mark( /* textsw, mark */ );#ifdef notdef	Textsw		textsw;	Textsw_mark	mark;#endifextern voidtextsw_remove_mark( /* textsw, mark */ );#ifdef notdef	Textsw		textsw;	Textsw_mark	mark;#endif/* The magic number, attributes, and commands for smart filters */#define	TEXTSW_FILTER_MAGIC		0xFF012003typedef enum {	TEXTSW_FATTR_INPUT		=	TEXTSW_ATTR(ATTR_OPAQUE,1),	TEXTSW_FATTR_INPUT_EVENT	=	TEXTSW_ATTR(ATTR_OPAQUE,2),	TEXTSW_FATTR_INSERTION_POINTS	=	TEXTSW_ATTR(ATTR_OPAQUE,3),	TEXTSW_FATTR_INSERTION_LINE	=	TEXTSW_ATTR(ATTR_OPAQUE,4),	TEXTSW_FATTR_SELECTION_ENDPOINTS=	TEXTSW_ATTR(ATTR_OPAQUE,5)} Textsw_filter_attribute;typedef enum {	TEXTSW_FILTER_DELETE_RANGE	= 0,	TEXTSW_FILTER_INSERT		= 1,	TEXTSW_FILTER_SEND_RANGE	= 2,	TEXTSW_FILTER_SET_INSERTION	= 3,	TEXTSW_FILTER_SET_SELECTION	= 4} Textsw_filter_command;/* Flag values for textsw_add_glyph_on_line(). */#define	TEXTSW_GLYPH_DISPLAY	0x0000001#define	TEXTSW_GLYPH_LINE_START	0x0000002#define	TEXTSW_GLYPH_WORD_START	0x0000004#define	TEXTSW_GLYPH_LINE_END	0x0000008#endif

⌨️ 快捷键说明

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