打造自己的Python编码环境
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打造自己的Python编码环境相关的知识,希望对你有一定的参考价值。
趁着放假,重新配置了一下自己的Mac的编程环境,毕竟新年新气象嘛,主要是iTerm2、Zsh、Vim优化、Consolas字体、NoisyTyper,这些的相关配置。工欲利其事必先利其器,好的编码环境可以提升我们的打码的幸福感。好的编码环境包括美观(视觉),声音(听觉),流畅度(触觉),工作环境(嗅觉,味觉)等多个方面。后面有几张配置后的图片感受一下,主要看字体和配色(有些人可能觉得比较丑,个人喜欢黑紫,配色和字体有很多选择,各有所好,求别喷 XD)。
Zsh效果
Vim效果
【准备阶段:器】
iTerm2:是os系统中的一个替代终端。主要优点:屏幕分割(可以水平分割和垂直分割),选中即复制,快速查找(command+f),配色字体自定义化,自定义快捷键等。
Consolas:微软下最好看的字体之一,个人认为很适合程序员,除开字体好看外,主要原因是它的数字“0”字加入了一斜撇,以方便与字母“o”分辨。这也是我和它结缘的主要缘由,当年在某次acm比赛中,就是因为肉眼无法分辨是0还是o,遗憾至今。
Zsh:zsh和bash一样是Shell的一种。相比bash:更高效、更好的自动补全、更好的文件名展开(通配符展开)、更好的数组处理、可定制性高。mac下自带了zsh,无需再安装。
Vim:是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。和Emacs并列成为类Unix系统用户最喜欢的编辑器。估计大家都很熟悉,不做累述。
NoisyTyper:一款提升你打字逼格的软件,可以让你打字的时候发出打字机的声音,咔咔咔这样。
上面几个安装都比较简单,教程也比较多。这里主要讲一下mac下consolas字体的安装。
1
2
3
4
5
6
7
8
|
$ brew install cabextract
$ cd ~/Downloads
$ mkdir consolas
$ cd consolas
$ curl -O http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26/PowerPointViewer.exe
$ cabextract PowerPointViewer.exe
$ cabextract ppviewer.cab
$ open CONSOLA*.TTF
|
最后按下弹出窗口的安装键就ok了。
【打磨阶段:利器】
上面的工具准备好了后,就可以开始配置这些工具了。
Zsh配置
oh-my-zsh:一套强大的开源zsh配置文件。安装如下:
1
2
3
4
5
6
|
// 使用curl安装
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
// 或者使用wget安装
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
// 安装后重新载入配置
$ source .zshrc
|
oh-my-zsh主题: oh-my-zsh有多款配套主题,点击前面的主题链接可以看到所有主题。这里主要介绍下agnoster主题。修改zsh配置文件(~/.zshrc)中的主题属性为agnoster即可。官方图如下:
安装这个主题需要额外安装powerline字体,不然会显示乱码。如果你想隐藏自己的用户名信息,需要在zsh配置文件中设置默认用户。具体安装配置如下:
1
2
3
4
5
6
7
8
9
10
|
// 修改zsh配置文件
$ vim ~/.zshrc
ZSH_THEME="agnoster" //在.zshrc中修改ZSH_THEME
DEFAULT_USER=username // 在.zshrc中添加或者修改默认用户为自己,开启终端后就不会显示自己的用户名信息
$ source ~/.zshrc // 重新载入配置文件
// poweline font 安装
$ git clone https://github.com/powerline/fonts.git
$ cd powerline
$ ./install.sh
|
iTerm2配置
字体:接着要在iterm2的Perferences中Text中选择常规字体 为consolas字体或者其他你喜欢的字体,非ASCII码字体为powerline字体(一定要是名字中带powerline的字体,不然还是乱码)。如下:
iTerm2配色:从这里可以获取很多别人的配色主题,把整个项目git clone下来,然后在iterm2的Perferences中的Colors最下面的Load Presets中import git下来的schemes文件夹里面itermcolors后缀的文件,自己可以根据自己喜欢调整自己喜欢的颜色,我选的是Fish Tank,我自己微调了一些配色。如下:
Vim配置
之前一直用spf13,但是打开大文件太卡了,所以自己重新配置了一份。实测打开8000+行代码的文件,因为语法检测,所以大概延时1s左右,之后操作很顺畅。在配置过程中会遇到很多蛋疼的地方。需要比较系统的学习一下vim脚本的语法和相关配置方法,vim网上很多配置好文,如《像 IDE 一样使用 vim》,还有《vim 脚本学习文档》,我就不累述了,配置文件的注释写的比较详细。我的配置主要针对python开发,另外需要额外安装python包flake8。具体如下:
vimrc文件,主要是vim基础配置。(highlight.js不支持vim script,有点蛋疼)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
" 相关vim脚本文档 http://vimdoc.sourceforge.net
" 相关好文 https://github.com/yangyangwithgnu/use_vim_as_ide
" 导入vim插件管理文件
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
" 基本配置
set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
set mouse=a " 启动鼠标所有模式,但是右键功能不可用, 可以保证鼠标滚屏在当前屏幕内
set mousehide " 输入文件时隐藏鼠标
set backspace=indent,eol,start " 退格键分别可删除缩进,上一行结束,insert之前的字
set showmatch " 设置匹配模式
set nobackup " 不备份
set nowritebackup " 不写入备份文件
set noswapfile " 关闭交换文件
set history=500 " history存储长
set ruler " 显示标尺
set showcmd " 显示输入命令
set incsearch " 搜索时自动匹配
set hlsearch " 高亮搜索项
set ignorecase " 无视大小写
set smartcase " 如果有大写就区别大小写匹配
set laststatus=2 " 总是显示状态栏
" set autowrite " 切换文件自动保存 https://github.com/terryma/vim-multiple-cursors/raw/master/assets/example1.gif?raw=true
set shortmess=atI" " 关闭欢迎页面
set viewoptions=cursor,folds,slash,unix " viminfo 记录的内容
set virtualedit=onemore " 光标可以移到当行最后一个字符之后
set hidden " 切换文件不保存,隐藏
"set confirm " 退出前验证
" set spell " 拼写检查
set linespace=0 " 行之间没有多余的空格
set wildmenu " 自动补全时的文件菜单
set wildmode=list:longest,full " 自动补全时,匹配最长子串,列出文件
set whichwrap=b,s,h,l,<,>,[,] " 行尾可右移到下行,行首左移到上行,b:退格,s:空格,hl:左右,<>:n/v模式下的左右,[]:i/r模式下的左右
set scrolljump=5 " 光标离开屏幕范围
set scrolloff=3 " 光标移动至少保留行数
" 格式
set nowrap " 取消自动折行
"set smarttab
set tabstop=4 " tab=4空格
set softtabstop=4 " 回退可以删除缩进
set shiftwidth=4 " 缩进位宽=4个空格位
set autoindent " 自动缩进
set expandtab " tab由空格表示
set nojoinspaces " 用J合并两行用一个空格隔开
set splitright " 用vsplit新建窗口,让新的放右边
set splitbelow " 用split新建窗口,让新的放下面
set pastetoggle=<F12> " 指定F12进入黏贴模式,可以正常复制缩进
set iskeyword-=. " 让‘.‘ 作为单词分割符
set iskeyword-=# " 让‘#‘ 作为单词分割符
set iskeyword-=- " 让‘-‘ 作为单词分割符
set listchars=tab:›\ ,trail:•,extends:#,nbsp:. " 空格等无效字符显示
set textwidth=80 " 内容宽度
set fileencodings=utf-8,gb18030,gbk,big5 " 文件编码
" 开启新的buffer时,自动转到对应文件目录
let g:autochdir = 1
if exists(‘g:autochdir‘)
autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | lcd %:p:h | endif
endif
" 设置u的返回步数限制
if has(‘persistent_undo‘)
set undofile " 开启u回滚文件记录
set undolevels=1000 " 最大数量的改变回滚
set undoreload=10000 " 最大数量重载可回滚行数 |
以上是关于打造自己的Python编码环境的主要内容,如果未能解决你的问题,请参考以下文章