都是玄学……
。。。。。。
GC设置是非常有效果的性能优化手段,默认配置加速Nox的性能。
Anyway我添加了一个选项,nox-optimization-p ,喜欢自己折腾的把这个选项关闭即可。
我知道gc的作用………我是说,这种通用的emacs 配置用户会写在自己的配置里,nox不必照顾到这种地步
已经加了一个选项,不喜欢的,直接禁用即可。
现在测试,如果一个LSP还是很卡的话,大概率是因为 LSP Server 太吃CPU了(比如javascript-typescript-stdio), CPU消耗太厉害以后,也会导致整个Emacs无法响应。
我使用R
试用Nox
,如果eval-region-or-function,代码可以正常在inferior里运行,但是并不上屏,而是在提示符(prompt)后重复提示符且不换行。
我基本沿用了之前eglot和lsp的配置,应该没有问题,Nox
的部分是这样的:
(add-to-list 'nox-server-programs
'((ess-r-mode inferior-ess-r-mode)
. ("R" "--slave" "-e" "languageserver::run()")))
这是Nox
有意为之还是其他方面的问题呢?
最好录个屏,看不懂你说的啥。
我一般分两屏,一边写R
脚本然后执行,另一边的命令行会显示结果或图等。上图的命令行界面相当于R版本的ipython
。
红框里的提示符是读取数据的步骤,每执行一句就会多出现一个。原来是读取之后会在命令行显示函数和数据内容的,不仅是有>
。
你试过 lsp-mode 和 eglot ? 它们是好的?
最早用eglot
,不过当时配置的 language server 有问题(我自己没配置对,后来找到作者的推荐配置了)。后来是lsp-mode
,可以正常运行,就是太慢(大部分是R
自己的锅)。如果Nox
没有专门设置的话,我再多试试看是哪里的问题。
不开nox会怎样?
emacs27就不会卡了
有在Haskell下使用Nox的吗?我在使用中遇到了下面的问题。
我编译好了HIE 并添加/usr/.local/bin 到.zshenv 的PATH中。
在终端下可以发现hie 和hie-wrapper 没问题,但是Emacs的Nox老是提示发现不了hie-wrapper。
*message buffer 中的报错信息如下:
Error in post-command-hook ((closure ((--cl-maybe-connect-- closure #1 nil (progn (remove-hook 'post-command-hook --cl-maybe-connect-- nil) (let ((G1 buffer)) (if (buffer-live-p G1) (save-current-buffer (set-buffer G1) (if nox--managed-mode nil (apply #'nox--connect (nox--guess-contact)))))))) (buffer . #<buffer Lib.hs>) nox--managed-mode t) nil (progn (remove-hook 'post-command-hook --cl-maybe-connect-- nil) (let ((G1 buffer)) (if (buffer-live-p G1) (save-current-buffer (set-buffer G1) (if nox--managed-mode nil (apply #'nox--connect (nox--guess-contact))))))))): (file-missing "Searching for program" "No such file or directory" "hie-wrapper")
平台: Mac OS Catalina 10.15.4
Emacs version:28.0.50
Emacs 配置使用的是LazyCat的配置。
注:Nox 在Python 下正常工作,HIE 在Vim下也能正常工作。
也许要需要安装 exec-path-from-shell ,而且我不确定Emacs会从 .zsh 里面去读取PATH配置。
果然是这个问题,加入(exec-path-from-shell-initialize)
可以正常识别环境变量了。
喜欢! 从来不用flycheck和snippet自动补全功能的我为大佬点赞!
@manateelazycat 猫哥,今晚在Win10下调试了Nox+ mspyls,只要修改下nox.el 2309 行加一条语句就可以完美支持Win10 系统。
(if (eq system-type 'windows-nt) ".exe" "")
有空能否更新一下,方便更多地朋友使用。
(defun nox--python-contact (interactive)
(cond ((string-equal nox-python-server "mspyls")
(setq-default nox-workspace-configuration
'((:python :autoComplete (:extraPaths nil)
:analysis (:autoSearchPaths :json-false :usePYTHONPATH :json-false))))
(cons 'nox-mspyls (list (concat nox-python-server-dir
"Microsoft.Python.LanguageServer"
(if (eq system-type 'windows-nt) ".exe" "")))))
((string-equal nox-python-server "pyls")
(list "pyls"))
))
已经搞定了, 更新即可
感谢
这样Windows 用户只要自己再设置下python路径就可以愉快地使用mspyls了。
例如: (setq nox-python-path "c:/Python38/python.exe")