打造自己的金冠53777

作者:操作系统

前言

金冠53777 1

重新配置了须臾间温馨的Mac的编制程序境遇,毕竟新禧新气象嘛,首假若iTerm2、Zsh、Vim优化、Consolas字体、NoisyTyper,这个的相干陈设。工欲利其事必先利其器,好的编码意况得以升级大家的打码的幸福感。好的编码蒙受满含雅观(视觉),声音(听觉),流畅度(触觉),专业条件(嗅觉,味觉)等多少个方面。前边有几张配置后的图纸感受一下,首要看字体和配色(某一个人恐怕认为很难看,个人喜好黑紫,配色和字体有非常多精选,各装有好,求别喷 XD)

 

金冠53777 2

那边输入图片的陈诉

金冠53777 3

此间输入图片的汇报

 

打算阶段:器

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. $ brew install cabextract
  2. $ cd~/Downloads
  3. $ mkdir consolas
  4. $ cd consolas
  5. $ curl -O http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26/PowerPointViewer.exe
  6. $ cabextract PowerPointViewer.exe
  7. $ cabextract ppviewer.cab
  8. $ open CONSOLA*.TTF

最终按下弹出窗口的安装键就ok了。

 

磨刀阶段:利器

下边包车型客车工具图谋好了后,就足以起先安插这个工具了。

 

Zsh配置

oh-my-zsh:一套庞大的开源zsh配置文件。安装如下:

  1. // 使用curl安装
  2. $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  3. // 或者使用wget安装
  4. $ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
  5. // 安装后重新载入配置
  6. $ source .zshrc

oh-my-zsh主题: oh-my-zsh有多款配套核心,点击后面包车型地铁大旨链接能够见到有着主旨。这里最首要介绍下agnoster主旨。修改zsh配置文件(~/.zshrc)中的宗旨属性为agnoster就可以。官方图如下:

金冠53777 4

此间输入图片的陈诉

安装这些主题须要非常安装powerline字体,不然会彰显乱码。假如你想隐蔽本人的客商名新闻,供给在zsh配置文件中装置暗中同意客商。具体安装配备如下:

  1. // 修改zsh配置文件
  2. $ vim~/.zshrc
  3. ZSH_THEME="agnoster"//在.zshrc中修改ZSH_THEME
  4. DEFAULT_USER=username // 在.zshrc中添加或者修改默认用户为自己,开启终端后就不会显示自己的用户名信息
  5. $ source ~/.zshrc //重新载入配置文件
  6. // poweline font 安装
  7. $ gitclone https://github.com/powerline/fonts.git
  8. $ cd powerline
  9. $ ./install.sh

 

iTerm2配置

字体:接着要在iterm2的Perferences中Text中精选常规字体 为consolas字体大概别的你欣赏的字体,非ASCII码字体为powerline字体(必然若是名字中带powerline的字体,不然依旧乱码)。如下:

金冠53777 5

这里输入图片的陈说

iTerm2配色:从这里可以拿走比相当多别人的配色核心,把全部项目git clone下来,然后在iterm2的Perferences中的Colors最上边包车型客车Load Presets中import git下来的terminal文件,本人能够依靠本人爱怜调节协和喜好的颜料,作者选的是Fish Tank,我要好微调了一部分配色。如下:

金冠53777 6

那边输入图片的叙说

 

Vim配置

从前平昔用spf13,然而张开大文件太卡了,所以自身重新配置了一份。实地衡量打开8000+行代码的文件,因为语法检查测量试验,所以大概延时1s左右,之后操作很顺利。在计划进程中会蒙受不菲蛋疼的地点。需求相比系统的就学一下vim脚本的语法和相关布置格局,vim互连网过多配置好文,如《像 IDE 同样采纳vim》,还有《vim 脚本学习文书档案》,小编就不累述了,配置文件的注释写的相比较详细。笔者的配置主要针对python开辟,别的部要求要格外安装python包flake8。

越来越多Vim相关学科见以下内容

Vim学习指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

高效学会 Vi编辑器 http://www.linuxidc.com/Linux/2013-08/88586.htm

强大的Vim 编辑器 http://www.linuxidc.com/Linux/2013-07/87544.htm

在CentOS 6.2上搭建Vim开辟情状 http://www.linuxidc.com/Linux/2013-07/87363.htm

CentOS 5.4 安装高亮Vim编辑工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim本事共享:C语言设置 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中设置Vim的行号 http://www.linuxidc.com/Linux/2012-12/75485.htm

