Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作
- 一、写在前面
- 1.1 明确目标:搭建一个完整的Python开发环境
- 1.2 前置工作
- 二、Doom Emacs的Python基本开发环境搭建
- 2.1 Doom Emacs修改配置文件方法
- 2.2 Python基本开发环境搭建
- 2.3 Doom Emacs中编写Python语言的基本操作
一、写在前面
1.1 明确目标:搭建一个完整的Python开发环境
通常来说,熟练掌握Doom Emacs框架是有点难度的,需要很多专业知识和理论作为基础;另外,还要能够熟练掌握Emacs和Vim基本操作,再加上对Emacs常用的各种扩展的整体理解,等等。
但是,如果明确了某个特定的目标:比如,通过Doom Emacs这个框架,搭建一个完整的Python开发环境。然后,哪里不明白,网上搜索哪里,一步一步的尝试,还是可以实现的。
注意:本文的内容是在Ubuntu20.04系统上实现了的。
1.2 前置工作
1、你懂得,你可能也不懂
我们从github上克隆项目时,总是存在网络问题令我们非常头痛。你懂得,网络环境问题,不展开解释了。所以,解决上网问题是第一步,解决了这个问题看下面的内容才真正有意义。
2、Doom Emacs安装
github上的 hlissner/doom-emacs给出了安装过程,只需要看Prerequisties
和Install
两个部分即可。遇到问题,从终端上拷贝一下bug问题,搜索一下,基本上都能解决。
在Doom Emacs安装前,还需要掌握一些Git相关配置网络指令。与网络配置相关的git命令如下表所示
(1)Git查询网络配置信息的命令
Git常用命令 | 描述 |
| 列出全部Git配置信息列表 |
| 获取系统https的代理信息 |
| 获取系统http的代理信息 |
| 获取全局的https代理信息 |
| 获取全局的http代理信息 |
另外,我们还可以通过cat $HOME/.gitconfig
获取Git配置信息列表。
(2)Git设置网络配置信息的命令
Git常用命令 | 描述 |
| 取消系统的https的代理设置 |
| 取消系统的http的代理设置 |
| 取消全局的https的代理设置 |
| 取消全局的http代理设置 |
第三部分列出我踩过的坑,并给出我的解决方法和解决方法网络链接。
3、踩过的坑
(1)git设置中需要将本地代理网址端口设置正确。
首先,查看自己的网络代理设置信息,在设置
网络
网络代理
:
然后,点击网络代理
后面的齿轮,在弹出的窗口中设置查看自己的HTTP
和HTTPS
代理的端口,这个端口号是可以自定义的,我设置的是8889。我的网络代理设置如下图所示:
(2)出现错误信息:fatal: 无法访问 ‘https://github.com/.git/‘:Could not resolve proxy: http***
在安装Doom Emacs过程中会出现:fatal: 无法访问 ‘https://gitee.com/***.git/‘:Could not resolve proxy: http
的错误信息。
问题的原因:上一步,我们设置手动网络代理后,并没有更新Git中的网络代理信息,它与本地的网络代理的信息并不一致,因此才导致了Could not resolve proxy:http
的错误信息。
解决方法:
取消系统和Git网络代理信息:
# Unset system value
git config --system --unset https.proxy
git config --system --unset http.proxy
# Unset global value
git config --global --unset https.proxy
git config --global --unset http.proxy
设置Git网络代理需要与第一步Ubuntu系统网络代理设置保持一致:
git config --global https.proxy 127.0.0.1:8889
git config --global http.proxy 127.0.0.1:8889
至此,Could not resolve proxy: http
就解决了。
(3)Git Clone错误解决:GnuTLS recv error (-110): The TLS connection was non-properly terminated.
解决方法:
sudo su
apt install gnutls-bin
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
如果还是解决不了,在终端再输入如下命令:
sudo apt install apt-transport-https
(4)Doom Emacs安装过程中,all-the-icon安装不上
如果上面的问题都解决后,就能正常克隆Doom Emacs,并安装相应的插件了。但是在问你是否要安装all-the-icon
时候,点y
总是安装不上。到了这一步,Doom Emacs已经算是基本安装成功,就是Doom Emacs内的特殊图标显示乱码,其实并影响正常使用Doom Emacs了,但是看起来总是很别扭。
解决方法:打开~/.doom.d/config.el
配置文件,添加如下代码:
(setq url-proxy-services
'(("http" . "host:port")
("https" . "host:port")))
其中host
就本地网址127.0.0.1
,端口号我这里是8889
,根据你们自己的定义输入port
,保存并退出。
重新安装Doom Emacs即可。
也可以打开Emacs,然后输入M-x all-the-icons-install-fonts
。
总结:确保1.2前置工作的第一条没问题的情况下,我这里解决上面的问题后,Doom Emacs就安装成功了。如果你们那里还有别的问题,多百度百度,总能找到解决办法。
二、Doom Emacs的Python基本开发环境搭建
2.1 Doom Emacs修改配置文件方法
打开~/.doom.d/init.el
配置文件,我们可以发现,在(doom!)
内部有很多模块可供我们自定义安装,带有;;
注释的表示默认没有安装。如果有工作环境想要安装扩展插件,去掉注释,关闭Doom Emacs,然后在终端中输入如下命令:
~/.emacs.d/bin/doom sync
上面的指令会安装对应的插件,并更新Doom Emacs中的配置文件,此时再重启Emacs就可以
2.2 Python基本开发环境搭建
默认的Doom Emacs并没有安装Python的自动补全功能和语法高亮功能等模块,我们这里需要自己激活~/.doom.d/init.el
配置文件中与Python开发环境搭建相关模块。
- 步骤一:找到
lsp
,将前面的;;
去掉。 - 步骤二:打开
~/.doom.d/init.el
配置文件,找到;;python
,将注释去掉,并修改为如下形式:
(python ;python语言支持
+lsp ;语言服务协议(LSP, Language Server Protocol),LSP设计目标是为
;某种编程语言的智能化,实现某个编程语言服务器与开发工具进行标准化通信
;的一个协议。其提供了编程语言的自动补全、转到定义、查找所有引用等功能。
+pylsp ;针对Python的语言服务协议LSP,在Emacs中实现Python语言的自动补全、
;转到定义、查找所有引用等功能。
+conda ;Python语言开发虚拟环境,也可以使用pyenv,看个人习惯。
)
- 步骤三:关闭Doom Emacs,然后在终端中输入
~/.emacs.d/bin/doom sync
,重新启动Emacs,一个即与Doom Emacs框架的Python开发环境基本搭建完成。
2.3 Doom Emacs中编写Python语言的基本操作
注意:下面使用Emacs的原生快捷键进行文件的操作,其中
C
表示Ctrl
键;M
表示Alt
。当然也可以使用鼠标直接进行操作。
1、Python的自动补全功能
使用Doom Emacs打开一个我以前写好的Python文件Advance_Dict_Program_2.py
,需要注意的是:状态栏右下角显示的Elisp
语言模式。
我们需要首先将语言模式改为Python模式,在正常模式下按下M-x
(M为ALT
键),然后输入python-mode
,这时状态栏右下角就变为了Python 3.8.10
,这个时候就可以进行python编程了。
比如,我们在插入模式下输入np
,Doom Emacs自动弹出np np
,我们按下回车键,就自动输出import numpy as np
了,非常方便。
2、Python代码的运行方法
重新打开Doom Emacs如下图所示:
按下C-x C-f
,根据自己的目录,打开我已经写好的python文件Advance_Dict_Program_2.py
如下图所示,确保右下角为Python解释器:
按下C-x 3
在右边打开一个新的Buffer,再按下C-x o
将光标移动右边的Buffer;然后按下M-x
,输入eshell
,弹出Emacs Shell终端。由于我的python文件就放在主目录~
下面,所以这里可以直接使用python Advance_Dict_Program_2.py
直接执行,且执行结果如下图所示:
3、切换到Conda Python虚拟环境的方法
(1)创建一个conda python虚拟环境
假设已经安装了Miniconda,在终端输入conda activate
,进入conda命令行模式如下图所示,有了(base)
就表示进入了conda的base环境了,并使用conda env list
列出系统已经有的python虚拟环境。并使用下面的命令创建一个针对Doom Emacs的python虚拟环境Doom_Emacs_Py
:
conda create -n Doom_Emacs_Py python=3.8.10
防踩坑: 我这里出现ProxyError: Conda cannot proceed due to an error in your proxy configuration的错误提示
解决方法:由于我们使用了本地https和http的网络代理,且端口设置为了8889,而我们的.bashrc
中并没有添加系统网络代理它们的代理设置,打开.bashrc
配置文件,并输入如下图所示的两条系统全局变量:
(2)Doom Emacs打开conda python虚拟环境
用Doom Emacs打开python Advance_Dict_Program_2.py
文件,点击M-x
,输入conda-env-activate
,选择创建的Doom_Emacs_Py
虚拟环境,就打开了conda python虚拟环境了,如下图所示: