1. 程式人生 > >vim+tmux+conda常用配置完全記錄,打造熟悉的python程式設計環境

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 <F12> :FixWhitespace<cr> nmap <F10> = I# <Esc>o nmap <F9> = 0xx<Esc> nmap <F2> ctags -R<cr> "縮排定義 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<CR> nmap <leader>pp "+gp nmap <leader>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跟剛登入開發機的應該沒太大差別。

這裡寫圖片描述

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長介樣,當然你還可以根據需要來自行調整:
這裡寫圖片描述

至此,不管你是突然斷網 or 第二天重連開發機,之前的命令、程式碼都會原封不動的展示在tmux裡。同時為了多執行緒工作,你還可以建立不同的tmux,處理不同的工作

conda配置

熟悉anaconda的應該對conda都很熟悉的吧。Again,為了程式設計環境&樣式的統一,conda也得個性化才行。

– 安裝Anaconda…..(此處省略100字,如果你需要自行安裝,參考清華映象anaconda

– 建立你的conda 環境,可指定需要的python版本

conda create -n mxnet0 python=2.7 

– 進入你的conda環境

source activate mxnet0

– 如果你覺著速度慢

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

– 安裝你必須的配件,比如

conda install requests
conda install opencv
conda install openBlas
pip install mxnet
pip install tensorflow
......此處需等待一頓飯的時間......

– 關閉當前conda環境

source deactivate