vim+tmux+conda常用配置完全记录,打造熟悉的python编程环境

好记性不如烂笔头,为了省去换服务器可能出现编辑环境的麻烦,决定把vim及tmux常用配置记录一下,方便编辑&运行环境的迁移。

vim常用配置

配置vim纯粹是为了服务器上调试python的方便。下面的配置是我在网上各种大神那里抄过来以及自己按照使用习惯补充的。服务器上vi ~/.vimrc,然后将下面的代码粘贴进去就可以了~

" File: _vimrc

set nocompatible    "非兼容模式
syntax on           "开启语法高亮
set background=dark "背景色
color desert
set ruler           "在左下角显示当前文件所在行
set showcmd         "在状态栏显示命令
set showmatch       "显示匹配的括号
set ignorecase      "大小写无关匹配
set smartcase       "只能匹配,即小写全匹配,大小写混合则严格匹配
set hlsearch        "搜索时高亮显示
set incsearch       "增量搜索
set report=0        "显示修改次数
set mouse=a         "控制台启用鼠标
set number          "行号
set nobackup        "无备份
set cursorline      "高亮当前行背景
set fileencodings=ucs-bom,UTF-8,GBK,BIG5,latin1
set fileencoding=UTF-8
set fileformat=unix "换行使用unix方式
set ambiwidth=double
set noerrorbells    "不显示响铃
set visualbell      "可视化铃声
set foldmarker={,}  "缩进符号
set foldmethod=indent   "缩进作为折叠标识
set foldlevel=100   "不自动折叠
set foldopen-=search    "搜索时不打开折叠
set foldopen-=undo  "撤销时不打开折叠
set updatecount=0   "不使用交换文件
set magic           "使用正则时,除了$ . * ^以外的元字符都要加反斜线
set clipboard=unnamedplus "使用剪贴板

let mapleader = ","
let g:mapleader = ","
nmap  :FixWhitespace
nmap  = I# o
nmap  = 0xx
nmap  ctags -R


"缩进定义
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab
set smarttab
set backspace=2     "退格键可以删除任何东西
"set list

set filetype=python
au BufNewFile,BufRead *.py,*.pyw setf python
set autoindent " same level indent
set smartindent " next level indent
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
set foldenable      "设置可折叠
set foldmethod=indent "设置折叠方式为 - 手工

filetype plugin indent on
set completeopt=longest,menu

if filereadable(expand("~/.vimrc.bundles"))
      source ~/.vimrc.bundles
  endif

"=====================================================
"" NERDTree settings
"=====================================================
let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$']     " Ignore files in NERDTree
let NERDTreeWinSize=30
autocmd VimEnter * if !argc() | NERDTree | endif  " Load NERDTree only if vim is run without arguments
nmap " :NERDTreeToggle

nmap pp "+gp
nmap yy "+y

可以发现.vimrc文件中expand了~/.vimrc.bundles这个文件,这里是vim依赖的一些常用bundles.因此接下来如果没有vundle支持,首先需要在shell中添加vundle:

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

之后vi /.vimrc.bundles创建/.vimrc.bundles文件,并复制:

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" Define bundles via Github repos
Bundle 'bronson/vim-trailing-whitespace'
Bundle 'christoomey/vim-run-interactive'
Bundle 'Valloric/YouCompleteMe'
Bundle 'croaky/vim-colors-github'
Bundle 'danro/rename.vim'
Bundle 'majutsushi/tagbar'
Bundle 'kchmck/vim-coffee-script'
Bundle 'kien/ctrlp.vim'
Bundle 'pbrisbin/vim-mkdir'
Bundle 'scrooloose/syntastic'
Bundle 'slim-template/vim-slim'
Bundle 'thoughtbot/vim-rspec'
Bundle 'tpope/vim-bundler'
Bundle 'tpope/vim-endwise'
Bundle 'tpope/vim-fugitive'
Bundle 'tpope/vim-rails'
Bundle 'tpope/vim-surround'
Bundle 'vim-ruby/vim-ruby'
Bundle 'vim-scripts/ctags.vim'
Bundle 'vim-scripts/matchit.zip'
Bundle "scrooloose/nerdtree"
Bundle "Lokaltog/vim-powerline"
Bundle "godlygeek/tabular"
Bundle "othree/html5.vim"
Bundle "xsbeats/vim-blade"
Bundle "Raimondi/delimitMate"
Bundle "groenewege/vim-less"
Bundle "evanmiller/nginx-vim-syntax"
Bundle "Lokaltog/vim-easymotion"
Bundle "tomasr/molokai"
Bundle "klen/python-mode"

