spacemacs及python学习-坑之记录
Table of Contents
1 spacemacs
1.1 .spacemacs 文件
1.2 项目文件
在项目根目录下新建一个空文件:
.projectile
1.3 open shell windows
hM-x eshell M-x shell
1.4 emacs基础
1.4.1 自动删除没有用到的package
M-x package-autoremove
1.4.2 自动缩进 indent-region
C-M-\ 自动缩进所选的代码或者缩进所有代码
1.4.3 dired-mode
+: 创建一个目录 C-x C-f :新增一个文件 g: 刷新目录 c: 复制文件 d:标记删除文件 x: 执行所有标记
1.5 配置emacs使用本地elpa库
在同步了elpa库到本地后,想要在让emacs使用本地的库。
1.5.1 方法1
在.emacs.d/init.el开头添加如下代码
(require 'package)
(setq package-enable-at-startup nil)
(setq package-archives '(("melpa" . "~/.emacs.d/mirror-elpa/melpa/")
("org" . "~/.emacs.d/mirror-elpa/org/")
("gnu" . "~/.emacs.d/mirror-elpa/gnu/")))
1.5.2 方法2
如果使用的是spacemacs,则在 defun dotspacemacs/user-init 函数内添加如下代码 windows的下使用绝对路径,格式是//?/盘符/文件夹 ,或者可以把镜像放到你的C:\Users\<你的用户名>\AppData\Roaming目录下面然后可以使用 ~/elpa-mirror/melpa/ 这样的路径
(setq configuration-layer--elpa-archives
'(("melpa-cn" . "//?/f:/elpa-mirror/melpa/")
("org-cn" . "//?/f:/elpa-mirror/org/")
("gnu-cn" . "//?/f:/elpa-mirror/gnu/")))
1.6 emacs中无法启动pythonshell
每次启动python shell都报错
Unknown option: --
usage: c:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\python.exe [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information. Process Python exited abnormally with code 2
解决办法,M-x customize-group,接着输入python回车,然后找到python shell interpreter args。然后改成-i,左键state然后选save for future session. 如果是spacemacs,需要在.spacemacs文件中把参数写到 dotspacemacs-configuration-layers的python变量里。
(python :variables
python-test-runner '(nose pytest)
python-shell-interpreter-args "-i")
2 python
2.1 builtin fuction
2.2 查看python内置函数的方法
dir(__builtins__)
2.3 a test is not a unit test if :
- read or write from the filesystem
- read or write from the network
- read or write from a database
- cannot run tests in parallel
- test suite depends on a environment configuration
- the execution order of the tests is important to make all tests passes
- test is run not fast
3 网络问题
3.1 使用lantern和设置git代理解决 gitgub clone 缓慢的问题。
3.1.1 lantern
首先,你需要下载lantern,这是链接
3.1.2 STARTED GIT代理
Git 目前支持的三种协议 git://、ssh:// 和 http://,其代理配置各不相同:core.gitproxy 用于 git:// 协议,http.proxy 用于 http:// 协议,ssh:// 协议的代理需要配置 ssh 的 ProxyCommand 参数。对于所有的协议全部使用 SSH 隧道进行代理
- GIT 协议的配置
- lantern的代理端口:
http(s)代理服务器):127.0.0.1:54932 socket代理服务器:127.0.0.1:54931 如果不确定,双击lantern会打开一个web页面,点击【设置】》【高级设置】,会显示lantern的代理配置。
- 下载connect工具
使用 https://bitbucket.org/gotoh/connect 工具进行代理的转换,各发行版一般打包为 proxy-connect 或者 connect-proxy。打开上面的链接后,在页面的左边最下面点击Downloads。点击connect-1.104-win32-msvc.zip下载到本地。解压文件,将文件connect.exe所在的目录添加到环境变量的PATH中。打开CMD命令窗口,输入connect回车。如果提示:
connect --- simple relaying command via proxy.
Version 1.104
usage: C:\Program Files\Git\mingw64\bin\connect.exe [-dnhst45] [-p local-port]
[-H proxy-server[:port]] [-S [user@]socks-server[:port]]
[-T proxy-server[:port]]
[-c telnet-proxy-command]
host port
表示配置正确。
- 建立 socks5proxywrapper 文件
#!/bin/sh
connect -S 127.0.0.1:54931 "$@"
- 配置 git 修改你的home目录下的.gitconfig文件,如果没有请新建一个
[core]
gitproxy = ~/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="~/socks5proxywrapper"
- SSH 协议的配置
- 建立 ~/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="~/socks5proxywrapper %h %p" "$@"
- 配置 git 使用该 wrapper
export GIT_SSH="~/socks5proxyssh“
当然也可以直接配置 ~/.ssh/config 的 ProxyCommand
- HTTP 协议的配置
修改你的home目录下的.gitconfig文件,如果没有请新建一个
[http]
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:54931
- 所有协议全部使用 http 代理
在前一部分的基础上, /path/to/socks5proxywrapper 文件改为
#!/bin/sh
connect -H 192.168.1.100:8080 "$@"
- HTTP 协议配置
[http] proxy = http://127.0.0.1:54931
- 针对域名启用代理
gitproxy 参数提供 * for * 结构,具体看 man git-config 的 core.gitproxy 部分。
4 rsync同步elpa库
4.1 下载windows 客户端
4.2 添加客户端bin目录到环境变量中
- 将安装包解压到任意位置。
- 添加客户端路径到path变量中右键点击计算机》属性》高级系统设置》高级》环境变量
找到系统变量的PATH变量,点击编辑按钮。 windows10系统点击新建,输入客户端的bin目录绝对路径(如:F:\rsync\bin),点击确定。windows其他版本系统,将路径添加到值的最后。
4.3 同步elpa库
rsync -avzP –delete rsync://mirrors.tuna.tsinghua.edu.cn/elpa/ /cygdrive/f/elpa-mirror
-delete 选项,表示客户端上的数据要与服务器端完全一致,如果 linuxsirhome目录中有服务器上不存在的文件,则删除。最终目的是让linuxsirhome目录上的数据完全与服务器上保持一致;用的时候要 小心点,最好不要把已经有重要数所据的目录,当做本地更新目录,否则会把你的数据全部删除; /cygdrive/f/elpa-mirror 为同步到本地的目录。配置文件中写路径时格式要转换,例如我这里把目录放到f盘,则这么写/cygdrive/f/你的目录
整个镜像约占 1 GB,emacs-china rsync地址为: rsync://elpa.emacs-china.org/elpa/ 下游 Tsinghua Mirrors 的 ELPA 镜像 也提供了 Rsync 服务,地址是: rsync://mirrors.tuna.tsinghua.edu.cn/elpa/ 上游 GNU ELPA 和 MELPA 提供了 Rsync 服务,其地址分别为: rsync://elpa.gnu.org/elpa/
rsync://melpa.org/packages/
4.4 添加自动同步任务
将同步命令添加到window的任务列表中,实现自动同步
- 将同步命令保存到一个以cmd结尾的文本文件中
- 在Window中添加任务计划,不同的系统,操作有点不一样 windows xp/Server 2003 : 开始->设置->控制面板->任务计划->打开添加任务计划->下一步 windows 7/Server 2008 : 开始-> 控制面板 -> 管理工具 -> 任务计划 windows 10 在运行中输入 任务计划程序 打开任务计划面板在常规中填写任务名称,在触发器中设置同步间隔,在操作中指定要执行的文件。
Created: 2017-08-23 周三 08:08
spacemacs及python学习-坑之记录的更多相关文章
- Python学习日记之记录
列表 list=['1','2'] 元组 zoo=('1','2''3') 字典 d = {key1 : value1, key2 : value2 }
- python学习第二次笔记
python学习第二次记录 1.格式化输出 name = input('请输入姓名') age = input('请输入年龄') height = input('请输入身高') msg = " ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- 记录Python学习中的几个小问题
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...
- [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …
[Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...
- python学习第三次记录
python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...
- Python学习记录day8
目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...
- Python学习记录day7
目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...
随机推荐
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
创建对象 方式① 直接使用new Object() var obj = new Object(); 方式② 使用空的{}大括号 var obj2 = {}; 测试 增加属性,访问属性 我们要为创建的对 ...
- vim下处理文档中的\r\n\t字符
问题复现 拿到的文档中包含了大量的\r.\n.\t等字符,形如: \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ ...
- MVC查询数据接收及校验
本来想写一篇aspx的TreeView控件绑值的文章的,在写案例的时候,写了一半,发现有些地方还得考虑以下,就留待下次了. 这一篇的话,是最近在开发一个项目的时候,有大量的页面和数据表,需要花式查询, ...
- Qt のEXecl
http://blog.csdn.net/czyt1988/article/details/52121360 OK http://bbs.csdn.net/topics/39184 ...
- [Oracle]理解undo表空间
一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...
- 《算法导论》学习总结 — XX.第23章 最小生成树
一.什么叫最小生成树 一个无向连通图G=(V,E),最小生成树就是联结所有顶点的边的权值和最小时的子图T,此时T无回路且连接所有的顶点,所以它必须是棵树. 二.为什么要研究最小生成树问题 <算法 ...
- JQ重复注册问题
开发中常常会碰到事件重复注册,简单总结一下解决方法. (1)bind注册事件 $('...').unbind().bind('...',function(){}) (2)live注册事件 $('... ...
- python---time模块使用详解
python中的time模块提供一些方法用来进行关于时间的操作,time模块中有以下方法可供使用: time() --- 返回当前时间的时间戳. 调用:time.time(), 可用于计算程序运行的 ...
- Windows开启telnet服务 + 连接失败处理
一.控制面板中安装Telnet相关组件 单击"开始"菜单,单击"控制面板" 在控制面板中单击打开"程序和功能"项目 在左侧的蓝色 ...
- HDU1257 最少拦截系统 (贪心+STL+二分)
第一次在博客园写博客,好紧张 .博客搬家居然很多代码成了乱码,欲哭无泪,妈咪. 开学东西太多了吧,没时间写备注,有点时候只能贴个代码,以后有时间再加备注吧,只贴代码不是好习惯. 咦,贪心怎么写,我只会 ...