在GNU Emacs中使用切换到缓冲区时如何防止打开新缓冲区

时间:2015-10-28 19:01:07

标签: emacs navigation

切换到缓冲区是绑定到C-x b的函数。偶尔我输错了我打算切换到的缓冲区,这导致我打开一个名称不正确的新缓冲区。首选行为(在我的情况下)是无法打开缓冲区...可能无法完成缓冲区名称。我记得几年前遇到一种不允许切换到缓冲区打开新缓冲区的技术。也许StackOverflow上的某个人可以识别出这种技术吗?

谢谢!

的setjmp

3 个答案:

答案 0 :(得分:2)

我认为你想要自定义confirm-nonexistent-file-or-buffer。例如。有类似的东西:

(setq confirm-nonexistent-file-or-buffer t)

默认情况下,如果您在RET之前点击完成,则只需要确认。

答案 1 :(得分:1)

我能够在Bob Glickstein的“编写GNU Emacs Extensions”中找到解决方案。 (我知道我已经在某个地方看到了它,但是花了一些时间来弄清楚在哪里)。我有1997年的版本,答案在第2章中给出了一个名为" Advised Buffer Switching。" Glickstein演示了切换到缓冲区的定制,作为指导读者提供建议的方法。功能。

    $('.imgbox').click(function(e){
    var x=e.pageX-20;
    var y=e.pageY-20;
    var ap_div='<div class="ap_div" style="left:'+ x +'px;top:'+ y+'px"></div>';
    $('.full-page').append(ap_div)});

  $('body').delegate(".ap_div", 'click', function(e){
    $(this).remove();
   });

函数read-buffer读取缓冲区的名称并返回一个字符串。该字符串传递给switch-to-buffer。第一个参数是默认值。第二个参数是一个布尔值,用于确定是否允许不存在的缓冲区。

的setjmp

答案 2 :(得分:0)

我认为比防止打开错误的缓冲区更好的解决方案是切换到你想要的缓冲区。

这可以通过ido.el完成,这是我最喜欢的包之一。安装该软件包并配置如下,然后您可以键入更少(并忽略大小写)以切换到缓冲区。

(ido-mode 'buffer)
(setq ido-enable-flex-matching t)

例如,你有缓冲区&#34; abcd.el&#34;,&#34; hijk.el&#34; &#34; ABC.c&#34;,简单地说C-x b然后键入&#34; a.c&#34;和。现在,你在&#34; ABC.c&#34;缓冲。 C-x b后跟一个字符&#34; h&#34;会带你去&#34; hijk.el&#34;缓冲液中。