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. ...
随机推荐
- sed命令基础
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...
- C#参数详解
参数 可选参数与命名参数 设计方法时,我们可以为部分参数设置默认值,在方法调用时就可以不提供该参数,使用其默认值.此外,调用方法时可以通过指定参数名的方式来传递参数.话不多说,请看以下示例: stat ...
- Python学习笔记011_模块_标准库_第三方库的安装
容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...
- 代码的完整性:打印1到最大的n位数
输入数字n,按顺序打印出从1到最大的n位十进制数. 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999. 全排列打印 public class Main { public sta ...
- C++ sizeof 误区 大公司面试题
1.C++ 无成员变量和函数的类型的实例,求该实例的sizeof? 答:是1.(不是0) 2.如果在题1的基础上有1个成员变量,sizeof是(1+成员变量的大小)吗? 答:不是,是成员变量的大小. ...
- linux备份文件脚本
#!/bin/sh #Author: Opal TODAY=`date +%Y%m%d` YESTERDAY=`date -d"-1 day" +%Y%m%d` mkdir -p ...
- gulp使用2-gulp-less及watch和错误提示
gulpfile.js /** * Created by Administrator on 2017/4/4 0004. */ const gulp = require('gulp'), less = ...
- 平稳切换nginx版本
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- http://zthdd.bokee.com/6189963.html
http://zthdd.bokee.com/6189963.html先保存
- 关于Websockets问题:
Websockets是一种与服务器进行全双工,双向通信的信道,它不使用http协议,他有自己的协议即自定义协议,ws协议:它的安全协议为wss协议.这种协议专门为快速传输小数据而设计的.对服务其有一 ...