小编Mir*_*lov的帖子

使用flymake和emacs中的tramp远程运行pyflakes?

我正在尝试使用flymake运行pyflakes,如此处所示

这适用于本地文件,并且几乎可以通过稍微调整来处理远程文件,但是我遇到了一个问题,即flymake/pyflakes'在运行时修改了缓冲区(尽管实际上似乎没有任何变化),这会呈现它在实践中有点无用(例如,保存文件运行flymake,它会立即再次修改缓冲区).

这就是我几乎让它工作的方法:

  1. 远程盒子上安装了pyflakes.
  2. 自定义我的tramp-remote-process-environment变量,以便可以在其PATH中找到pyflakes
  3. 使用了上面wiki链接中代码的变体.显然我排除了为远程缓冲区禁用它的检查.此外,该(when (load "flymake" t) ...)构造似乎没有像我预期的那样工作,但我并不太担心.
  4. 重新定义(出于测试目的 - 建议应该没有问题,如果这可以工作)flymake-start-syntax-check-process函数,以便它使用start-file-process(与tramp一起使用)而不是start-process(没有).

处理本地文件时#4中的更改似乎不会导致任何问题,但现在这使得flymake能够为远程文件运行远程pyflakes(错误会按预期突出显示),在这种情况下缓冲区被"修改"每当flymake运行时.

我猜测start-file-process,对于远程进程,会导致本地进程不会发生一些额外的返回值/数据.

有没有人有任何见解/建议?

  • 关于Ubuntu的Emacs 23.1和23.2
  • Python 2.4.6
  • Pyflakes 0.4.0(通过easy_install)

python emacs tramp flymake pyflakes

17
推荐指数
2
解决办法
1640
查看次数

Emacs:自动将LaTeX替换为Unicode符号

在Emacs中,当我编写数学教科书的理论摘要时,我经常使用数学符号.我使用org-mode来构造信息,我知道至少两种输入特殊符号的方法:

  1. 使用嵌入式LaTeX:在表单中输入其表示,\land然后按C-c C-x \(org-toggle-pretty-entities)按字面意思查看;
  2. 使用C-x 8 RET(insert-char).

但我希望它按以下方式运行:我输入LaTeX表示,它会自动转换为物理Unicode格式(缩写?).是否有一个包,如果没有,我应该写什么elisp来实现这种行为?

unicode emacs latex elisp org-mode

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

Emacs:创建新帧时如何创建新的"空"缓冲区?

我的Emacs在OS X系统上.有没有办法在我使用时将新帧默认为空缓冲区⌘N(就像TextEdit的工作方式一样)?我更喜欢先写内容,然后再决定一个合适的文件名.但是,Emacs要我先决定文件名,然后再写内容.我认为没有任何优势.有谁知道为什么Emacs这样工作?

基本上,如果我使用C-x 5 2,Emacs总是弹出一个框架,包含我目前正在处理的任何文件.这很不方便.我也不希望我的Emacs弹出一个默认的新框架*scratch*(许多谷歌搜索结果以某种方式建议这种方法).我更喜欢在新帧中暂时使用一个名为"Untitled"的缓冲区,如果⌘N再次使用,Emacs会弹出另一个临时"无标题2"缓冲区,依此类推.这样,我可以稍后决定缓冲区文件名.

emacs

16
推荐指数
3
解决办法
9547
查看次数

进入或vec:在Clojure中将序列转换回向量

我有以下代码,它增加了向量中每对的第一个元素:

(vec (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
Run Code Online (Sandbox Code Playgroud)

但是我担心这个代码不够优雅,因为它首先使用map创建一个序列,然后将其转换回矢量.

考虑这个类比:

(into [] (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
Run Code Online (Sandbox Code Playgroud)

在#clojure@irc.freenode.net上有人告诉我,使用上面的代码是不好的,因为into扩展到了(reduce conj [] (map-indexed ...)),在这个过程中产生了许多中间对象.然后我被告知实际上into并没有扩展到(reduce conj ...)可能的时候使用瞬态.同时测量经过的时间显示into实际上比...更快vec.

所以我的问题是:

  1. 使用map矢量的正确方法是什么?
  2. 当我使用vecinto向量时,下面会发生什么?

相关但不重复的问题:

vector clojure sequence

15
推荐指数
1
解决办法
8739
查看次数

Common Lisp:列表中的所有或任何元素都是真的

在Python中有函数all,any如果列表的全部或部分元素分别为true,则它们返回true.Common Lisp中是否有相同的功能?如果没有,那么最简洁和惯用的方式是什么?

目前我有这个:

(defun all (xs)
  (reduce (lambda (x y) (and x y)) xs :initial-value t))

(defun any (xs)
  (reduce (lambda (x y) (or x y)) xs :initial-value nil))
Run Code Online (Sandbox Code Playgroud)

lisp python list common-lisp

15
推荐指数
2
解决办法
1825
查看次数

使密钥表现为另一个密钥

我希望某些键和键组合在Emacs中表现为其他键或键组合.例如,我希望F5能够代替C-c涉及它的每个可能的组合,或者C-S-作为C-.如果不手动重新绑定所有这些组合键,是否可以这样做?

emacs elisp keyboard-shortcuts

14
推荐指数
2
解决办法
2221
查看次数

在Emacs中使用带有JS-comint的Node.js

我使用Emacs 24.2.我已安装js-comintjs-modeMELPA执行run-js,现在在REPL而不是>签名我有这个胡言乱语:

^[[1G> ^[[0K^[[3G
Run Code Online (Sandbox Code Playgroud)

在Inferior Javascript模式下的REPL本身工作正常,只是>标志被更改.如果输入未完成的表达式,它甚至会打印出来^[[1G... ^[[0K^[[5G.该^[是在系统的字符,不与复制-粘贴复制的,我加他们为你有一个想法.

在我的init文件中:

(require 'js-comint)
(setq inferior-js-program-command "nodejs")
Run Code Online (Sandbox Code Playgroud)

在终端呼叫中nodejs产生工作REPL.

为什么提示这样做?我该怎么做才能纠正这个问题?

emacs js2-mode node.js read-eval-print-loop

14
推荐指数
2
解决办法
5569
查看次数

JavaScript打印预览

如何查看从网站生成的发票的打印预览.如果我用脚本打印

<a href="javascript:window.print()">print this page</a>
Run Code Online (Sandbox Code Playgroud)

在打印"打印此页"也打印.我怎么能隐藏它?

html javascript css printing

13
推荐指数
4
解决办法
5万
查看次数

Emacs:如何通过其值找到变量?

我有一些价值,知道一些Emacs变量拥有它.如何找到哪个变量具有此值?值可以是符号,整数或字符串,变量可以保存值本身,但是包含值的列表.

例.变量default-directory包含字符串"/var/www/".我有那个字符串,但我突然忘记了变量的名字.如何搜索变量并找到default-directory包含该字符串的变量?

是否有一些内置功能,或唯一的解决方案是自定义elisp片段?

emacs elisp

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

Python向下枚举或使用自定义步骤进行枚举

如何使Python的enumerate函数从较大的数字枚举到较小的数字(降序,递减,倒计时)?或者一般来说,如何使用不同的步进增量/减量enumerate

例如,应用于list的此函数['a', 'b', 'c']具有起始值10和步骤-2,将生成迭代器[(10, 'a'), (8, 'b'), (6, 'c')].

python enumerate

12
推荐指数
2
解决办法
5377
查看次数