这个安装列表有点长,可根据需要自行删减。命令模式下:w保存,再输入:BundleInstall即可默认安装了。如果提示:BundleInstall则退出并再shell下执行vim +BundleInstall +qall就回默认安装了(此步安装相对费时,有时间可以看篇论文喝个咖啡回来接着配)。

☕️咖啡时间☕️=====

vim安装好就可以直接使用咯,举个栗子,打开文件后,命令模式下按“键就会弹出当前文件夹列表(nerdtree),按F12会自动trail每行多余的空格,F10/F9是注释,F2是生成ctags(支持函数跳转等)…不列举了,各种功能都可自行配置更改。

Tmux配置

tmux的好处自不必多说,经历过代码写到一般掉线的程序员一定都深知其好处。特别是代码写到一半第二天接着写的情况,每次重新打开一堆窗口真是太反人类了。。。还好有tmux

###1. 创建打开tmux窗口###

tmux new -s myscreen
tmux a -t myscreen

myscreen可以替代成任何你想要的名字,数字也ok.此时的tmux跟刚登录开发机的应该没太大差别。

vim+tmux+conda常用配置完全记录,打造熟悉的python编程环境_第1张图片

###2. 配置tmux###
这里让我们来感受tmux的美好。
修改~/.tmux.conf文件,亲测蛮好用又精简的tmux配置:

set-option -g prefix2 ` # 设置一个不常用的`键作为指令前缀,按键更快些
unbind '"'
bind - splitw -v -c '#{pane_current_path}' # 垂直方向新增面板,默认进入当前目录
unbind %
bind | splitw -h -c '#{pane_current_path}' # 水平方向新增面板,默认进入当前目录
setw -g mouse-select-pane on # 支持鼠标选中并切换面板
setw -g mode-mouse on  # 支持滑动屏幕

为了让以上文件生效,需要先cmd+B进入命令模型后输入冒号,然后source-file ~/.tmux.conf文件。这样同样的配置就回在你的tmux中生效了。

那么如何分屏呢?so easy~~~
之前在.tmux.conf中将最不常用的~键(左上角esc下的那个键)配置成了tmux命令键,相当于cmd+B的作用。垂直分屏直接~|,水平分屏~-。是不是很形象嘻嘻~~

个人比较习惯一个大竖屏+俩小命令屏。。分屏后的tmux长介样,当然你还可以根据需要来自行调整:
vim+tmux+conda常用配置完全记录,打造熟悉的python编程环境_第2张图片

至此,不管你是突然断网 or 第二天重连开发机,之前的命令、代码都会原封不动的展示在tmux里。同时为了多线程工作,你还可以创建不同的tmux,处理不同的工作

conda配置

熟悉anaconda的应该对conda都很熟悉的吧。Again,为了编程环境&样式的统一,conda也得个性化才行。

– 安装Anaconda…(此处省略100字,如果你需要自行安装,参考清华镜像anaconda)

– 创建你的conda 环境,可指定需要的python版本

conda create -n mxnet0 python=2.7 

– 进入你的conda环境

source activate mxnet0

– 如果你觉着速度慢

export http_proxy=10.110.216.52:3128  https_proxy=10.110.216.52:3128
# conda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

# pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

– 安装你必须的配件,比如

conda install requests
conda install opencv
conda install openBlas
pip install mxnet  # 注意确认cuda版本,添加cuda path
pip install tensorflow
......此处需等待一顿饭的时间......

– 关闭当前conda环境

source deactivate

你可能感兴趣的:(代码工具,python)