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给出了安装过程,只需要看PrerequistiesInstall两个部分即可。遇到问题,从终端上拷贝一下bug问题,搜索一下,基本上都能解决。

在Doom Emacs安装前,还需要掌握一些Git相关配置网络指令。与网络配置相关的git命令如下表所示

(1)Git查询网络配置信息的命令

Git常用命令

描述

git config --list

列出全部Git配置信息列表

git config --system --get https.proxy

获取系统https的代理信息

git config --system --get http.proxy

获取系统http的代理信息

git config --global --get https.proxy

获取全局的https代理信息

git config --global --get http.proxy

获取全局的http代理信息

另外,我们还可以通过cat $HOME/.gitconfig获取Git配置信息列表。

(2)Git设置网络配置信息的命令

Git常用命令

描述

git config --system --unset https.proxy

取消系统的https的代理设置

git config --system --unset http.proxy

取消系统的http的代理设置

git config --global --unset https.proxy

取消全局的https的代理设置

git config --global --unset http.proxy

取消全局的http代理设置

第三部分列出我踩过的坑,并给出我的解决方法和解决方法网络链接。

3、踩过的坑
(1)git设置中需要将本地代理网址端口设置正确

首先,查看自己的网络代理设置信息,在设置emacs的python怎么调试或者设置断点_Emacs网络emacs的python怎么调试或者设置断点_Emacs网络代理

emacs的python怎么调试或者设置断点_Doom emacs_03

然后,点击网络代理后面的齿轮,在弹出的窗口中设置查看自己的HTTPHTTPS代理的端口,这个端口号是可以自定义的,我设置的是8889。我的网络代理设置如下图所示:

emacs的python怎么调试或者设置断点_python_04

(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语言模式。

emacs的python怎么调试或者设置断点_python_05

我们需要首先将语言模式改为Python模式,在正常模式下按下M-x(M为ALT键),然后输入python-mode,这时状态栏右下角就变为了Python 3.8.10,这个时候就可以进行python编程了。

emacs的python怎么调试或者设置断点_Emacs_06

比如,我们在插入模式下输入np,Doom Emacs自动弹出np np,我们按下回车键,就自动输出import numpy as np了,非常方便。

2、Python代码的运行方法

重新打开Doom Emacs如下图所示:

emacs的python怎么调试或者设置断点_python_07

按下C-x C-f,根据自己的目录,打开我已经写好的python文件Advance_Dict_Program_2.py如下图所示,确保右下角为Python解释器:

emacs的python怎么调试或者设置断点_Doom emacs_08

按下C-x 3在右边打开一个新的Buffer,再按下C-x o将光标移动右边的Buffer;然后按下M-x,输入eshell,弹出Emacs Shell终端。由于我的python文件就放在主目录~下面,所以这里可以直接使用python Advance_Dict_Program_2.py直接执行,且执行结果如下图所示:

emacs的python怎么调试或者设置断点_Emacs_09

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

emacs的python怎么调试或者设置断点_python_10

防踩坑: 我这里出现ProxyError: Conda cannot proceed due to an error in your proxy configuration的错误提示

解决方法:由于我们使用了本地https和http的网络代理,且端口设置为了8889,而我们的.bashrc中并没有添加系统网络代理它们的代理设置,打开.bashrc配置文件,并输入如下图所示的两条系统全局变量:

emacs的python怎么调试或者设置断点_Doom emacs_11

(2)Doom Emacs打开conda python虚拟环境
用Doom Emacs打开python Advance_Dict_Program_2.py文件,点击M-x,输入conda-env-activate,选择创建的Doom_Emacs_Py虚拟环境,就打开了conda python虚拟环境了,如下图所示:

emacs的python怎么调试或者设置断点_git_12