虽然我在任何地方都设置了UTF-8(在我的lein项目中,slime-lisp组自定义,Emacs缓冲区本身......),我在尝试运行代码时不断收到此错误(def beta "?"):
Coding system iso-latin-1-unix not suitable [...]
Run Code Online (Sandbox Code Playgroud)
例如,仅在Emacs中发生,而不是在lein repl从命令行运行时发生.
可能是什么原因造成的?我正在使用Ubuntu,如果这有任何区别.
我想将文件从复杂的目录结构移动到一个地方。例如,我有这个深层次的层次结构:
foo/
foo2/
1.jpg
2.jpg
...
Run Code Online (Sandbox Code Playgroud)
我希望它是:
1.jpg
2.jpg
...
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案:
def move(destination):
for_removal = os.path.join(destination, '\\')
is_in_parent = lambda x: x.find(for_removal) > -1
with directory(destination):
files_to_move = filter(is_in_parent,
glob_recursive(path='.'))
for file in files_to_move:
shutil.move(file, destination)
Run Code Online (Sandbox Code Playgroud)
定义:directory和glob_recursive。请注意,我的代码仅将文件移动到它们的公共父目录,而不是任意目标。
如何简洁优雅地将所有文件从复杂的层次结构移动到一个地方?
我使用以下代码在全局范围内启用hl-mode.
(global-hl-line-mode t)
Run Code Online (Sandbox Code Playgroud)
在指定模式下关闭hl-line功能.我使用以下代码执行此操作.
(add-hook 'org-mode-hook (lambda () (global-hl-line-mode 0)))
Run Code Online (Sandbox Code Playgroud)
但它关闭了全球范围的hl-line功能.
如何在指定模式下禁用hl-line功能?
我计划在不久的将来在Emacs中自定义模式行,我不明白在模式行中列出次模式的算法.
在Emacs手册的"1.3模式线"部分中,它说:«MINOR是一些已启用的"次要模式"列表»
在«23.2次模式»部分中,它说:«大多数缓冲区本地次要模式在启用时在模式行中说明»
但是我列出了ErgoEmacs次要模式,这是全局的.有人可以解释这背后的机制,并最好指出负责这一点的各种elisp来源吗?
我有一个目录tasks/中的org-agenda-files变量.当我org-agenda-files通过C-c [command(org-agenda-file-to-front)向变量添加文件时,目录路径将替换为当前位于该目录中的文件的路径.这很糟糕,因为当我tasks/稍后添加一些文件时,它们不会对我的议程做出贡献.
有没有办法避免这种情况,或者我不得不手动添加文件和目录org-agenda-files?
这个问题在组织模式中得到承认- 用纯文本组织你的生活!
Emacs版本:24.0.50.1组织模式版本:7.8.09
是否可以删除内置的Emacs软件包,如"tetris"?从24.1开始,无法将它们标记为在包列表中删除.通过删除部分或全部内置包,最好安装Emacs - 尽管几乎没用.有可能以某种方式做,并且将来会增加这种能力吗?
我有一个异步启动程序的函数:
(defun app (app-name)
(interactive "sRun application: ")
(async-shell-command app-name))
Run Code Online (Sandbox Code Playgroud)
我有一个可供选择的所有可执行文件的列表.我希望app函数表现为switch-to-buffer,为用户提供TAB完成.我如何在Emacs中使用迷你缓冲区?
如何迭代Elisp哈希表中的项(键,值)?
我创建了一个哈希表(地图,字典),(make-hash-table)并使用不同的项目填充它.在Python中,我可以通过以下方式迭代dicts:
for k in d # iterate over keys
for k in d.keys() # same
for k in d.values() # iterate over values
for k in d.items() # iterate over tuples (key, value)
Run Code Online (Sandbox Code Playgroud)
我怎么能以最简洁和优雅的方式做同样的事情,最好没有循环宏?
我想以递归方式从特定点向下遍历目录结构,并在每个级别调用copyright-update-directory.
Emacs 24中是否包含有助于此功能的功能?例如:
(recursive-directory-walk "~/src/foo" '(copyright-update-directory))
Run Code Online (Sandbox Code Playgroud)
如果不存在这样的函数,那么开始实现这个(或一个工作实现)的一些指针会很棒.
{-# LANGUAGE DefaultSignatures #-}
class C a where
f :: [a]
default f :: (Num a) => [a]
f = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
以上作品,下面没有.似乎DefaultSignatures扩展只允许指定约束,但不能替换具体类型.第默认方法签名中的GHC用户指南没有解释这一点.为什么DefaultSignatures不允许我替换具体类型?理由是什么?在哪里可以阅读有关DefaultSignatures的实现方式和原因的更多信息?
{-# LANGUAGE DefaultSignatures #-}
class C a where
f :: [a]
default f :: [Int]
f = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)