使用vim+tmux+zsh+autojump提升效率
Unix was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.
如果你是用mac或者linux,这些工具的配合能大幅提高工作(装逼)效率(并且在服务器上也能用),本文不打算具体介绍安装方式,请自行google,主要介绍下vim一些好用的插件,说实话,真正感觉vim好用是因为github上很多牛人写的好用的插件。(当然如果你用IDE我强烈推荐Pycharm, 其实编辑器用不好反而容易写出烂代码,还是推荐不想折腾的用PyCharm,最好用的python开发工具,pycharm+vim插件也比较爽)。无论用什么工具,首要目的都是提升开发效率。
##vim小Tips
- 更改键盘设置映射capslock到ctrl,ctrl使用非常频繁
- 使用ctrl+[ 或者 ctr+c 代替 Esc
- vimrc中加入两行
inoremap <c-l> <c-o>:w<cr>
和nnoremap <c-l> :w<cr>
保存文件,再也不用每次都使用:w了,insert和normal模式下都可以用 - Chrome安装vimium可以在浏览器里使用vim命令浏览网页
- 高亮当前选中单词,写代码的时候高亮选中的相同单词,方便查找引用。F3激活
1
2autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
##如何安装插件
- 首先安装Vundle: git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 在vimrc中加入下边代码
set nocompatible " required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required, 如果有新的插件,直接把名称放到这里
Plugin 'gmarik/Vundle.vim'
" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
- 进入vi执行:BundleInstall就可以了
vim插件之-代码篇
- Bundle ‘klen/python-mode’,拥有python几乎所有IDE的功能,吐血推荐 ,杀手级python插件
- Plugin ‘jmcantrell/vim-virtualenv’,虚拟环境python支持
- Plugin ‘pangloss/vim-javascript’, js支持
- Bundle ‘mattn/emmet-vim’, 书写html和css,前端支持
- Bundle ‘SirVer/ultisnips’和 Plugin ‘honza/vim-snippets’, 代码片段补全
- Bundle ‘scrooloose/syntastic’, 支持各种流行编程语言的语法检测
- Bundle ‘majutsushi/tagbar’,支持大纲浏览
- Plugin ‘tpope/vim-fugitive’, git支持,直接在vim中执行git命令。一个特别方便的命令就是:Gblame,可以看到每一行代码是谁在啥时候提交的(有问题能直接找他问)。
- Plugin ‘Valloric/YouCompleteMe’, 支持c/c++/python/go等流行编程语言的代码补全
- Bundle ‘scrooloose/nerdcommenter’,快速注释,支持几乎所有编程语言
到此为止你就已经有了一个python全栈开发IDE了,并且这套配置用ssh登录到服务器上也可以愉快地写代码了,笔者经常因为本地有些服务不好配置直接ssh到服务器写代码。
vim插件之-移动篇
- Plugin ‘easymotion/vim-easymotion’, 快速移动插件, ‘,,w’可以在单词上出现前缀,然后快速跳转
- Plugin ‘haya14busa/incsearch.vim’
- Plugin ‘haya14busa/incsearch-fuzzy.vim’,模糊搜索,自带搜索比较弱,这个模糊搜索很快速
vim插件之-文件浏览
- Bundle ‘scrooloose/nerdtree’, 在vim里文件树浏览
- Bundle ‘kien/ctrlp.vim’, 必备神器之一, 快速文件搜索和跳转,支持mru搜索,基本就可以放弃文件树了
vim插件之-外观篇
- Plugin ‘yggdroot/indentline’, 缩进线条,可以set cursorline加上水平线条,python里这个还是很必要的
- Plugin ‘mhinz/vim-startify’, 启动的时候显示一些编程相关的名言警句和最近打开文件,很有意思
- Plugin ‘bling/vim-airline’ 和 Plugin ‘vim-airline/vim-airline, 底下的文件信息提示行,彩虹效果
- Plugin ‘kien/rainbow_parentheses.vim’,彩虹括号,让嵌套括号容易分辨,花里胡哨的^_^
提示,如果airline在tmux中的vim不能用,在你的bashrc或者zshrc中加入export TERM="xterm-256color"
目前为止你就已经有了一个轻量而又炫酷的vim开发环境了,从此不再羡慕任何IDE,一套vimrc配置走天下。happy coding,在服务器上也可以直接写代码了。在本地开发的话如果机器好可以用pycharm+vim插件。
##使用tmux
- 终端复用
- 分屏神器
- 后台进程托管
- 最近在youtube上看到,不同的人attach到同一个session还可以用来结对编程,相当基情
vim+tmux工作流几乎可以在写代码的时候完全脱离鼠标。笔者目前写代码基本上都是 ssh 到服务器上,每个项目开个 tmux 相当于一个工作区,每个区域下开多个窗口,一些窗口用来查看 git,一些窗口调试或者运行测试等,一个全屏窗口打开 vim 编辑。
##on-my-zsh
- wget –no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
- 功能强大,替代bash
- 主题支持,很多炫酷主题可以选
- 智能补全
- 插件支持(git,autojump等)
###autojump
autojump
这玩意跳转到目录相当方便,各种模糊匹配,大大节省了你来回cd到各种目录的时间。
###让ubuntu vim支持python3
直接拷贝下边命令到终端,喝杯茶,之后在vimrc里边let g:pymode_python = 'python3'
1 | sudo apt-get build-dep vim |
掌握以上工具基本就能在终端里游刃有余了,至于editor你随便选个趁手的就行,很多时间还是要花在editor上的。附录有关于mac上各种开发环境的配置参考,感兴趣可以看看。
Ref:
http://sourabhbajaj.com/mac-setup/
https://github.com/donnemartin/dev-setup