本篇文章旨在在 mac 平台基于
vim
配置一个IDE
.
使用的工具
- Vim
- tmux
- iTerm2 + Oh My Zsh
iTerm2 + Oh My Zsh
对于 iTerm2 + Oh My Zsh 可参考这篇文章。
Vim
Install
$ brew install vim
# restart shell
$ exec -l $SHELL
查看安装的 vim 信息
$ vim --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Nov 24 2018 19:13:03)
macOS version
包含补丁: 1-500
编译者 Homebrew
巨型版本 无图形界面。 可使用(+)与不可使用(-)的功能:
+acl +extra_search +mouse_netterm +tag_old_static
+arabic +farsi +mouse_sgr -tag_any_white
+autocmd +file_in_path -mouse_sysmouse -tcl
+autochdir +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
-balloon_eval +folding +multi_byte +terminfo
+balloon_eval_term -footer +multi_lang +termresponse
-browse +fork() -mzscheme +textobjects
++builtin_terms +gettext +netbeans_intg +timers
+byte_offset -hangul_input +num64 +title
+channel +iconv +packages -toolbar
+cindent +insert_expand +path_extra +user_commands
-clientserver +job +perl +vartabs
+clipboard +jumplist +persistent_undo +vertsplit
+cmdline_compl +keymap +postscript +virtualedit
+cmdline_hist +lambda +printer +visual
+cmdline_info +langmap +profile +visualextra
+comments +libcall -python +viminfo
+conceal +linebreak +python3 +vreplace
+cryptv +lispindent +quickfix +wildignore
+cscope +listcmds +reltime +wildmenu
+cursorbind +localmap +rightleft +windows
+cursorshape +lua +ruby +writebackup
+dialog_con +menu +scrollbind -X11
+diff +mksession +signs -xfontset
+digraphs +modify_fname +smartindent -xim
-dnd +mouse +startuptime -xpm
-ebcdic -mouseshape +statusline -xsmp
+emacs_tags +mouse_dec -sun_workshop -xterm_clipboard
+eval -mouse_gpm +syntax -xterm_save
+ex_extra -mouse_jsbterm +tag_binary
系统 vimrc 文件: "$VIM/vimrc"
用户 vimrc 文件: "$HOME/.vimrc"
第二用户 vimrc 文件: "~/.vim/vimrc"
用户 exrc 文件: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
$VIM 预设值: "/usr/local/share/vim"
编译方式: clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X -DMACOS_X_DARWIN -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
链接方式: clang -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -L/usr/local/lib -o vim -lncurses -liconv -lintl -framework AppKit -L/usr/local/opt/lua/lib -llua5.3 -mmacosx-version-min=10.13 -fstack-protector-strong -L/usr/local/lib -L/usr/local/Cellar/perl/5.28.0/lib/perl5/5.28.0/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation -lruby.2.5.3 -lobjc
安装插件
vim 插件管理工具
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
安装各种插件
本文主要针对 Python
和 Go
,所以安装的插件主要与这两种语言相关。
- python-mode ——> python 开发,补全代码
Ctrl+Space
或者F6
( 自定义 ) - vim-airline
- vim-airline-themes
- vim-fugitive ——> git
- nerdtree ——> 项目目录结构,打开目录结构
Ctrl+n
- ctrlp ——> 搜索文件 ( 只需要记住一个命令
Ctrl+p
) - nerdcommenter ——> 注释 ( 只需要记住一个命令
,ci
) - dash.vim ——> 光标指向想要查询的关键词,在命令行输入
:Dash
,回车即可
具体配置信息
set tabstop=4
set nu
set showmatch
set cursorline
set ruler
set autoindent
set backspace=2
set hlsearch
syntax enable
let mapleader = ","
" 插件管理
call plug#begin('~/.vim/plugged')
Plug 'python-mode/python-mode', { 'branch': 'develop' }
Plug '/usr/local/opt/fzf'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-fugitive'
Plug 'scrooloose/nerdtree'
Plug 'kien/ctrlp.vim'
Plug 'scrooloose/nerdcommenter'
Plug 'rizzatti/dash.vim'
call plug#end()
"插件设置
" ===================================================
" Python-mode settings
" ===================================================
let g:pymode_python = 'python3'
let g:pymode = 1
let g:pymode_warnings = 1
let g:pymode_paths = []
let g:pymode_trim_whitespaces = 1
let g:pymode_options = 1
let g:pymode_options_max_line_length = 79
let g:pymode_options_colorcolumn = 1
let g:pymode_quickfix_minheight = 3
let g:pymode_quickfix_maxheight = 6
let g:pymode_indent = 1
" Breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_bind = '<leader>b'
let g:pymode_breakpoint_cmd = ''
" Code checking
let g:pymode_lint = 1
let g:pymode_lint_on_write = 1
let g:pymode_lint_unmodified = 0
let g:pymode_lint_on_fly = 0
let g:pymode_lint_message = 1
let g:pymode_lint_checkers = ['pyflakes', 'pep8', 'mccabe']
" Rope support
let g:pymode_rope = 1
let g:pymode_rope_completion = 1
let g:pymode_rope_complete_on_dot = 1
let g:pymode_rope_completion_bind = '<C-Space>'
" Syntax
let g:pymode_syntax = 1
let g:pymode_syntax_slow_sync = 1
let g:pymode_syntax_all = 1
" ===================================================
" NERDTree setting
" ===================================================
let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$']
autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments
nmap <C-n> :NERDTreeToggle<cr>
用 vim-plug
进行安装
# 首先打开 vim
:PlugInstall
NERDTree快捷键
ctrl+w 光标自动在左右侧窗口切换
ctrl+h 光标自动在左侧窗口
ctrl+l 光标自动在右侧窗口
o 打开关闭文件或者目录
p 到上层目录
P 到根目录
K 到第一个节点
J 到最后一个节点
u 打开上层目录
安装 gocode
需要注意:
# 需要 `go get gocode`
# 由于过程中需要 `git` 访问 google 的网站,所以不仅需要进行系统代理配置,也需要进行 git 代理配置
# 系统代理配置
export http://proxy.example.com:port
# git 代理配置
git config --global http.proxy http://proxy.example.com:port
主题位置:
/.oh-my-zsh/themes
目前的效果图:
tmux
Install
brew install tmux
配置文件
tmux
的配置很复杂,所以我直接借用了别人的配置文件 .tmux
具体的命令可以查看 tmuxcheatsheet
最终效果图:
快捷的搭建方式
# 首先安装好 Vim、 tmux 和 zsh
git clone https://github.com/zyt312074545/develop-config
cp develop-config/.vimrc ~/.vimrc
cp develop-config/.tmux.conf ~/.tmux.conf
# 注意 vim-plug 和 gocode 的安装就可以和我的配置一样