Vim编辑器使用基础教程 http://www.linuxidc.com/Linux/2013-05/84031.htm

切切实实如下:

vimrc文件,首如果vim基础配置。(highlight.js不辅助vim script,有一点点蛋疼)

  1. " .vimrc
  2. "相关vim脚本文档 http://vimdoc.sourceforge.net
  3. " 相关好文 https://github.com/yangyangwithgnu/use_vim_as_ide
  4. "基本配置
  5. set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题
  6. set mouse=a "启动鼠标所有模式,但是右键功能不可用,可以保证鼠标滚屏在当前屏幕内
  7. set mousehide " 输入文件时隐藏鼠标
  8. set backspace=indent,eol,start "退格键分别可删除缩进,上一行结束,insert之前的字
  9. set showmatch " 设置匹配模式
  10. set nobackup "不备份
  11. set nowritebackup " 不写入备份文件
  12. set noswapfile "关闭交换文件
  13. set history=500" history存储长
  14. set ruler "显示标尺
  15. set showcmd " 显示输入命令
  16. set incsearch "搜索时自动匹配
  17. set hlsearch " 高亮搜索项
  18. set ignorecase "无视大小写
  19. set smartcase " 如果有大写就区别大小写匹配
  20. set laststatus=2 "总是显示状态栏
  21. " set autowrite "切换文件自动保存
  22. set shortmess=atI" "关闭欢迎页面
  23. set viewoptions=folds,options,cursor,unix,slash " Better Unix / Windows compatibility
  24. set virtualedit=onemore "光标可以移到当行最后一个字符之后
  25. set hidden " 切换文件不保存,隐藏
  26. "set confirm " 退出前验证
  27. "set spell " 拼写检查
  28. set linespace=0 "行之间没有多余的空格
  29. set wildmenu " 自动补全时的文件菜单
  30. set wildmode=list:longest,full "自动补全时,匹配最长子串,列出文件
  31. set whichwrap=b,s,h,l,<,>,[,]" 行尾可右移到下行,行首左移到上行,b:退格,s:空格,hl:左右,<>:n/v模式下的左右,[]:i/r模式下的左右
  32. set scrolljump=5 "光标离开屏幕范围
  33. set scrolloff=3" 光标移动至少保留行数
  34. "格式
  35. set nowrap " 取消自动折行
  36. set autoindent "自动缩进
  37. set shiftwidth=4" 缩进位宽=4个空格位
  38. set expandtab " tab由空格表示
  39. set tabstop=4" tab=4空格
  40. set softtabstop=4 "回退可以删除缩进
  41. set nojoinspaces " 用J合并两行用一个空格隔开
  42. set splitright "用vsplit新建窗口,让新的放右边
  43. set splitbelow " 用split新建窗口,让新的放下面
  44. set pastetoggle=<F12> "指定F12进入黏贴模式,可以正常复制缩进
  45. set iskeyword-=." 让'.' 作为单词分割符
  46. set iskeyword-=# "让'#'作为单词分割符
  47. set iskeyword-=-" 让'-' 作为单词分割符
  48. set listchars=tab:› ,trail:•,extends:#,nbsp:. "空格等无效字符显示
  49. set textwidth=80" 内容宽度
  50. set fileencodings=utf-8,gb18030,gbk,big5 "文件编码
  51. " 文件保存时处理首尾空格,^M字符
  52. let g:keep_trailing_whitespace = 1
  53. function! StripTrailingWhitespace()
  54. let _s=@/
  55. let l = line(".")
  56. let c = col(".")
  57. %s/s+$//e
  58. let @/=_s
  59. call cursor(l, c)
  60. endfunction
  61. autocmd FileType c,cpp,java,go,php,javascript,python,twig,xml,yml autocmd BufWritePre <buffer> if exists('g:keep_trailing_whitespace') | call StripTrailingWhitespace() | endif
  62. "开启新的buffer时,自动转到对应文件目录
  63. let g:autochdir =1
  64. if exists('g:autochdir')
  65. autocmd BufEnter*if bufname("")!~"^[A-Za-z0-9]*://"| lcd %:p:h | endif
  66. endif
  67. " 恢复光标最后编辑位置
  68. au BufWinLeave *.py,*.c,*.cpp,*.css,*.html,*.js,*php mkview
  69. au BufWinEnter *.py,*.c,*.cpp,*.css,*.html,*.js,*php silent loadview
  70. "设置u的返回步数限制
  71. if has('persistent_undo')
  72. set undofile " 开启u回滚文件记录
  73. set undolevels=1000 "最大数量的改变回滚
  74. set undoreload=10000" 最大数量重载可回滚行数
  75. endif
  76. "特殊文件打开
  77. autocmd BufNewFile,BufRead*.py,*.pyw set filetype=python
  78. autocmd BufNewFile,BufRead*.html.twig set filetype=html.twig
  79. autocmd FileType haskell setlocal expandtab shiftwidth=2 softtabstop=2
  80. autocmd BufNewFile,BufRead*.coffee set filetype=coffee
  81. autocmd FileType haskell setlocal commentstring=-- %s
  82. autocmd FileType haskell setlocal nospell
  83. " key 映射
  84. let mapleader = ',' "全局leader设置
  85. let maplocalleader ='_'" 本地leader设置
  86. "设置tag和window间快速跳转
  87. let g:easyWindows =1
  88. if exists('g:easyWindows')
  89. " 向上
  90. map <C-J> <C-W>j<C-W>_
  91. "向下
  92. map <C-K><C-W>k<C-W>_
  93. " 向右
  94. map <C-L> <C-W>l<C-W>_
  95. "向左
  96. map <C-H><C-W>h<C-W>_
  97. endif
  98. " 处理折叠行的左右移动
  99. noremap j gj
  100. noremap k gk
  101. "没sudo却想保存
  102. cmap w!!w!sudotee%>/dev/null
  103. " ,fc查找冲突的地方
  104. map <leader>fc /v^[<|=>]{7}( .*|$)<CR>
  105. ",ff 查找光标后的单词位置,列出选择项
  106. nmap<Leader>ff [I:let nr = input("Which one: ")<Bar>exe "normal ". nr ."[t"<CR>
  107. " 屏幕左移和右移
  108. map zl zL
  109. map zh zH
  110. "映射vsp这些开启新的buffer,默认目录为当前目录
  111. cnoremap %%<C-R>=fnameescape(expand('%:h')).'/'<cr>
  112. map <leader>ew :e %%
  113. map <leader>es :sp %%
  114. map <leader>ev :vsp %%
  115. map <leader>et :tabe %%
  116. " 黏贴板
  117. if has('clipboard')
  118. if has('unnamedplus')
  119. set clipboard=unnamedplus
  120. else
  121. set clipboard=unnamed
  122. endif
  123. endif
  124. "字体的设置
  125. set guifont=Consolas,Bitstream_Vera_Sans_Mono:h9:cANSI " 设置gui字体
  126. set gfw=幼圆:h10:cGB2312
  127. "语法高亮
  128. syntax on
  129. " 导入vim插件管理文件
  130. if filereadable(expand("~/.vimrc.bundles"))
  131. source ~/.vimrc.bundles
  132. endif
  133. "缩进和md文件
  134. filetype plugin indent on " 自动根据类型启动对应插件,缩进开启
  135. "设置主题,UI
  136. " solarized 主题
  137. set background=dark
  138. if filereadable(expand("~/.vim/bundle/vim-colors-solarized/colors/solarized.vim"))
  139. let g:solarized_termcolors=256
  140. let g:solarized_termtrans=1
  141. let g:solarized_contrast="normal"
  142. let g:solarized_visibility="normal"
  143. color solarized "Load a colorscheme
  144. endif
  145. set cursorline " 选中行高亮
  146. autocmd BufEnter *.py set cc=81 "打开py文件81行高亮
  147. " 之前的高亮线太难看,重新制定颜色,这里的black和iterm2颜色配置中的black一样
  148. hi CursorLine cterm=NONE ctermbg=black guibg=black
  149. hi CursorColumn cterm=NONE ctermbg=black guibg=black "
  150. highlight ColorColumn ctermbg=black guibg=black
  151. set number " 设置行号
  152. hi LineNr ctermbg=black
  153. "IndentGuides缩进列对齐线
  154. let g:indent_guides_start_level =2
  155. let g:indent_guides_guide_size =1
  156. let g:indent_guides_enable_on_vim_startup =1
  157. " airline 就是状态栏的箭头
  158. let g:airline_theme="dark"
  159. let g:airline_powerline_fonts = 1
  160. let g:airline#extensions#tabline#enabled = 1
  161. let g:airline#extensions#tabline#buffer_nr_show = 1
  162. "NerdTree配置 control+e打开当前文件目录树
  163. map <C-e>:NERDTreeToggle<CR>
  164. map <leader>ee :NERDTreeToggle<CR>
  165. nmap<leader>nt :NERDTreeFind<CR>
  166. let NERDTreeShowBookmarks=1
  167. let NERDTreeIgnore=['.pyc','~$','.swo$','.swp$','.git','.hg','.svn','.bzr']
  168. let NERDTreeChDirMode=0
  169. let NERDTreeQuitOnOpen=1
  170. let NERDTreeMouseMode=2
  171. let NERDTreeShowHidden=1
  172. let NERDTreeKeepTreeInNewTab=1
  173. let g:nerdtree_tabs_open_on_gui_startup=0
  174. " syntastic 配置
  175. "设置每次w保存后语法检查
  176. function!ToggleErrors()
  177. Errors
  178. endfunction
  179. let g:syntastic_check_on_open=1
  180. let g:syntastic_always_populate_loc_list =1
  181. let g:syntastic_auto_loc_list =1
  182. let g:syntastic_check_on_wq =0
  183. let syntastic_loc_list_height =5
  184. let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute "ng-"]
  185. autocmd WinEnter*if&buftype ==#'quickfix'&& winnr('$')==1| quit |endif
  186. autocmd WinLeave* lclose
  187. " 自动补全tab触发
  188. function! InsertTabWrapper()
  189. let col = col('.') - 1
  190. if !col || getline('.')[col - 1] !~ 'k'
  191. return "<tab>"
  192. else
  193. return "<c-p>"
  194. endif
  195. endfunction
  196. inoremap <Tab> <c-r>=InsertTabWrapper()<cr>
  197. inoremap <S-Tab> <c-n>
  198. "Ctrlp和Ctrlp-funky(,fu)
  199. if isdirectory(expand("~/.vim/bundle/ctrlp.vim/"))
  200. let g:ctrlp_working_path_mode ='ra'
  201. nnoremap <silent><D-t>:CtrlP<CR>
  202. nnoremap <silent><D-r>:CtrlPMRU<CR>
  203. let g:ctrlp_custom_ignore ={
  204. 'dir':'.git$|.hg$|.svn$',
  205. 'file':'.exe$|.so$|.dll$|.pyc$'}
  206. if executable('ag')
  207. let s:ctrlp_fallback ='ag %s --nocolor -l -g ""'
  208. elseif executable('ack-grep')
  209. let s:ctrlp_fallback ='ack-grep %s --nocolor -f'
  210. elseif executable('ack')
  211. let s:ctrlp_fallback ='ack %s --nocolor -f'
  212. " On Windows use "dir" as fallback command.
  213. else
  214. let s:ctrlp_fallback = 'find %s -type f'
  215. endif
  216. if exists("g:ctrlp_user_command")
  217. unlet g:ctrlp_user_command
  218. endif
  219. let g:ctrlp_user_command = {
  220. 'types': {
  221. 1: ['.git', 'cd %s && git ls-files . --cached --exclude-standard --others'],
  222. 2: ['.hg', 'hg --cwd %s locate -I .'],
  223. },
  224. 'fallback': s:ctrlp_fallback
  225. }
  226. if isdirectory(expand("~/.vim/bundle/ctrlp-funky/"))
  227. "CtrlP extensions
  228. let g:ctrlp_extensions =['funky']
  229. "funky
  230. nnoremap <Leader>fu :CtrlPFunky<Cr>
  231. endif
  232. endif
  233. " complete
  234. autocmd Filetype*if&omnifunc ==""| setlocal omnifunc=syntaxcomplete#Complete| endif
  235. autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
  236. autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
  237. autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
  238. autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
  239. "进行版权声明的设置
  240. "添加或更新头
  241. map <F4>:call TitleDet()<cr>'s
  242. autocmd BufNewFile *.py :call TitleDet()
  243. function AddTitle()
  244. call append(0,"#! /usr/bin/env python")
  245. call append(1,"# -*- coding: utf-8 -*-")
  246. call append(2,"# vim:fenc=utf-8 ")
  247. call append(3,"# Copyright © XYM")
  248. call append(4,"# Last modified: ".strftime("%Y-%m-%d %H:%M:%S"))
  249. call append(5,"")
  250. endf
  251. "更新最近修改时间和文件名
  252. function UpdateTitle()
  253. normal m'
  254. execute '/# *Last modified:/s@:.*$@=strftime(":t%Y-%m-%d %H:%M")@'
  255. normal ''
  256. normal mk
  257. execute '/# *Filename:/s@:.*$@=":tt".expand("%:t")@'
  258. execute "noh"
  259. normal 'k
  260. endfunction
  261. "判断前10行代码里面,是否有Last modified这个单词,
  262. "如果没有的话,代表没有添加过作者信息,需要新添加;
  263. "如果有的话,那么只需要更新即可
  264. function TitleDet()
  265. let n=1
  266. "默认为添加
  267. while n < 10
  268. let line = getline(n)
  269. if line =~ '^#s*S*Lastsmodified:S*.*$'
  270. call UpdateTitle()
  271. return
  272. endif
  273. let n = n + 1
  274. endwhile
  275. call AddTitle()
  276. endfunction

 

