{"Entry":{"collection":"psql","key":"cmd-65-66","name":"\\ef","aliases":["\\ef"],"metadata":{"aliases":["\\ef"],"category":"Query buffer and editing","content_hash":"e85efd9f6cfc1ed1009674aaceae2b5841ab9733ba3a31905809f813e60f3574","derived_content_hash":"153e2e5dbf993058a5403b19f8e9410927bf420272aed5588c6cb10e2fa03292","documentation_refresh":{"batch":"20261113","original_source_rev":"","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"imported_at":"2026-09-30T00:40:44.976078+08:00","name":"\\ef","name_zh":"","slug":"cmd-65-66","summary":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."}},"Definition":{"Collection":"psql","Key":"cmd-65-66","SourceDatabase":"center","Version":"18","SourceTable":"psql_command","SourceKey":"cmd-65-66","SourceRevision":"1b2d62b4845aa46374f2cb680f95d3392322cc8128646992ae4e18d0e7084915","Facts":{"command":"\\ef","comparison_data":{"definition":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel. The target function can be specified by name alone, or by name and arguments, for example foo(integer, text) . The argument types must be given if there is more than one function of the same name. If no function is specified, a blank CREATE FUNCTION template is presented for editing. If a line number is specified, psql will position the cursor on the specified line of the function body. (Note that the function body typically does not begin on the first line of the file.) Unlike most other meta-commands, the entire remainder of the line is always taken to be the argument(s) of \\ef , and neither variable interpolation nor backquote expansion are performed in the arguments. Tip See Environment , below, for how to configure and customize your editor.","modifiers":[],"signature":"\\ef [ function_description [ line_number ] ]","spellings":["\\ef"]},"comparison_hash":"c6f53578cbd03f42a5ee2d84af67e951894977f92c34d928eb87890b8e81638e","description":["This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."],"description_zh":"这个命令获取并编辑指定函数或过程的定义，形式为 CREATE OR REPLACE FUNCTION 或 CREATE OR REPLACE PROCEDURE 命令。编辑方式与 \\edit 相同。如果在不保存的情况下退出编辑器，则该语句会被丢弃。如果保存并退出编辑器，并在其中添加了分号，则更新后的命令会立即执行。否则它会重新显示；键入分号或 \\g 发送它，或用 \\r 取消。","description_zh_html":"\u003cdd\u003e\u003cp\u003e\n         这个命令获取并编辑指定函数或过程的定义，形式为 \u003ccode class=\"command\"\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e 或\n         \u003ccode class=\"command\"\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e 命令。编辑方式与\u003ccode class=\"literal\"\u003e\\edit\u003c/code\u003e 相同。如果在不保存的情况下退出编辑器，则该语句会被丢弃。如果保存并退出编辑器，并在其中添加了分号，则更新后的命令会立即执行。否则它会重新显示；键入分号或\u003ccode class=\"literal\"\u003e\\g\u003c/code\u003e 发送它，或用\u003ccode class=\"literal\"\u003e\\r\u003c/code\u003e 取消。\n        \u003c/p\u003e\u003cp\u003e\n         目标函数可以仅通过名称指定，也可以通过名称和参数指定，例如 \u003ccode class=\"literal\"\u003efoo(integer, text)\u003c/code\u003e。如果有多个同名函数，则必须给出参数类型。\n        \u003c/p\u003e\u003cp\u003e\n         如果未指定函数，则会呈现一个空的 \u003ccode class=\"command\"\u003eCREATE FUNCTION\u003c/code\u003e 模板供编辑。\n        \u003c/p\u003e\u003cp\u003e\n        如果指定了行号，\u003cspan class=\"application\"\u003epsql\u003c/span\u003e 将光标定位在函数体的指定行上。（请注意，函数体通常不会从文件的第一行开始。）\n        \u003c/p\u003e\u003cp\u003e\n        与大多数其他元命令不同，整个行的剩余部分始终被视为\u003ccode class=\"command\"\u003e\\ef\u003c/code\u003e 的参数，参数中不进行变量插值或反引号扩展。\n        \u003c/p\u003e\u003cdiv class=\"tip\"\u003e\u003ch3 class=\"title\"\u003e提示\u003c/h3\u003e\u003cp\u003e\n        关于如何配置和自定义编辑器，请参见下面的\u003ca class=\"xref\" href=\"/zh/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"环境\"\u003e环境\u003c/a\u003e。\n        \u003c/p\u003e\u003c/div\u003e\u003c/dd\u003e","documentation_revision":{"inputs":[{"file":"app-psql.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"af50448485df02bdef2b72b8347192ba029c7082b8d0392ecb17db44ad533aaf","version":"18.7"},{"file":"app-psql.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"cb475c53a16d9e06358f5e6c9c5649645db92568cfd319f230c62c9f57ae090b","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"facts":[{"label":"Client","value":"psql 18.7"},{"label":"Case-sensitive spelling","value":"\\ef"}],"facts_zh":[{"label":"客户端","value":"psql 18.7"},{"label":"区分大小写的写法","value":"\\ef"}],"localization":{"documentation_release":"18.7","language":"en","source_language":"en","source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552","status":"same-version-reviewed-manual"},"manual_html":"\u003cdiv\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003e\\ef [\u003cspan class=\"optional\"\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [\u003cspan class=\"optional\"\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e \u003c/span\u003e] \u003c/span\u003e] \u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n         This command fetches and edits the definition of the named function or procedure,\n         in the form of a \u003ccode class=\"command\"\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or\n         \u003ccode class=\"command\"\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command.\n         Editing is done in the same way as for \u003ccode class=\"literal\"\u003e\\edit\u003c/code\u003e.\n         If you quit the editor without saving, the statement is discarded.\n         If you save and exit the editor, the updated command is executed immediately\n         if you added a semicolon to it.  Otherwise it is redisplayed;\n         type semicolon or \u003ccode class=\"literal\"\u003e\\g\u003c/code\u003e to send it, or \u003ccode class=\"literal\"\u003e\\r\u003c/code\u003e\n         to cancel.\n        \u003c/p\u003e\u003cp\u003e\n         The target function can be specified by name alone, or by name\n         and arguments, for example \u003ccode class=\"literal\"\u003efoo(integer, text)\u003c/code\u003e.\n         The argument types must be given if there is more\n         than one function of the same name.\n        \u003c/p\u003e\u003cp\u003e\n         If no function is specified, a blank \u003ccode class=\"command\"\u003eCREATE FUNCTION\u003c/code\u003e\n         template is presented for editing.\n        \u003c/p\u003e\u003cp\u003e\n        If a line number is specified, \u003cspan class=\"application\"\u003epsql\u003c/span\u003e will\n        position the cursor on the specified line of the function body.\n        (Note that the function body typically does not begin on the first\n        line of the file.)\n        \u003c/p\u003e\u003cp\u003e\n        Unlike most other meta-commands, the entire remainder of the line is\n        always taken to be the argument(s) of \u003ccode class=\"command\"\u003e\\ef\u003c/code\u003e, and neither\n        variable interpolation nor backquote expansion are performed in the\n        arguments.\n        \u003c/p\u003e\u003cdiv class=\"tip\"\u003e\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\u003cp\u003e\n        See \u003ca class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\"\u003eEnvironment\u003c/a\u003e, below, for how to\n        configure and customize your editor.\n        \u003c/p\u003e\u003c/div\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","manual_path":"app-psql.html#APP-PSQL-META-COMMAND-EF","modifiers":[],"related":[{"label":"psql command-line options and complete manual","url":"/wiki/tool/psql/?v=18"}],"related_zh":[{"label":"psql 命令行选项及完整手册","url":"/wiki/tool/psql/?v=18"}],"release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.7","major":"18","manifest":{"major":"18","release":"18.7","source_sha256":"441dfae4280cae3e0425e5f876f80559fb0731c140f1aae22b3e5a54d0411bfd","source_url":"https://ftp.postgresql.org/pub/source/v18.7/postgresql-18.7.tar.bz2"},"ref":"https://ftp.postgresql.org/pub/source/v18.7/postgresql-18.7.tar.bz2","revision":"1b2d62b4845aa46374f2cb680f95d3392322cc8128646992ae4e18d0e7084915","source_sha256":"441dfae4280cae3e0425e5f876f80559fb0731c140f1aae22b3e5a54d0411bfd"},"sections":[],"sections_zh":[],"signature":"\\ef [ function_description [ line_number ] ]","sources":[{"anchor":"APP-PSQL-META-COMMAND-EF","file":"app-psql.html","label":"18.7 English manual · app-psql.html","sha256":"af50448485df02bdef2b72b8347192ba029c7082b8d0392ecb17db44ad533aaf","url":"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-EF"}],"spellings":["\\ef"],"tables":[{"columns":[{"key":"command","label":"Command"},{"key":"modifiers","label":"Documented suffix modifiers"}],"key":"spellings","rows":[{"command":{"text":"\\ef","url":"/wiki/psql/cmd-65-66/?v=18"},"modifiers":"None listed in this signature"}],"title":"Spellings in this manual definition"}],"tables_zh":[{"columns":[{"key":"command","label":"命令"},{"key":"modifiers","label":"手册中的后缀修饰符"}],"key":"spellings","rows":[{"command":{"text":"\\ef","url":"/wiki/psql/cmd-65-66/?v=18"},"modifiers":"此语法签名未列出"}],"title":"本版手册中的写法"}],"zh_from":"same-version-manual"},"ManualEvidence":{"manual_path":"app-psql.html#APP-PSQL-META-COMMAND-EF","release":{"channel":"stable","evidence_kind":"English manual and source declarations","label":"18.7","major":"18","manifest":{"major":"18","release":"18.7","source_sha256":"441dfae4280cae3e0425e5f876f80559fb0731c140f1aae22b3e5a54d0411bfd","source_url":"https://ftp.postgresql.org/pub/source/v18.7/postgresql-18.7.tar.bz2"},"ref":"https://ftp.postgresql.org/pub/source/v18.7/postgresql-18.7.tar.bz2","revision":"1b2d62b4845aa46374f2cb680f95d3392322cc8128646992ae4e18d0e7084915","source_sha256":"441dfae4280cae3e0425e5f876f80559fb0731c140f1aae22b3e5a54d0411bfd"},"sources":[{"anchor":"APP-PSQL-META-COMMAND-EF","file":"app-psql.html","label":"18.7 English manual · app-psql.html","sha256":"af50448485df02bdef2b72b8347192ba029c7082b8d0392ecb17db44ad533aaf","url":"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-EF"}]},"MeasuredEvidence":{}},"Text":{"Collection":"psql","Key":"cmd-65-66","SourceDatabase":"center","Version":"18","Locale":"en","Title":"\\ef","Summary":"This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel.","BodyHTML":"\u003cdiv\u003e\u003cdl\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan\u003e\u003ccode\u003e\\ef [\u003cspan\u003e \u003cem\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [\u003cspan\u003e \u003cem\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e \u003c/span\u003e] \u003c/span\u003e] \u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n         This command fetches and edits the definition of the named function or procedure,\n         in the form of a \u003ccode\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or\n         \u003ccode\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command.\n         Editing is done in the same way as for \u003ccode\u003e\\edit\u003c/code\u003e.\n         If you quit the editor without saving, the statement is discarded.\n         If you save and exit the editor, the updated command is executed immediately\n         if you added a semicolon to it.  Otherwise it is redisplayed;\n         type semicolon or \u003ccode\u003e\\g\u003c/code\u003e to send it, or \u003ccode\u003e\\r\u003c/code\u003e\n         to cancel.\n        \u003c/p\u003e\u003cp\u003e\n         The target function can be specified by name alone, or by name\n         and arguments, for example \u003ccode\u003efoo(integer, text)\u003c/code\u003e.\n         The argument types must be given if there is more\n         than one function of the same name.\n        \u003c/p\u003e\u003cp\u003e\n         If no function is specified, a blank \u003ccode\u003eCREATE FUNCTION\u003c/code\u003e\n         template is presented for editing.\n        \u003c/p\u003e\u003cp\u003e\n        If a line number is specified, \u003cspan\u003epsql\u003c/span\u003e will\n        position the cursor on the specified line of the function body.\n        (Note that the function body typically does not begin on the first\n        line of the file.)\n        \u003c/p\u003e\u003cp\u003e\n        Unlike most other meta-commands, the entire remainder of the line is\n        always taken to be the argument(s) of \u003ccode\u003e\\ef\u003c/code\u003e, and neither\n        variable interpolation nor backquote expansion are performed in the\n        arguments.\n        \u003c/p\u003e\u003cdiv\u003e\u003ch3\u003eTip\u003c/h3\u003e\u003cp\u003e\n        See \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\" rel=\"nofollow\"\u003eEnvironment\u003c/a\u003e, below, for how to\n        configure and customize your editor.\n        \u003c/p\u003e\u003c/div\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","SourceRevision":"1b2d62b4845aa46374f2cb680f95d3392322cc8128646992ae4e18d0e7084915","ContentHash":"4082ede1379a5b16dbd18cae9525adf20f529b451aa6797b2a3bfb81b13a7587","Payload":{"description":["This command fetches and edits the definition of the named function or procedure, in the form of a CREATE OR REPLACE FUNCTION or CREATE OR REPLACE PROCEDURE command. Editing is done in the same way as for \\edit . If you quit the editor without saving, the statement is discarded. If you save and exit the editor, the updated command is executed immediately if you added a semicolon to it. Otherwise it is redisplayed; type semicolon or \\g to send it, or \\r to cancel."],"manual_html":"\u003cdiv\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt id=\"APP-PSQL-META-COMMAND-EF\"\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003e\\ef [\u003cspan class=\"optional\"\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_description\u003c/code\u003e\u003c/em\u003e [\u003cspan class=\"optional\"\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003eline_number\u003c/code\u003e\u003c/em\u003e \u003c/span\u003e] \u003c/span\u003e] \u003c/code\u003e\u003c/span\u003e \u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\n         This command fetches and edits the definition of the named function or procedure,\n         in the form of a \u003ccode class=\"command\"\u003eCREATE OR REPLACE FUNCTION\u003c/code\u003e or\n         \u003ccode class=\"command\"\u003eCREATE OR REPLACE PROCEDURE\u003c/code\u003e command.\n         Editing is done in the same way as for \u003ccode class=\"literal\"\u003e\\edit\u003c/code\u003e.\n         If you quit the editor without saving, the statement is discarded.\n         If you save and exit the editor, the updated command is executed immediately\n         if you added a semicolon to it.  Otherwise it is redisplayed;\n         type semicolon or \u003ccode class=\"literal\"\u003e\\g\u003c/code\u003e to send it, or \u003ccode class=\"literal\"\u003e\\r\u003c/code\u003e\n         to cancel.\n        \u003c/p\u003e\u003cp\u003e\n         The target function can be specified by name alone, or by name\n         and arguments, for example \u003ccode class=\"literal\"\u003efoo(integer, text)\u003c/code\u003e.\n         The argument types must be given if there is more\n         than one function of the same name.\n        \u003c/p\u003e\u003cp\u003e\n         If no function is specified, a blank \u003ccode class=\"command\"\u003eCREATE FUNCTION\u003c/code\u003e\n         template is presented for editing.\n        \u003c/p\u003e\u003cp\u003e\n        If a line number is specified, \u003cspan class=\"application\"\u003epsql\u003c/span\u003e will\n        position the cursor on the specified line of the function body.\n        (Note that the function body typically does not begin on the first\n        line of the file.)\n        \u003c/p\u003e\u003cp\u003e\n        Unlike most other meta-commands, the entire remainder of the line is\n        always taken to be the argument(s) of \u003ccode class=\"command\"\u003e\\ef\u003c/code\u003e, and neither\n        variable interpolation nor backquote expansion are performed in the\n        arguments.\n        \u003c/p\u003e\u003cdiv class=\"tip\"\u003e\u003ch3 class=\"title\"\u003eTip\u003c/h3\u003e\u003cp\u003e\n        See \u003ca class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-ENVIRONMENT\" title=\"Environment\"\u003eEnvironment\u003c/a\u003e, below, for how to\n        configure and customize your editor.\n        \u003c/p\u003e\u003c/div\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","related":[{"label":"psql command-line options and complete manual","url":"/wiki/tool/psql/?v=18"}],"sections":[],"tables":[{"columns":[{"key":"command","label":"Command"},{"key":"modifiers","label":"Documented suffix modifiers"}],"key":"spellings","rows":[{"command":{"text":"\\ef","url":"/wiki/psql/cmd-65-66/?v=18"},"modifiers":"None listed in this signature"}],"title":"Spellings in this manual definition"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":[{"Version":"18","Ordinal":0,"Command":"\\ef","Signature":"\\ef [ function_description [ line_number ] ]","Modifiers":[]}],"SQLState":null,"Evidence":null}
