小编Sin*_*ned的帖子

如何在emacs中创建空文件?

如何从emacs创建一个空文件,理想情况下是在一个直接缓冲区中?

例如,我刚刚以dired模式打开了一个Python模块,创建了一个新目录,在dired中打开了,现在需要__init__.py在目录中添加一个空文件.

如果我使用,C-x C-f __init__.py RET C-x C-s那么emacs不会创建该文件,因为没有对它进行任何更改.我必须输入文件,保存,删除我的输入,然后再次保存,以便工作.

谢谢

emacs elisp file dired

62
推荐指数
9
解决办法
5万
查看次数

在git中切换分支时,如何让Emacs恢复所有未更改的缓冲区?

通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否要还原它们(因为它认为它们已在磁盘上更改),即使内容相同.

首先,如果磁盘上的内容与缓冲区中的内容相同,我想找到一种让emacs根本不问我的方法.

其次,我想要一个命令恢复(没有查询)我没有未保存更改的所有打开缓冲区,并向我查询那些确实有未保存更改的命令.

或者,我会接受有关其他解决方案,工作方式等方面的建议,我可以尝试.如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp.

PS如果重要的话,我在OSX上使用Aquamacs.

编辑:

好吧,我发现revbuffs包几乎是我需要的.当然足以阻止我想尝试自己写任何新东西.(我将revbuff映射到Cmd-R,效果非常好.类似于其他Mac应用程序中的Cmd-R).

全局自动恢复模式将是一个非常好的解决方案,我希望我可以选择两个答案.我更喜欢revbuffs,仅仅是因为想要控制所发生的事情,可能是非理性的感觉.

我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git.(我还没有使用emacs足够长的时间来使它成为我的操作系统).我会更彻底地调查magit.

EDIT2:

我已经使用magit一年了,并且强烈推荐它来处理emacs中的git.但是,每当我在emacs之外进行rebase时,我仍然会使用revbuff.

git emacs elisp aquamacs

53
推荐指数
3
解决办法
5169
查看次数

如何访问Emacs Lisp中当前区域的内容?

我想以函数中的字符串形式访问当前区域的内容.例如:

(concat "stringa" (get-region-as-string) "stringb")
Run Code Online (Sandbox Code Playgroud)

谢谢

埃德

lisp emacs region

43
推荐指数
3
解决办法
9762
查看次数

在Python中为什么/什么时候`x == y`调用`y .__ eq __(x)`?

Python文档清楚地说明了x==y调用x.__eq__(y).然而,似乎在许多情况下,情况正好相反.它记录了何时或为何发生这种情况,以及如何确定我的对象__cmp____eq__方法是否会被调用.

编辑:只是为了澄清,我知道这__eq__是在优先考虑__cmp__,但我不清楚为什么y.__eq__(x)被优先调用x.__eq__(y),当后者是文档状态将发生.

>>> class TestCmp(object):
...     def __cmp__(self, other):
...         print "__cmp__ got called"
...         return 0
... 
>>> class TestEq(object):
...     def __eq__(self, other):
...         print "__eq__ got called"
...         return True
... 
>>> tc = TestCmp()
>>> te = TestEq()
>>> 
>>> 1 == tc
__cmp__ got called
True
>>> tc == 1
__cmp__ got called
True
>>> 
>>> 1 == te …
Run Code Online (Sandbox Code Playgroud)

python comparison operator-overloading

37
推荐指数
2
解决办法
1万
查看次数

要求Emacs更清楚地突出显示哪个窗口(窗格)具有焦点(光标)

假设我将我的Emacs窗口拆分为多个图块,例如:

---------------------------
|            |            |
|            |            |
---------------------------
|                         |
|                         |
---------------------------
Run Code Online (Sandbox Code Playgroud)

当我在瓷砖(也就是Emacs中的窗口)之间切换以编辑我的文件(例如使用C-x o)时,我可以通过在屏幕上直观地找到光标(点)并检查状态栏中的阴影区别来查看我在哪个瓷砖上.每个瓷砖:

但是,将光标定位在大屏幕上并不容易,并且光标所在状态栏上的阴影差异几乎可以忽略不计:

这是选择相应窗口时状态栏的样子:

              IMG1

这是选择相应窗口时的样子(注意绿色有点暗)

              在此输入图像描述

以上是与颜色主题zenburn在GNU Emacs的23.3.1.