vimrc.bundles文件,首纵然vim相关插件

  1. " .vimrc.bundles
  2. if &compatible
  3. set nocompatible
  4. end
  5. filetype off
  6. set rtp+=~/.vim/bundle/vundle
  7. call vundle#rc()
  8. Bundle "gmarik/vundle"
  9. "星级越多越推荐,5星为必选,4星强烈推荐,3星比较推荐
  10. " 文件模糊匹配查找 推荐:****
  11. Bundle "kien/ctrlp.vim"
  12. "函数模糊匹配查找(,fu)推荐:****
  13. Bundle'tacahiroy/ctrlp-funky'
  14. " 文件索引树 推荐:*****
  15. Bundle "scrooloose/nerdtree"
  16. "自动注释推荐:*****
  17. Bundle'scrooloose/nerdcommenter'
  18. " 语法检查 推荐:****
  19. Bundle "scrooloose/syntastic"
  20. "括号自动匹配推荐:****
  21. Bundle'jiangmiao/auto-pairs'
  22. " 光标多行编辑 <C-n> <C-x> <C-p> 推荐:****
  23. Bundle 'terryma/vim-multiple-cursors'
  24. "配色主题推荐:****
  25. Bundle"altercation/vim-colors-solarized"
  26. " 缩进引导线 推荐:****
  27. Bundle "nathanaelkane/vim-indent-guides"
  28. "状态栏效果推荐:***
  29. Bundle"bling/vim-airline"
  30. " python 推荐:****
  31. Bundle 'yssource/python.vim'
  32. Bundle 'python_match.vim'
  33. Bundle 'pythoncomplete'
  34. " js 推荐:****
  35. Bundle'elzr/vim-json'
  36. Bundle'groenewege/vim-less'
  37. Bundle'pangloss/vim-javascript'
  38. Bundle'briancollins/vim-jst'
  39. Bundle'kchmck/vim-coffee-script'
  40. " html 推荐:****
  41. Bundle 'amirh/HTML-AutoCloseTag'
  42. Bundle 'hail2u/vim-css3-syntax'
  43. Bundle 'gorodinskiy/vim-coloresque'
  44. Bundle 'tpope/vim-haml'
  45. Bundle 'mattn/emmet-vim'
  46. if filereadable(expand("~/.vimrc.bundles.local"))
  47. source ~/.vimrc.bundles.local
  48. endif
  49. filetype on

 

