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

📄 ex_cmds.h

📁 VIM文本编辑器
💻 H
📖 第 1 页 / 共 2 页
字号:
/* vi:set ts=8 sts=4 sw=4:
 *
 * VIM - Vi IMproved	by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 */

/*
 * This file defines the Ex commands.
 * When DO_DECLARE_EXCMD is defined, the table with ex command names and
 * options results.
 * When DO_DECLARE_EXCMD is NOT defined, the enum with all the Ex commands
 * results.
 * This clever trick was invented by Ron Aaron.
 */

/*
 * When adding an Ex command:
 * 1. Add an entry in the table below.
 * 2. Add a "case: CMD_xxx" in ex_docmd.c.
 * 3. Add a line in ../doc/index.txt.
 * 4. Add documentation in ../doc/xxx.txt.  Add a tag for both the short and
 *    long name of the command.
 */

#undef EXCMD	    /* just in case */
#ifdef DO_DECLARE_EXCMD
# define EXCMD(a, b, c)  {(char_u *)b, c}
#else
# define EXCMD(a, b, c)  a
#endif

#ifdef RANGE
# undef RANGE			/* SASC on Amiga defines it */
#endif

#define RANGE	   0x01		/* allow a linespecs */
#define BANG	   0x02		/* allow a ! after the command name */
#define EXTRA	   0x04		/* allow extra args after command name */
#define XFILE	   0x08		/* expand wildcards in extra part */
#define NOSPC	   0x10		/* no spaces allowed in the extra part */
#define	DFLALL	   0x20		/* default file range is 1,$ */
#define NODFL	   0x40		/* do not default to the current file name */
#define NEEDARG	   0x80		/* argument required */
#define TRLBAR	  0x100		/* check for trailing vertical bar */
#define REGSTR	  0x200		/* allow "x for register designation */
#define COUNT	  0x400		/* allow count in argument, after command */
#define NOTRLCOM  0x800		/* no trailing comment allowed */
#define ZEROR	 0x1000		/* zero line number allowed */
#define USECTRLV 0x2000		/* do not remove CTRL-V from argument */
#define NOTADR	 0x4000		/* number before command is not an address */
#define EDITCMD	 0x8000		/* has "+command" argument */
#define BUFNAME 0x10000		/* accepts buffer name */
#define FILES	(XFILE + EXTRA)	/* multiple extra files allowed */
#define WORD1	(EXTRA + NOSPC)	/* one extra word allowed */
#define FILE1	(FILES + NOSPC)	/* 1 file allowed, defaults to current file */
#define NAMEDF	(FILE1 + NODFL)	/* 1 file allowed, defaults to "" */
#define NAMEDFS	(FILES + NODFL)	/* multiple files allowed, default is "" */

/*
 * This array maps ex command names to command codes. The order in which
 * command names are listed below is significant -- ambiguous abbreviations
 * are always resolved to be the first possible match (e.g. "r" is taken
 * to mean "read", not "rewind", because "read" comes before "rewind").
 * Not supported commands are included to avoid ambiguities.
 */
