一个关于nrepl.el (Emacs 开发环境)的问题

42 views
Skip to first unread message

Mingqi Shao

unread,
Jul 18, 2013, 10:34:56 PM7/18/13
to cn-cl...@googlegroups.com
Clojure开发环境,试了好几个,还是Emacs + nrepl.el 靠谱一点,但是还有不少的不方便的地方,比如:
经常写一个表达式返回一个sequence: (my-express-return-seq) ,然后要在上面在一个map函数,变成
(map 
    #(...)  
    (my-express-return-seq))

每次都需要手工的缩进,有没有快捷的方式在某一个表达式外面加一层表达式,然后自动缩进,谢谢。

haosdent

unread,
Jul 18, 2013, 10:36:55 PM7/18/13
to cn-cl...@googlegroups.com
有好几个插件,都可以装下,类似彩虹货号啥的。

-- 
Best Regards,
Haosong Huang
Sent with Sparrow

--
中文社区博客:http://blog.clojure.cn/
中文问答网站:http://ask.clojure.cn/
中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“CN-Clojure”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 cn-clojure+...@googlegroups.com
要向此网上论坛发帖,请发送电子邮件至 cn-cl...@googlegroups.com
通过以下网址访问此论坛:http://groups.google.com/group/cn-clojure。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 

dennis zhuang

unread,
Jul 18, 2013, 10:48:06 PM7/18/13
to cn-cl...@googlegroups.com
paredit,你会爱上它,M + ( 就是你要的

自动格式化函数:

(defun indent-buffer ()
  "Indent whole buffer"
  (interactive)
  (indent-region (point-min) (point-max))
  (message "format successfully"))
(defun indent-file (file)
  "prompt for a file and indent it according to its major mode"
  (interactive "Which file do you want to indent: ")
  (find-file file)
  (indent-buffer))
(defun indent-file-when-save ()
  "indent file when save."
  (make-local-variable 'after-save-hook)
  (add-hook 'after-save-hook
(lambda ()
 (if (buffer-file-name)
 (indent-buffer))
 (save-buffer))))


绑定indent-buffer到f7键:
(global-set-key [f7] 'indent-buffer)

--
庄晓丹
Email:        killm...@gmail.com xzh...@avos.com
Site:           http://fnil.net
Twitter:      @killme2008


Xu Hui Hui

unread,
Jul 18, 2013, 10:51:41 PM7/18/13
to cn-cl...@googlegroups.com
用 [Emacs Live][0] 很方便,rainbow 和 paredit 都自带了。快捷键可以参考 [文档][1]



Regards,
Xu Hui Hui


2013/7/19 dennis zhuang <killm...@gmail.com>

Mingqi Shao

unread,
Jul 18, 2013, 11:29:35 PM7/18/13
to cn-cl...@googlegroups.com
谢谢大家。

再顺便问一句,你们在Mac下面用什么Emacs版本? Aquacacs还是Emacs For OSX?


2013/7/19 Xu Hui Hui <x...@xhh.me>

dennis zhuang

unread,
Jul 18, 2013, 11:31:28 PM7/18/13
to cn-cl...@googlegroups.com
Emacs for osx

Mingqi Shao

unread,
Jul 18, 2013, 11:34:51 PM7/18/13
to cn-cl...@googlegroups.com
Emacs for osx 不支持tab,完全用命令行来切换buffer,不会觉得很难受吗?
我用的是Aquacacs,但是它内置的Emacs版本始终是23


2013/7/19 dennis zhuang <killm...@gmail.com>

dennis zhuang

unread,
Jul 18, 2013, 11:42:25 PM7/18/13
to cn-cl...@googlegroups.com
tab切换buffer,也只是一个命令绑定而已,用什么毫无关系。

不过我tab是用来做补全和缩进的,切换绑定了f2和f3:

(global-set-key [f2] 'tabbar-backward)
(global-set-key [f3] 'tabbar-forward)

Mingqi Shao

unread,
Jul 18, 2013, 11:52:51 PM7/18/13
to cn-cl...@googlegroups.com
我明说清楚,我是说,Emacs上方的那个Tab(每一个文件一个标签),这样切换起来方便一点,因为Tab上面有文件的名字,可以用鼠标切换,就算使用键盘切换,在切换之前,也知道是该往前还是往后切换,方便不少。我一般绑定的是 Ctl + H 和Ctl + L。

如果没有标签,只能用C-x C-b 打开buffer列表然后选择,里面列出了所有buffer,还包括*Message*, *nrepl* 等等很不方便。

嗯,可以开一个Emacs Tips帖子,分享一下Clojure Emacs下的各种技巧。


2013/7/19 dennis zhuang <killm...@gmail.com>

Qiu Xiafei

unread,
Jul 19, 2013, 1:42:09 AM7/19/13
to cn-cl...@googlegroups.com
emacs live +1


2013/7/19 Xu Hui Hui <x...@xhh.me>
用 [Emacs Live][0] 很方便,rainbow 和 paredit 都自带了。快捷键可以参考 [文档][1]

dennis zhuang

unread,
Jul 19, 2013, 1:49:48 AM7/19/13
to cn-cl...@googlegroups.com
tab也只是个插件啊,自己装个很简单啊,我装了tabbar.el

Robert Luo

unread,
Jul 19, 2013, 3:21:30 AM7/19/13
to cn-cl...@googlegroups.com, ms...@tripadvisor.com
Mac OS 下使用 iTerm + 命令行 emacs

Emacs live 包。

将右边 command 键映射为 Ctrl,增加 windmove-default-keybindings,这样切换 window 用 shift + 方向键,比用鼠标或触控板方便得多。
使用命令行的最大好处是可以用 tmux 做远程 pair 编程。

Ruiyun Wen

unread,
Jul 19, 2013, 3:58:46 AM7/19/13
to cn-clojure
emacs live +1

只是貌似现在github上最新的版本始终不能在代码行标记编译错误和reflect warning,所以还是在用1.0 Beta21。
各位有遇到这种情况的吗,何解?
Reply all
Reply to author
Forward
0 new messages