总结

叁个好的程序猿必得长于各样工具提高本身的开垦作用,和升迁自身的幸福指数。其余,个人认为vim依旧值得自个儿再次一配的,作者的布置过程基本都是在读spf13的布局,读懂,然后选拔,不过中间依然出了无数主题材料,例如因为自己从不用pymode插件,所以在用括syntastic的local_list在退出或许分屏时的职位,都令本身很蛋疼。并且在读spf13陈设时,会发觉有为数不菲很好的作用都未曾用上,举例paste情势,查找争辨火速键,显示器移动,还恐怕有ctrlp-funky,vim-multiple-cursors那些很爽的插件。大家有好的配置可以引入给作者。

上边关于Python的篇章您也说不定喜欢,无妨看看:

Linux下Python的装置以及注意事项  http://www.linuxidc.com/Linux/2015-11/124861.htm

Ubuntu 14.04 下安装使用Python rq模块  http://www.linuxidc.com/Linux/2015-08/122441.htm

不用操作系统直接运维 Python 代码  http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上源码安装Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心编制程序 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python开荒技术详解》.( 刘剑华,宗杰).[高清PDF扫描版+随书录像+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python脚本获取Linux系统新闻 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易切磋境遇 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 语言的进化简史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的详尽介绍:请点这里
Python 的下载地址:请点这里 

本文永恒更新链接地址:http://www.linuxidc.com/Linux/2016-02/128244.htm

金冠53777 7

本文由金冠53777-金冠娱乐53777-Welcome发布,转载请注明来源

关键词: