对我们来说,Client 就是 Emacs,Server 就是启动的子进程,Communication Layer 就是进程间 stdio,序列化/反序列化可以用 Emacs 自带的 json 支持。至于 Protocol 我们可以随便选一个,比如 jsonrpc。由于不用考虑的很全面甚至可以自己搓一个。 4.2. 极简版 jsonrpc 完整的 jsonrpc 规范可以在这里找到,它已经是一...
alias en="emacs25 -nw" alias ecw="emacsclient25" export PATH=~/.cabal/bin:/opt/ghc/bin:/opt/cabal/bin:$PATH 以上代码节选自我的 bashrc。 然后执行以下命令,以重新加载这些配置: $ source ~/.bashrc 配置Cabal 根据上面给出的 tuna 源的指示进行操作。 这对于 Haskell 来说不是必须的,但却是非常...
让大家使用起来更加方便。很多人会通过网络视频和文章了解云游戏和云端服务器是什么的相关信息,并且亲身...
Python Language Server可以不必在每个环境中都安装, 以pipenv为例, 安装Python Language Server到全局Python中, 然后在每个环境下pipenv shell进入环境即可补全该环境下的包. (lsp-define-stdio-client lsp-python"python"(lsp-make-traverser #'(lambda (dir) (directory-files dirnil"\\(__init__\\|setup\\)\...
#!/bin/bash exec emacsclient -c -a "" "$@" 如果没有 emacs 进程存在的话,就会创建一个新的 emacs 进程,否则的话就直接使用已存在的进程。这样做还有一个好处:-nw 之类的参数工作的很好,它实际上就像在 shell 提示符下输入 emacs 一样。它很适合用于设置 EDITOR 环境变量。 下一篇 接下来我将讨论我...
emacs是tui,vim是编辑器,根本就不是一类 。春节在家,终于有比较充裕的时间好好整理一下自己的文献库...
(lsp-define-stdio-client lsp-python "python" (lsp-make-traverser #'(lambda (dir) (directory-files dir nil "\\(__init__\\|setup\\)\\.py\\|Pipfile"))) '("pyls")) 这段配置说明了需要在目录下能找到__init__.py等文件后将其作为project root使用, 如果没找到相应文件, 则会抛出找不到项...