我想在迷你缓冲区中显示彩色的文本字符串,但是当我使用'message'函数时,文本属性被剥离.
我甚至不确定这是一个以前的命令或一个未完成的命令或其他什么,但我知道我真的不喜欢它.
我的问题是一些命令(或消息,或其他)被卡在迷你缓冲区中,因此当我键入一个新命令时,它会很快出现,然后迷你缓冲区又回到了顽固的命令.似乎选择了一些命令,并且在使用大量命令后,其他东西会被卡在那里,但是总会有一些东西显示出我不想看到的东西.我尝试多次输入Cg以查看它是否会退出,但这不起作用.
这是我现在拥有的图片:

我做什么都没关系,那一点
标签:hl-line
不会离开.键入新命令时它会暂时离开,但它会返回.我不喜欢它,它令人困惑,我更愿意看到最后使用过的命令.
我确实检查了迷你缓冲区的自定义选项(它的底部部分可以在我的图片中看到),但我发现似乎没有什么是我想要的.
有任何想法吗?
我一直在试图改变emacs迷你缓冲区的字体/面部与emacs默认字体分开,但没有太多运气.
具体来说,我有兴趣使用与emacs MULE一样的迷你缓冲区字体大小,使用我当前的字体设置,或者如果我在"上网本"屏幕上使用emacs,有时MULE中的字符选择选项是有点小.
在emacs中可以轻松访问的选项是minibuffer-prompt和minibuffer-prompt-properties,但这些只适用于命令提示而不是常规的迷你缓冲文本.
emacs中似乎列出了一些用于创建迷你缓冲帧或从迷你缓冲窗口获取内容等的迷你缓冲变量.但这些变量与改变迷你缓冲区面无关.甚至可以将迷你缓冲区面与默认的emacs分开更改吗?
一个有趣的选择是oneonone emacs http://www.emacswiki.org/emacs/OneOnOneEmacs项目.但是可以改变专用的迷你缓冲框架吗?在我彻底更改当前的emacs设置之前,我希望能够先改变字体或创建我自己的可变迷你缓冲帧等等......
任何帮助和/或创意都将不胜感激.
我有一个异步启动程序的函数:
(defun app (app-name)
(interactive "sRun application: ")
(async-shell-command app-name))
Run Code Online (Sandbox Code Playgroud)
我有一个可供选择的所有可执行文件的列表.我希望app函数表现为switch-to-buffer,为用户提供TAB完成.我如何在Emacs中使用迷你缓冲区?
当我在迷你缓冲区中选项卡完成并且Emacs在新缓冲区中显示完成列表时,如何在不使用鼠标的情况下切换到该缓冲区?
我试过了C-x o,但是刚刚切换到第一个缓冲区,我进入了迷你缓冲区.
我也试过了C-x b,但这给了我command attempted to use minibuffer while in minibuffer.
最后我尝试了C-x <C-right>,这给了我cannot switch buffers in minibuffer window.
编辑:我在我的例子中谈到了迷你缓冲完成,但是能够从常规缓冲区中访问完成列表(使用键盘)对我来说也很重要,而且不起作用.M-v建议使用快捷方式,但它似乎只能M-x在我尝试过的所有其他缓冲区中访问的迷你缓冲区内工作M-v,scroll down command并且不会切换到完成列表.我似乎甚至没有在其他miniuffers工作.例如,它在由M-!两者调用的shell命令迷你缓冲区中不起作用.
我看到我可以通过在迷你缓冲器中使用"Mp"来回溯命令历史.但我希望看到我在迷你缓冲器中使用的所有命令.
谢谢.
我很好奇,是否可以分离回声区域和迷你缓冲区,因此两个不同的位置(线,窗格,帧)用于输出消息和输入命令.
正如在不活动期间隐藏Emacs回声区域所述,完全摆脱回声区域是不可能的,但有些提议是:
*Messages*为其他消息使用缓冲区.我有什么选择?理论上可以将回声区域和迷你缓冲区分开吗?它理论上是否需要重写C源代码并重新编译Emacs?请发表任何想法和想法.
当我在emacs中键入一个关闭括号时,迷你缓冲区会显示包含匹配的开括号的行.有没有办法在迷你缓冲区中显示括号,括号等的匹配行而不删除括号并重新输入?
我正在使用 GNU Emacs 24.4.1(编辑:也可以在 24.5.1 中看到)。vc-mode 的一些旧输出(我认为)出现在迷你缓冲区中:
Auto-merging foo/bar
Run Code Online (Sandbox Code Playgroud)
我目前没有进行任何版本控制操作,但此文本卡在迷你缓冲区中。按 Cg 会短暂地将其替换为“退出”,但会在下一次击键时返回。
它不是什么:它不是递归编辑。C-] 或abort-recursive-edit给出错误No recursive edit is in progress,并且迷你缓冲区中的尴尬文本仍然存在。
它不是用鼠标选择的文本,因为我在文本控制台(通过 ssh 的 GNU 屏幕会话)中运行,没有鼠标支持。
我已经尝试了http://www.emacswiki.org/emacs/MiniBufferswitch-to-minibuffer中的命令,但这给出了错误。然而这个尴尬的文字仍然不断出现。Minibuffer is not active
这不是屏幕大小问题(使用过时的文本,因为 Emacs 不知道终端窗口的正确大小),因为我可以调整终端窗口的大小,Emacs 也可以正确调整它的大小......文本仍然显示在迷你缓冲区中。
有时我在迷你缓冲区中看到两行或更多行文本的这种效果。事实上,我当前的 Emacs 会话emacsclient -nw在一个屏幕上的一个客户端会话 ( ) 中具有该功能,主会话仅显示一行。客户端会话在迷你缓冲区中显示了几行版本控制内容:
Auto-merging foo/bar
CONFLICT (content): Merge conflict in foo/bar
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它消失?
我试图在运行外部命令后将文本插入到迷你缓冲区中。例如
(call-interactively 'eval-expression)
(insert "blah")
Run Code Online (Sandbox Code Playgroud)
当然,问题是 eval-expression 在用户输入之前不会返回。我的最终目标是将一些默认的可编辑文本添加到任意命令的迷你缓冲区提示中(即“默认字符串”或模板)。我怎样才能做到这一点?
emacs ×10
minibuffer ×10
elisp ×4
autocomplete ×1
emacs-faces ×1
emacs23 ×1
font-lock ×1
font-size ×1
launcher ×1