Emacs lisp - 自动完成书签名称
我是 elisp 的新手。 http://www.gnu.org /s/emacs/manual/html_node/elisp/Interactive-Codes.html#Interactive-Codes 列出了交互参数的“代码字符”,据我所知,它在提示用户输入时修改了输入机制的行为(例如:如果您指定输入是存在的文件名,emacs 的自动完成功能将查找存在的文件名)。
我正在尝试查找已存在的书签名称的代码 - 即:emacs 将提示用户输入书签名称,并且在按下选项卡时 emacs 将显示可能的书签名称补全。
这样的代码存在吗?
I'm new to elisp. http://www.gnu.org/s/emacs/manual/html_node/elisp/Interactive-Codes.html#Interactive-Codes lists 'code characters' for interactive parameters, which AFAIK modifies the behaviour of the input mechanism when prompting the user for input (eg: if you specify that the input is a filename that exists, emacs' autocomplete functionality will look for file names that exists).
I'm trying to find a code for a bookmark name that already exists - ie: emacs will prompt the user for a bookmark name, and upon pressing tab emacs will show possible bookmark name completions.
Does such a code exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为此,请使用
completing-read
。您可以编写一个提示用户输入书签的函数,如下所示:如果您希望提示成为交互式的一部分(以便结果自动绑定到函数的参数),您可以使用以下替代方案:
为了让 Emacs 找到函数
bookmark-all-names
,您还必须将以下行添加到您的 .emacs 文件中:Use
completing-read
for that. You could write a function that prompts the user for a bookmark like so:If you prefer the prompting to be part of
interactive
(so that the result will be bound automatically to your function's arguments), you could use the following alternative:For Emacs to find the function
bookmark-all-names
you also have to add the following line to your .emacs file:函数
bookmark-completing-read
是完成书签名称的标准方法。为此,您不需要需要较低级别的函数completing-read
。示例:如果您使用 Bookmark+ 则
bookmark-completing-read
接受一些可选参数(类似于completing-read
),这些参数可以帮助:ALIST
-- 列表可供选择的书签(而不是所有书签:bookmark-alist
)PRED
-- 过滤书签候选列表的谓词HIST
-- 输入历史列表该函数还有一个非严格版本,
bmkp-completing-read-lax
,如果您想要接受新的书签名称或根据现有名称完成,这非常有用。Function
bookmark-completing-read
is the standard way to complete a bookmark name. You do not need the lower-level functioncompleting-read
for this. Example:If you use Bookmark+ then
bookmark-completing-read
accepts some optional arguments (similar tocompleting-read
) that can help:ALIST
-- an alist of bookmarks to choose from (instead of all bookmarks:bookmark-alist
)PRED
-- a predicate that filters the list of bookmark candidatesHIST
-- an input history listThere is also a non-strict version of the function,
bmkp-completing-read-lax
, which is useful if you want to accept a new bookmark name or complete against existing names.