目前,当我使用C或C++编码时,我使用Emacs的工作流涉及三个窗口.右边最大的包含我正在使用的文件.左边分为两个,底部是我用来输入编译或make命令的shell,top通常是我在工作时要咨询的某种文档或README文件.现在我知道有一些非常专业的Emacs用户,我很好奇其他Emacs在功能上是有用的,如果打算将它用作一个完整的IDE.具体来说,大多数IDE通常以某种形式实现这些功能:
对于其中的一些,很明显Emacs如何适应这些功能,但其余的呢?此外,如果必须关注特定语言,我会说它应该是C++.
编辑:一位用户指出,当我说'剩下的'时,我应该更具体一些.大多数情况下,我对有效的版本控制以及文档查找感到好奇.例如,在SLIME中,在Lisp函数上进行快速hyperspec查找相当容易.有没有快速查找C++ STL文档中的内容(例如,如果我忘记了hash_map的确切语法)?
我尝试使用spotify Web API通过我的应用程序授权用户但我收到此错误:
INVALID_CLIENT: Invalid redirect URI
Run Code Online (Sandbox Code Playgroud)
网址:
GET https://accounts.spotify.com/authorize/?client_id=6ae90bf75bf748c8874a75d16682f0c5&response_type=code&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=user-read-private%20user-read-email
Run Code Online (Sandbox Code Playgroud)
我看不出问题出在哪里......你能帮忙吗?
基本上,我什么时候应该使用Emacs Lisp的function
程序?我还没有发现其中有行为上的差异,如果你函数作为参数传递的任何实例'like-this
或#'like-this
.事实上,如果我评估(eq 'goto-char #'goto-char)
它返回t
.
我遇到的Emacs Lisp代码很少使用function
/ #'
; 作者只是quote
/ '
一切.
例:(add-hook 'emacs-lisp-hook 'turn-on-eldoc-mode)
但是,我可以找到一些反例.这是Emacs 24.3源代码中的一个electric.el
:
(add-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function
'append)
Run Code Online (Sandbox Code Playgroud)
(do-something '(lambda …
(do-something (lambda …
'
和#'
,只要我使用一个版本的Emacs超过最近X?对于我的生活,我无法理解延续.我认为这个问题源于我不明白它们的用途.我在书籍或网上找到的所有例子都非常简单.他们让我想知道,为什么有人甚至想要延续?
这是一个典型的不切实际的例子,来自TSPL,我认为这是一本非常公认的关于这个主题的书.在英语中,他们将继续描述为计算结果的"做什么".好的,这是可以理解的.
然后,第二个例子给出:
(call/cc
(lambda (k)
(* 5 (k 4)))) => 4
Run Code Online (Sandbox Code Playgroud)
这有什么用?k
甚至没有定义!当(k 4)
无法计算时,如何评估此代码?更何况,如何call/cc
知道撕掉4
最内层表达式的参数并返回它?会发生什么事(* 5 ..
?如果这个最外层的表达式被丢弃,为什么要写呢?
然后,陈述的"较少"的简单示例是如何使用call/cc
来提供递归的非本地退出.这听起来像流控制指令,即break/return
在命令式语言中,而不是计算.
通过这些动议的目的是什么?如果有人需要计算结果,为什么不只是存储它并在以后根据需要调用.
我有以下代码:
foreach(// Some condition here)
{
while (// Some condition here)
{
foreach (// Some condition here)
{
if (// Condition again)
{
//Do some code
}
if (// Condition again)
{
//Stop the first foreach then go back to first foreach
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是当我if
在最后一个foreach
循环中点击第二个语句时返回第一个foreach
循环.
注意:如果第二个if
语句不为真,它应该继续最后一个foreach
循环,直到条件不为真.
提前致谢!
在GNU Emacs中,我想在当前选定的文本上运行一个程序figlet.然后我想评论生产的区域.
我已经弄清楚如何使用标准的Emacs命令来做到这一点:
但是,我没有弄清楚如何编写Emacs lisp程序来完成所有这些工作.这是我的尝试:
(defun figlet-region ()
(interactive)
(push-mark)
(shell-command-on-region "figlet")
(comment-region (mark) (point))
(pop-mark)
)
(global-set-key "\C-c\C-f" 'figlet-region)
Run Code Online (Sandbox Code Playgroud)
然后C-<space>; M-x figlet-region
生产垃圾:
figlet-region: Wrong number of arguments: #[(start end command &optional output-buffer replace error-buffer display-error-buffer) "ÆÇÈ \"!É 'jÊ!j;j 0Wb ?Ë`Ì\"Í ÎQÎDRÎÉ!\"& ffÏ )ãÐqÑ!#Ò#p=¬É$]d|e^|Íed Î ÎD¡ÎÉ!\"&â%qÉ$Á&%Ó *Í ÉØ#DÚ#É!\"&*#Ô!#ÕÖ×!8WrÐ!qd`Z'o ØcÙÉ\"d'Zb)(Úp!)Û!*" [error-buffer small-temporary-file-directory temporary-file-directory exit-status error-file replace make-temp-file expand-file-name "scor" nil ...] 9 1945557 (let (string) (unless (mark) (error "The …
最近,我一直在调查Scheme和Common Lisp之间关于这两种语言对延续的方法的区别.
我注意到Common Lisp方法比Scheme方法更保守.
此外,Scheme提供了一个原始的call-with-current-continuation
,通常是缩写的call/cc
,它在ANSI Common Lisp规范中没有等价物(尽管有一些库试图实现它们).
有没有人知道为什么决定不在ANSI Common Lisp规范中创建类似的原语?
提前致谢.
是否可以Common Lisp
在iOS中调用函数?
如果是这样,是否可以在动态库中创建它?
Christian Queinnec写了一篇名为LISP In Small Pieces的杰作,其中包括11个Lisp Interpreters和两个Lisp编译器.
当你去从网站下载的代码在这里 -它的评论:
The programs of this book are available on the net.
These programs used to run with some Scheme systems around 1994.
Run Code Online (Sandbox Code Playgroud)
任何的想法:
(a)当时运行的计划系统是什么,更重要的是;
(b)今天会运行哪些计划系统?
我正在研究技术图纸(svg/ruby)的解决方案.我想操纵矩形,并add!
在这个类中有一个方法:
class Rect
def add!(delta)
@x1+=delta
... # and so on
self
end
end
Run Code Online (Sandbox Code Playgroud)
我还需要一个add
返回a Rect
但不操作的方法self
:
def add(delta)
r=self.dup/clone/"copy" # <-- not realy the 3 and no quotes, just in text here
r.add! delta
end
Run Code Online (Sandbox Code Playgroud)
dup
并且clone
不要做我的事情但是:
def copy; Marshal.load(Marshal.dump(self)); end
Run Code Online (Sandbox Code Playgroud)
确实.
为什么普通Ruby中不存在这样的基本功能?请不要告诉我,我可以扭转add
和add!
,让add
做的工作,并add!
调用它.