Emacs 与 MongoDB

ChongQingJin28 2013-06-05 10:30:13


MongoDB中的shell :mongo.exe ,用的语言是JavaScript 。

写了点代码 把MongoDB.doc.source.reference.methods装进Emacs了。
(只是简单的把以前处理html的方式又重复了一遍)
(现在只是reference.methods 还有 reference.operator reference.commands)

Python中有jedi ,我真不知道Javascript里面有什么 。
...全文
304 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔巴好萌 2013-06-10
  • 打赏
  • 举报
回复
楼主能不能把你的python的emacs配置打个包 放在github上 最好把依赖库什么的都装上 也想跟楼主学学怎么用emacs做python开发 最好把依赖的bin也装上 PS 用的什么emacs版本
ChongQingJin28 2013-06-10
  • 打赏
  • 举报
回复
速度慢的话只能换电脑才能解决了。但好像也并不能完全解决吧! 配色。没有配色啊!好像是有一个theme。弄成黑色不刺眼就好了。
乔巴好萌 2013-06-10
  • 打赏
  • 举报
回复
github上以前看过一个叫redguardtoo的emacs配置 引用英国一个人的配置 不过我觉得太重量级了 pycharm怎么都好,但就是速度太慢,语法高亮自动补全什么的 我真觉得不在话下(可能对99.9%的开发者都是足够的),另外,可以把配色什么的都传传啊
ChongQingJin28 2013-06-10
  • 打赏
  • 举报