我的问题是:有没有办法让Emacs更清楚地指出哪个窗口/磁贴/缓冲区是具有焦点的窗口/磁贴/缓冲区?

emacs

23
推荐指数
2
解决办法
4768
查看次数

Emacs复制匹配行

在Emacs中,如何轻松复制与特定正则表达式匹配的所有行?最好在我输入时突出显示匹配的行.

occur 通过将它们复制到缓冲区来获得中途,但它增加了许多额外的东西.

emacs

15
推荐指数
3
解决办法
3005
查看次数

如何获取Emacs lisp非交互功能列表?

如何获得可以在Emacs Lisp中使用的非交互功能的完整列表?

交互式的很容易在帮助系统中找到,但我想要一个完整的列表,列出我可以使用的所有其他功能.例如concat,car,cdr等.(并优选用文档).

谢谢

埃德

编辑:回答感谢Jouni.我对他的答案进行了一些调整,然后对结果进行排序(使用他的代码结果来帮助我找到正确的排序函数!)

(flet ((first-line (text)
                   (if text
                       (substring text 0 (string-match "\n" text))
                     "")))
  (let ((funclist (list)))
    (mapatoms 
     (lambda (x)
       (and (fboundp x)                     ; does x name a function?
            (not (commandp (symbol-function x))) ; is it non-interactive?
            (subrp (symbol-function x))          ; is it built-in?
            (add-to-list 'funclist 
                         (concat (symbol-name x) " - " (first-line (documentation x))
                                 "\n")))))
    (dolist (item (sort funclist 'string<))
      (insert item))))
Run Code Online (Sandbox Code Playgroud)

lisp emacs function

13
推荐指数
2
解决办法
2115
查看次数

如何将光标固定在Emacs中的屏幕中间,以便页面移动而不是光标?

我想将光标固定在屏幕的中心线上,这样当我按Ctrl-N或Ctrl-P时,页面本身会向上或向下移动,光标会保持不动.

有没有人有任何关于如何实现这一目标的提示?

谢谢

埃德

emacs scroll elisp

13
推荐指数
2
解决办法
2841
查看次数

Emacs 23,OS X,multi-tty和emacsclient

如何在OS X上以多tty模式使emacs 23正常工作?

我已添加(server-start)到我的.emacs中,并发现运行/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n ~/myfile.txt会在我的emacs.app中打开它,但它不会将emacs带到前面.

那么,当我运行emacsclient时,如何让emacs.app出现在前面呢?(我考虑过编写一个函数,每次打开文件时将当前帧放在前面,或者编写一个Applescript来执行类似的工作,可以在emacsclient的同时调用)

emacs.app中的emacsclient是最好用的吗?我假设如果是这样我会写一个别名,但是使用它而不是/ usr/local/bin中的东西似乎很奇怪

有没有人得到任何其他提示或例子让这个工作?

macos emacs elisp

5
推荐指数
3
解决办法
4418
查看次数

在emacs中,如何仅突出显示当前帧中的当前行?

在Emacs(Mac Leopard上的23个)中,我发现了如何使用hl-line-mode突出当前行,但是当在所有缓冲区中全局使用它时,它会突出显示所有帧中所有缓冲区中的当前行.

我希望能够仅在当前活动的缓冲区中突出显示当前行(或者至少有一个不同的面).我确信这在某种程度上是可能的,因为光标的变化取决于缓冲区是否是当前缓冲区.

谢谢

Singletoned

emacs elisp

4
推荐指数
1
解决办法
1420
查看次数

为什么分配变量名称_to_会影响值的查找?

在python中,以下工作正常:

def test_foo():
    class Foo(object):
        pass
    class Fam(object):
        bar = Foo

test_foo()
Run Code Online (Sandbox Code Playgroud)

但是,以下内容失败NameError: name 'Foo' is not defined:

def test_foo():
    class Foo(object):
        pass
    class Fam(object):
        Foo = Foo

test_foo()
Run Code Online (Sandbox Code Playgroud)

为什么这个名字,我分配影响多数民众赞成被分配值的查找?

python namespaces

3
推荐指数
1
解决办法
74
查看次数

emacs的Saltstack模式

如何让Emacs使用Salt文件?是否有一些代码可用,或者我如何自己创建模式?

有一个Sublime Text插件可以做类似的事情.

谢谢

python emacs salt-stack

3
推荐指数
1
解决办法
857
查看次数