小编Joe*_*lor的帖子

刚刚习惯在OS X上的emacs中使用paredit - C-怎么不起作用?

我最近在Mac OS X Leopard中建立了一个Common Lisp编程环境.我发现一个不可或缺的emacs模块是paredit.Paredit尽其所能帮助我更轻松地纠缠我的Lisp代码,但我遇到了一些陷阱.

C-),绑定paredit-forward-slurp-sexp,不是向前啜食的性别,而是回应数字0.我正在使用Mac,在iTerm和终端之间交替使用.两个应用程序都存在同样的问题.

我在GNU Emacs的GUI版本中尝试了相同的组合键,而且它有效.不幸的是,Emacs的图形版本无法满足我的需求; 我想继续使用我的基于iTerm的装备.

所以我问你,stackoverflow:我需要做些什么来让C-)组合注册到iTerm?

lisp macos emacs editor paredit

7
推荐指数
2
解决办法
2485
查看次数

如何将需要root权限的功能添加到Common Lisp库中?

原始问题

我正在尝试创建一个Lisp库,除其他外,它可以编辑我的系统/etc/hosts文件和nginx配置.我面临的问题是,因为我的Lisp图像是一个无特权的用户,我的图书馆不能做这些事情.理想情况下,当需要root权限时,我可以为我的库提供密码,以便暂时提升其访问权限以完成任务.唉,我还没找到任何Common Lisp等价的sudo.有吗?我是以错误的方式接近这个吗?我怎么能解决这个问题呢?

在代码中,我希望能够做的基本上是这样的:

(with-sudo (:username "root" :password (securely-read-line))
  (with-open-file (f "/etc/hosts" :direction :output :if-exists :append)
    (format f "127.0.0.1 mywebsite.local~%")))
Run Code Online (Sandbox Code Playgroud)

澄清

我在OS X上使用SBCL.我正在尝试创建一个基本上是网站快速项目专业化的库.目前,每次在本地计算机上设置新的Web项目时,我都必须编辑遍布系统的配置文件.我想尽可能多地自动化,我希望能够在我通常打开并连接到单个SBCL实例的SLIME会话中执行此操作.

以下是一些其他注意事项:

  1. 我不希望我的主要SBCL实例成为setuidroot用户
  2. 我不介意产生一个新的进程,无论是一个小的C程序还是一个SBCL的裸实例,它会加载几行代码然后退出.
  3. 我想尽可能保持Lisp与C的比例.
  4. 某些文本编辑器(如TextMate)在访问需要更高权限查看的文件时会提示用户名和密码,并提供相应的访问权限.我想知道如何让我的Lisp库做同样的事情?
  5. 起初我无法sudo从SBCL中获得(实际程序本身):

    (inferior-shell:run/ss '("sudo" "ls" ".")) ;; how can I pass sudo a password?

    现在看起来可以使用sudo's -S选项(谢谢JustAnotherCurious).我想我可能会走这条路; 这绝对是我现在所倾向的.

无论如何,谢谢大家!我从你们所有人那里学到了很多东西.

unix linux macos common-lisp elevated-privileges

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

标签 统计

macos ×2

common-lisp ×1

editor ×1

elevated-privileges ×1

emacs ×1

linux ×1

lisp ×1

paredit ×1

unix ×1