#ifdef DO_DECLARE_EXCMD
static struct cmdname
{
    char_u  *cmd_name;	/* name of the command */
    long_u   cmd_argt;	/* command line arguments permitted/needed/used */
} cmdnames[] =
#else
enum CMD_index
#endif
{
    EXCMD(CMD_append,	"append",	BANG+RANGE+ZEROR+TRLBAR),
    EXCMD(CMD_all,	"all",		RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_abbreviate,"abbreviate",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_abclear,	"abclear",	TRLBAR),
    EXCMD(CMD_amenu,	"amenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_anoremenu,"anoremenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_args,	"args",		BANG+NAMEDFS+EDITCMD+TRLBAR),
    EXCMD(CMD_argument, "argument",	BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR),
    EXCMD(CMD_ascii,	"ascii",	TRLBAR),
    EXCMD(CMD_autocmd,	"autocmd",	BANG+EXTRA+NOTRLCOM+USECTRLV),
    EXCMD(CMD_augroup,	"augroup",	WORD1+TRLBAR),
    EXCMD(CMD_aunmenu,	"aunmenu",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_buffer,	"buffer",	BANG+RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR),
    EXCMD(CMD_ball,	"ball",		RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_badd,	"badd",		NEEDARG+FILE1+EDITCMD+TRLBAR),
    EXCMD(CMD_bdelete,	"bdelete",	BANG+RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR),
    EXCMD(CMD_behave,	"behave",	NEEDARG+WORD1+TRLBAR),
    EXCMD(CMD_blast,	"blast",	BANG+RANGE+TRLBAR),
    EXCMD(CMD_bmodified,"bmodified",	BANG+RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_bnext,	"bnext",	BANG+RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_bNext,	"bNext",	BANG+RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_bprevious,"bprevious",	BANG+RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_brewind,	"brewind",	BANG+RANGE+TRLBAR),
    EXCMD(CMD_break,	"break",	TRLBAR),
    EXCMD(CMD_browse,	"browse",	NEEDARG+EXTRA+NOTRLCOM),
    EXCMD(CMD_buffers,	"buffers",	TRLBAR),
    EXCMD(CMD_bunload,	"bunload",	BANG+RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR),
    EXCMD(CMD_change,	"change",	BANG+RANGE+COUNT+TRLBAR),
    EXCMD(CMD_cabbrev,	"cabbrev",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cabclear, "cabclear",	TRLBAR),
    EXCMD(CMD_call,	"call",		RANGE+NEEDARG+EXTRA+NOTRLCOM),
    EXCMD(CMD_cc,	"cc",		RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cd,	"cd",		NAMEDF+TRLBAR),
    EXCMD(CMD_center,	"center",	TRLBAR+RANGE+EXTRA),
    EXCMD(CMD_cfile,	"cfile",	TRLBAR+FILE1+BANG),
    EXCMD(CMD_chdir,	"chdir",	NAMEDF+TRLBAR),
    EXCMD(CMD_checkpath,"checkpath",	TRLBAR+BANG),
    EXCMD(CMD_clist,	"clist",	TRLBAR+BANG),
    EXCMD(CMD_close,	"close",	BANG+TRLBAR),
    EXCMD(CMD_clast,	"clast",	RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cmap,	"cmap",		EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cmapclear,"cmapclear",	TRLBAR),
    EXCMD(CMD_cmenu,	"cmenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cnext,	"cnext",	RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cNext,	"cNext",	RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cnewer,	"cnewer",	RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_cnoremap, "cnoremap",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cnoremenu,"cnoremenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cnoreabbrev,"cnoreabbrev",EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_copy,	"copy",		RANGE+EXTRA+TRLBAR),
    EXCMD(CMD_colder,	"colder",	RANGE+NOTADR+COUNT+TRLBAR),
    EXCMD(CMD_command,	"command",	EXTRA+BANG+NOTRLCOM+USECTRLV),
    EXCMD(CMD_comclear,	"comclear",	TRLBAR),
    EXCMD(CMD_continue, "continue",	TRLBAR),
    EXCMD(CMD_confirm,  "confirm",	NEEDARG+EXTRA+NOTRLCOM),
    EXCMD(CMD_cprevious,"cprevious",	RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cquit,	"cquit",	TRLBAR+BANG),
    EXCMD(CMD_crewind,	"crewind",	RANGE+NOTADR+COUNT+TRLBAR+BANG),
    EXCMD(CMD_cscope,   "cscope",       EXTRA+NOTRLCOM),
    EXCMD(CMD_cstag,	"cstag",	BANG+TRLBAR+WORD1),
    EXCMD(CMD_cunmap,	"cunmap",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cunmenu,	"cunmenu",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_cunabbrev,"cunabbrev",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_delete,	"delete",	RANGE+REGSTR+COUNT+TRLBAR),
    EXCMD(CMD_delcommand,"delcommand",	NEEDARG+WORD1+TRLBAR),
    EXCMD(CMD_delfunction,"delfunction",NEEDARG+WORD1+TRLBAR),
    EXCMD(CMD_display,	"display",	EXTRA+NOTRLCOM+TRLBAR),
    EXCMD(CMD_digraphs, "digraphs",	EXTRA+TRLBAR),
    EXCMD(CMD_djump,	"djump",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_dlist,	"dlist",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_doautocmd,"doautocmd",	EXTRA+TRLBAR),
    EXCMD(CMD_doautoall,"doautoall",	EXTRA+TRLBAR),
    EXCMD(CMD_dsearch,	"dsearch",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_dsplit,	"dsplit",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_edit,	"edit",		BANG+FILE1+EDITCMD+TRLBAR),
    EXCMD(CMD_echo,	"echo",		EXTRA+NOTRLCOM),
    EXCMD(CMD_echohl,	"echohl",	EXTRA+TRLBAR),
    EXCMD(CMD_echon,	"echon",	EXTRA+NOTRLCOM),
    EXCMD(CMD_else,	"else",		TRLBAR),
    EXCMD(CMD_elseif,	"elseif",	EXTRA+NOTRLCOM),
    EXCMD(CMD_endif,	"endif",	TRLBAR),
    EXCMD(CMD_endfunction,"endfunction",TRLBAR),
    EXCMD(CMD_endwhile,	"endwhile",	TRLBAR),
    EXCMD(CMD_ex,	"ex",		BANG+FILE1+EDITCMD+TRLBAR),
    EXCMD(CMD_execute,	"execute",	EXTRA+NOTRLCOM),
    EXCMD(CMD_exit,	"exit",		RANGE+BANG+FILE1+DFLALL+TRLBAR),
    EXCMD(CMD_file,	"file",		BANG+FILE1+TRLBAR),
    EXCMD(CMD_files,	"files",	TRLBAR),
    EXCMD(CMD_fixdel,	"fixdel",	TRLBAR),
    EXCMD(CMD_function,	"function",	EXTRA+BANG),
    EXCMD(CMD_global,	"global",	RANGE+BANG+EXTRA+DFLALL),
    EXCMD(CMD_grep,	"grep",		NEEDARG+EXTRA+TRLBAR+XFILE),
    EXCMD(CMD_gui,	"gui",		BANG+NAMEDFS+EDITCMD+TRLBAR),
    EXCMD(CMD_gvim,	"gvim",		BANG+NAMEDFS+EDITCMD+TRLBAR),
    EXCMD(CMD_help,	"help",		EXTRA+NOTRLCOM),
    EXCMD(CMD_highlight,"highlight",	BANG+EXTRA+TRLBAR),
    EXCMD(CMD_hide,	"hide",		BANG+TRLBAR),
    EXCMD(CMD_insert,	"insert",	BANG+RANGE+TRLBAR),
    EXCMD(CMD_iabbrev,	"iabbrev",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_iabclear, "iabclear",	TRLBAR),
    EXCMD(CMD_if,	"if",		EXTRA+NOTRLCOM),
    EXCMD(CMD_ijump,	"ijump",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_ilist,	"ilist",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_imap,	"imap",		EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_imapclear,"imapclear",	TRLBAR),
    EXCMD(CMD_imenu,	"imenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_inoremap, "inoremap",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_inoremenu,"inoremenu",	RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_inoreabbrev,"inoreabbrev",EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_intro,	"intro",	TRLBAR),
    EXCMD(CMD_isearch,	"isearch",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_isplit,	"isplit",	BANG+RANGE+DFLALL+EXTRA),
    EXCMD(CMD_iunmap,	"iunmap",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_iunmenu,	"iunmenu",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_iunabbrev,"iunabbrev",	EXTRA+TRLBAR+NOTRLCOM+USECTRLV),
    EXCMD(CMD_join,	"join",		BANG+RANGE+COUNT+TRLBAR),
    EXCMD(CMD_jumps,	"jumps",	TRLBAR),
    EXCMD(CMD_k,	"k",		RANGE+WORD1+TRLBAR),
    EXCMD(CMD_list,	"list",		RANGE+COUNT+TRLBAR),
    EXCMD(CMD_last,	"last",		EXTRA+BANG+EDITCMD+TRLBAR),
    EXCMD(CMD_left,	"left",		TRLBAR+RANGE+EXTRA),
    EXCMD(CMD_let,	"let",		EXTRA+NOTRLCOM),

⌨️ 快捷键说明

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