回复
1. 关于emacs配置的问题 ,我真的是没有怎么配置 。下面有我的配置文件 ! 在这个配置文件里面好像和python相关的东西只有两个 一个是auto-completion 一个是pymacs Jedi我是直接写在了 python.el 里 ,而且很多的东西我都是直接修改 xxxxx.el 的 所以 .emacs 里面真的是没有什么的 (因为如果我需要什么的话我能够搜索到相应的el文件 然后eval-buffer)。 2. 如果是我用的插件 ,基本上我都会做点修改 (至少是改改快捷键) 比如说 pymacs 不支持中文参数 ,其实修改它很简单 没有超过20个字节 。 pymacs的中文返回值需要进一步的eval ,所以需要一个函数处理pymacs的返回值 。 pymacs的修改太小了 ,所以没有传到github上。 auto-completion我也改了 ,在补全之后是可以有action的 ,这样功能才会更大。 Jedi 我也改了 ,并且和auto-completion都放在github上了(github.com/zhouchongzxc) 所有这些我修改的东西都是不可能在配置文件里面体现出来的 所以我觉得配置文件是没有必要放在github上的。 ;---------------------------------我的配置文件如下-------------------------------------------- ;----------- 以 ;----开始的注释是我新加的 ;; 括号匹配 (show-paren-mode 1) (column-number-mode 1) ;; 安装auto-complete (defun auto-aid () "将auto-complete设置成一个函数" (interactive) (add-to-list 'load-path "~/.emacs.d") (setq ac-dictionary-directories '()) (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") (require 'auto-complete-config) (ac-config-default)) ;不用自动换行 (setq truncate-lines t) (defun ze () ;如果你想保存 *scratch* 的内容的话 用 M-x ze "用于快速的设置开始界面的 你可以用 M-x con 直接打开 .emacs" (interactive) (if (not (equal (buffer-name) "*scratch*")) (error "你只能在 *scratch* 中使用 ze") (let (start end (string (buffer-string)) (my-buf (find-file "c:/Documents and Settings/Administrator/Application Data/.emacs")) (temp-buffer (get-buffer-create "*temp*"))) (set-buffer temp-buffer) (insert string)(goto-char 1) ;在一个临时的buffer中替换 “"” (while (search-forward "\\" nil t)(replace-match "\\\\" t t)) (goto-char 1) (while (search-forward "\"" nil t)(replace-match "\\\"" t t)) (setq string (buffer-string)) (kill-buffer temp-buffer) (set-buffer my-buf) (goto-char (point-min)) (search-forward-regexp "initial-scratch-message" nil nil 2) (setq start (point)) (forward-sexp ) (setq end (point)) (message "start :%d end :%d" start end) (delete-region start end) (goto-char start)(insert " \"" string "\"") (save-buffer) (kill-buffer my-buf) ))) (setq completion-styles (cons 'substring completion-styles)) (setq completion-styles (cons 'initials completion-styles)) ;completion-category-overrides ; var can used as complete ;-----------------------------------------下面的一大段杂乱无章的东西 其实是我的 *scratch* (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ansi-color-names-vector ["#242424" "#e5786d" "#95e454" "#cae682" "#8ac6f2" "#333366" "#ccaa8f" "#f6f3e8"]) '(custom-enabled-themes (quote (manoj-dark))) '(initial-scratch-message ";; 如果你想打开pdf 用 C-c s 搜索 mongo ; 或许你想修改一些 快捷键 很多的他们定义在 bindin ; (progn (require 'myjvmti) (myjvmti-list-all-example)) `mycomplete.el' 试着将他加进binding中 ; 我应该写一个 with-dot-file dot-file funcall #打开一个文件 让用户选择他想要用的东西 用户关闭的时候 执行预定的函数 ; 先从 epc 开始吧 或许可以很好的和python交互呢! 还是应该先从lefty开始 我要很好的把图形结合起来 这样或许更加容易理解一个图形了 (让图形成为一个常态化的工具) ; 新的目标是 读 js2-mode 的源码 ,争取把他弄明白 。(进而才有可能把jedi也给弄明白) ;我想我忘记了一件很重要的事情 那就是 永远使用 第一、第二、第三、第四等等 以及应该保持均匀的速度前进 (setq zzz nil) (defun zxc () \"\" (interactive) (setq zzz (buffer-string))) ;在处理完js之后应该接着看看数据库方面的东西 把mongodb与django结合而起来才行的啊 ; 对于Js的应用 我需要例子 还有就是JS2-mode的分析 。 ; js2-mode的分析结束了 应该从jslint 与 jscommit 开始 (因为他们能得到nodejs 还能 得到mongodb) ; JQuery : 添加子dom 创建dom 改变dom 遍历dom 处理event 操作css (progn (require 'mycomplete) (mysnip-minor-mode 1) (define-key global-map \"\\C-\\\\\" 'undo) ;这样的undo应该会更方便一点的 (define-key global-map \"\\M-m\" ;我的 snippet 太有用的东西了 (lambda (&optional e) (interactive) (mysnip-minor-mode 'toggle)))) mathematica mymongo ; 首先应该做两件事 1.把mongodb的文档装进来 2.看那本中文书与英文书 ; 继续装入mongodb中的application等 要让其有搜索(用快捷键Ctrl+c d) 有修改(和原来有的相似就可以) 可以选择文件(查看一个文件内的所有) ; 完成了 接下来是什么呢? 看那本中文书吧 ? 但是又一个很重要的问题没有解决 :我用他来做什么呢 ?如果没有应用 你怎么可能记得住呢 ? ; 将 MongoDB 应用于何处呢 ?用在 Mathematic 上面应该是最好的吧 !否则 还真的不知道应该把它用于何处了 ! ;(mathematica-get-complete \"切\") ;现在的情况是可以用了 js 已经有了 就差例子了 ;(pymacs-load \"mathematica\") ;(mathematica-set-collection \"test\" \"Mathmatica\") (defun chong-chli () \"用于处理我从mathmatica中得到的文档\" (interactive) ;第一步 加上 ===== (goto-char 1) (let* ((first-line (current-line)) ;第一行 及 要insert的=== (ins-line (make-string (length first-line) ?=))) (insert ins-line \"\\n\") (line-move 1) (insert ins-line \"\\n\\n\") ;第二步 :替换 @ 与 D = 8 ,8 <D <<D <, <\\n D\\n DD\\n (replace-to \"= 8\" \"= {\") (replace-to \",8\" \",{\") (replace-to \"<D\" \"}D\") (replace-to \"<,\" \"},\") (replace-to \"<\\n\" \"}\\n\") (replace-to \"DD\\n\" \"]]\\n\") (replace-to \"D\\n\" \"]\\n\") (replace-to \"D,\" \"],\") (replace-to \"?\" \" \") (replace-to \"@\" \"[\") (search-forward-regexp \"?\" nil t) (replace-match \"Classfy:\" t) (replace-to \"\\n?\" \" \") ) ) (defun replace-to ( match rep) \"替换\" (goto-char 1) (while (search-forward-regexp match nil t) (replace-match rep)) )")) ;---------------------------------------------------------------我的*scratch* 结束 ;; 安装pymacs (autoload 'pymacs-apply "pymacs") (autoload 'pymacs-call "pymacs") (autoload 'pymacs-eval "pymacs" nil t) (autoload 'pymacs-exec "pymacs" nil t) (autoload 'pymacs-load "pymacs" nil t) (autoload 'pymacs-autoload "pymacs") ;0)装载python函数 ;(pymacs-load "ff" "ff-") ;; ---------------我自己的函数定义需要借助于pymacs调用 ;(pymacs-load "fs" "fs-") ;(pymacs-load "eng" "eng-") ;(pymacs-load "sql" "sql-") ;; 设置python模式的F5按键 这样在emacs中都可以用F5了 (defun py-f5 () (interactive) (if (equal major-mode 'python-mode) (start-process "python" "*Antlr Python*" "C:\\Python32\\Lib\\idlelib\\idle.bat" "-e" (buffer-file-name)) (print "Not a python-mode"))) (setq struct-highlight nil) (global-set-key [f5] 'py-f5) ;; 直接打开reference的info (我把elisp的reference保存为zzz.txt了) (defun zi (filename) (interactive (let* ((filename "zzz.txt")) (list(concat "C:/emacs-24.2/info/" filename)))) (find-file-other-window filename) (delete-other-windows)) ;; 直接打开当前的.emacs文件 (defun con () (interactive) (let ((filename "c:/Documents and Settings/Administrator/Application Data/.emacs")) (find-file-other-window filename) (delete-other-windows))) (add-to-list 'load-path "c:/emacs-24.2/lisp/chong") (add-to-list 'load-path "c:/emacs-24.2/lisp/w3m") (add-to-list 'load-path "c:/emacs-24.2/lisp/helm") (add-to-list 'load-path "c:/emacs-24.2/lisp/pdee") ;(require 'mathematica) ;--------------所有用my开头的好像都是我写的 ;(require 'pc-mode) ;--------这个文件我做了点修改 好像是很不一样了 (require 'thingatpt) ;(require 'tools) ;---------这个是最早写的了 用于查看哪些elisp函数是C语言的 哪里是elisp的 (require 'mybasic) ;---------我写的 一些常用的elisp函数 (require 'myhidden) ;---------我写的 他应该是和代码折叠有关的 (require 'myfilehelp) ;------我写的 (require 'filesearch) ;------还是我写的 (require 'chstrformat) ;(require 'mycomplete) ;------又是我写的 主要是为了elisp (define-key global-map [C-tab] 'my-complete-main) ;用 C-tab 实现代码的补齐功能 (require 'mysnip) ;------这个还是我写的 并且天天都会用到它 (在我的*scratch*中都有他的位置) ;-------剩下的就不是我写的了 (require 'stgtemplete) (require 'window) ;为的是让 C-x 3 能够打开别的buffer (require 'helm-config) (define-key global-map "\C-l" 'helm-mini) ;这样或许可以不用点buffer菜单了 (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(antlr-font-lock-literal-face ((t (:foreground "Red"))) t) '(vhdl-font-lock-prompt-face ((t (:foreground "Red" :weight bold))) t)) (add-hook 'term-setup-hook #'(lambda () (w32-send-sys-command ?\xF030)))
ChongQingJin28 2013-06-10
  • 打赏
  • 举报
回复
1. 谢谢楼上的回复 2. 我用的emacs版本是24.2 。版本应该不会是问题吧! 3. 我都不知道emacs写python有什么优势 ,或许是不知道到底需要什么功能。 楼上希望有什么功能呢? 我可以看看是否能在Emacs下面实现 (Pycharm或Pydev没有实现?) 4. 关于我的配置 在楼下 !
ChongQingJin28 2013-06-09
  • 打赏
  • 举报
回复
我做了点实验 .结合mathematica的文档。
ChongQingJin28 2013-06-07
  • 打赏
  • 举报
回复
将mongodb.doc中的core tutorial等装进Emacs了。 加了两个快捷键 : C-c l 用于列出一个文件中的内容 C-c d 用于搜索topic(也仅能搜索topic 不能搜索内容)
ChongQingJin28 2013-06-06
  • 打赏
  • 举报
回复
把reference.operator 和 reference.command 也装进Emacs里面了。 可以用 { $ 得到 $gt、$lt等 。也可以用 db.runCommand( { a 得到 addXXX、aggXXX 。 (只是还不能有更多的东西 而且连文档也是没有的(弹出菜单中的文档)) (发现和JavaScript中的JQuery有点像 JQuery天生就支持数组的操作 MongoDB天生就支持dict)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