小编pol*_*lot的帖子

如何在Windows上的Emacs中保留剪贴板内容?

这是我遇到过几次的情景:

我从其他程序复制一些文本.转到Emacs并进行一些编辑,然后我将文本粘贴/抽出.Cy to yank and voila ...而不是我打算粘贴的文本.然后我意识到当我移动东西时,我使用了像kill这样的命令line和backward-kill-words,那些被杀死的行和单词现在占据了杀戮戒指.但是输入My不会带回原始复制的文本,因此我需要返回原始程序再次复制文本.如果原始程序关闭,甚至最糟糕的是,我完全丢失了复制的文本.

杀戮线等是这样的基本命令(比如几乎击中删除键),虽然我不介意使用这些命令使杀死环变得有点混乱,但我希望我的原始文本保留在某处杀戮戒指让我最终可以通过键入My几次来找到它.在覆盖剪贴板内容之前,如何让Emacs自动将当前剪贴板内容保留到kill-ring中?

emacs elisp

16
推荐指数
1
解决办法
1713
查看次数

在Emacs中,键盘逃脱的最佳方法是什么,不要破坏其他窗口?

编辑:我知道有键盘退出(通常绑定到Cg); 但我更感兴趣的是如何处理Emacs附带的编辑功能(就像在这种情况下).当我想改变一些内置函数时,我经常遇到这种情况.

在emacs中,当你按下M-ESC ESC(或ESC三次)时,你可以摆脱很多情况,比如瞬态标记等.但是我习惯性地按下了逃生键(我实际上将其重新映射到了逃脱键)比我想要的更多,并最终杀死我的Windows配置,这是非常烦人的.函数keyboard-escape-quit在simple.el中定义:

(defun keyboard-escape-quit ()
  "Exit the current \"mode\" (in a generalized sense of the word).
This command can exit an interactive command such as `query-replace',
can clear out a prefix argument or a region,
can get out of the minibuffer or other recursive edit,
cancel the use of the current buffer (for special-purpose buffers),
or go back to just one window (by deleting all but the selected window)."
  (interactive)
  (cond ((eq last-command 'mode-exited) nil)
    ((> (minibuffer-depth) …
Run Code Online (Sandbox Code Playgroud)

emacs elisp dot-emacs

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

如何让emacs shell自动执行init文件?

我的bash init脚本(〜/ .profile)包含重要的初始化,但每当我在emacs中使用shell-command或编译时,都不会读取该初始化文件,如果没有这些初始化,我的emacs中的bash命令将会失败:(我如何强制emacs执行我用于shell命令的shell的init文件?

澄清:我不是在谈论Mx shell,当我将.profile符号链接到.emacs_bash时,它正好读取我的init文件.

emacs bash .bash-profile

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

如何获取emacs中最后关闭的文件列表?

有时我的手指发痒并杀死一些缓冲剂,我打算埋葬.问题是,我使用tramp来编辑来自多台机器的文件,而且这些文件名变得冗长而令人讨厌,而且总的来说,我并不擅长找到我的文件的位置.所以我想让emacs跟踪我刚刚关闭的文件,以便我可以轻松地重新打开它们(通过理想情况下,通过ido提示).

这是我到目前为止所做的,这是行不通的:

(defvar closed-files '())

(defun track-closed-file ()
  (message buffer-file-name)
  (and buffer-file-name
       (cons  buffer-file-name closed-files)))

(defun last-closed-files ()
  (interactive)
  (find-file (ido-completing-read "Last closed: " closed-files)))

(add-hook 'kill-buffer-hook 'track-closed-file)
Run Code Online (Sandbox Code Playgroud)

我真的不擅长elisp,可能在定义变量和添加单元格时陷入困境......

[我知道recentf,但是跟踪打开的文件,而不是关闭的文件.]

emacs elisp

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

使用来自ssh会话的emacs tramp来编辑远程文件

这可能是一个有点过时的问题了.我使用tramp来编辑远程文件,但是我也打开了几个终端ssh-ing到那个远程机器以及其他工作(我在emacs中运行ssh shell时遇到了问题).

通常在终端工作期间我想编辑一些文件,我当前的程序是复制文件名,然后使用emacs tramp打开该文件(在以tramp格式获取文件路径后乱七八糟).这对于快速编辑来说太多了,并且在路径处理部分中容易出错.

问题是:我可以在远程ssh会话中执行一些带有文件名的命令,将其转换为tramp格式(这是简单的部分),并运行本地命令(如emacsclient blahblahblah),以便我可以使用tramp编辑远程文件我当地的emacs?

我不确定我是否足够清楚.我不想在远程计算机上运行emacs(在终端上或通过x会话),但我确实想从远程提示符向本地emacs发送文件,如下所示:

user@remote-machien ~/ $ run_local_emacs somefile
# then the file "/ssh:user@remote-machine/:/home/user/somefile" shows up 
# in my local emacs
Run Code Online (Sandbox Code Playgroud)

emacs ssh tramp

12
推荐指数
1
解决办法
3552
查看次数

"抽象静态"方法 - 如何?

关于为什么没有抽象的静态方法/字段,已经有几个SO问题,但我想知道如何实现以下伪代码:

class Animal {
    abstract static int getNumberOfLegs(); // not possible
}

class Chicken inherits Animal {
    static int getNumberOfLegs() { return 2; }


class Dog inherits Animal {
    static int getNumberOfLegs() { return 4; }
Run Code Online (Sandbox Code Playgroud)

这是问题:假设我想确保每个继承的类Animal都包含getNumberOfLegs()方法(即几乎像一个接口,除了我确实希望抽象类实现所有子类共有的几个方法,因此纯接口不会在这里工作).getNumberOfLegs()显然应该是一个静态的方法(假设在一个完美的世界中,我们不会使鸡和狗瘫痪,因此getNumberOfLegs不依赖于实例).

如果没有"抽象静态"方法/字段,可以将方法从Animal类中删除,然后存在某些子类没有该方法的风险.或者可以制作getNumberOfLegs一个实例方法,但是必须实例化一个类以找出动物有多少腿 - 即使它没有必要.

人们通常如何实施这种情况?


编辑:我在这里如何使用它.假设(现在这很荒谬,但无论如何......)每只动物的腿数是独一无二的,所以我可能有类似的东西:

Animal getModelAnimal(int numberOfLegs) {
   if (numberOfLegs == Chicken.getNumberOfLegs()) return new Chicken();
   else if (numberOfLegs == Dog.getNumberOfLegs()) return new Dog();
}
Run Code Online (Sandbox Code Playgroud)

oop static-methods abstract-methods

12
推荐指数
1
解决办法
1288
查看次数

在sqlite数据库中保存日志表?

我正在寻找一种方法来设置(通过SQL)一个日志表,其中包含对我的sqlite数据库所做的所有事情(最好是根据发布到数据库的insert,create table等语句).我确信有办法通过在每个表上设置触发器来实现它,但这只是太多的工作,如果我稍后更改数据库的模式,那就不好了.是否存在一个对数据库起作用的全局事物(如数据库本身的触发器)?

我也愿意提供其他建议来保存对sqlite数据库所做更改的记录,以便我可以在几个月后回顾这些更改.

(编程当然有方法,但我不能确定我的程序是唯一写入数据库的程序).

sql sqlite

9
推荐指数
2
解决办法
8390
查看次数

如何将参数与emacs中的函数对齐?

如果我有以下内容:

func(arg1, arg2, arg3...)
func(longargarg1, longerarg2, arg3,...)
...
Run Code Online (Sandbox Code Playgroud)

如何对齐参数以便跟随它?

func(arg1       , arg2      , arg3...)
func(longargarg1, longerarg2, arg3,...)
...
Run Code Online (Sandbox Code Playgroud)

[我可以使用Mx align-regex来对齐第一个参数,但我不能用合适的正则表达式来对齐其余的参数.如果某些参数是带有逗号的字符串,则答案也会考虑到这一点.

emacs elisp code-formatting

9
推荐指数
1
解决办法
1901
查看次数

如何处理makefile中的环境设置?

因此,要编译我的可执行文件,我需要正确设置库位置.问题是,设置来自一堆执行env变量导出的脚本,需要设置的内容可能会发生变化(超出我的控制范围),所以我需要使用这些脚本而不是复制它们的功能.要在常规命令行中编译,我需要执行以下操作:

setup library1
setup library2
source some_other_setup_script.bash
g++ blah.c
# setup is a executable on my system that run some scripts
Run Code Online (Sandbox Code Playgroud)

我怎么写一个完成它的makefile?据我所知,env变量导出不会结转(即"export VAR = remember; echo $ VAR"不起作用)

makefile

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

在emacs中为文件系统之外的其他东西实现dired接口?

通常用于高能物理的ROOT数据分析框架使用二进制文件格式,其具有内部结构,如真实文件系统(即文件夹和文件).程序的ls()方法输出如下所示:

  KEY: TH1D     name1
  KEY: TH1D     name2
  KEY: TH2D     name3
....
Run Code Online (Sandbox Code Playgroud)

"TH1D"和"TH2D"等只是对象类型.在emacs中以类似dired的界面浏览文件真是太好了.我当然没有时间从头开始编写一个dired接口的能量/时间(即使在dired.el源的帮助下).我的问题是:如果可能的话,我怎样才能通过重新实现一些函数来加入到dired接口中,为上面的输出创建一个类似于dired的界面?

我当然不期待这里有完整的解决方案,而是指向示例,教程和其他有用信息的指针.

emacs physics elisp root-framework

7
推荐指数
1
解决办法
276
查看次数