插件
插件管理使用Vundle
通用
-
NerdTree
shift + i
可切换显示隐藏文件 -
ack
-
YouCompleteMe
https://github.com/ycm-core/YouCompleteMe
mac下如何安装:
-
安装macvim
参照https://stackoverflow.com/questions/21012203/how-can-i-install-macvim-on-os-x
$ brew update $ brew install vim && brew install macvim # 这样执行vim的时候会运行macvim $ brew link macvim
-
vim安装
我采用vundle管理插件, 在
.vimrc
下添加:Plugin 'Valloric/YouCompleteMe'
执行
PluginInstall
-
将相关语言的补全编译进去
例如我要支持go语言的补全, 则要执行:
# 进入包 $ cd ~/.vim/bundle/YouCompleteMe # 编译go $ ./install.py --go-completer
如果是其他语言, 参照文档, 例如要支持c语言, 还需要安装cmake, 运行
install.py
时加不同的参数
-
-
comment
注释
https://github.com/scrooloose/nerdcommenter -
ale和pylint
这两个包可以检查代码规范 在
~/.vimrc
里加上:Plugin 'dense-analysis/ale'
PluginInstall
即可安装
pylint用pip安装, ale即可自动调用pylint
还需要安装pylint-venv, 这样就能在虚拟环境里面检查
在~/.pylintrc
可以自定义配置, 详细配置参照https://github.com/PyCQA/pylint/blob/master/pylintrc, 例如:[MASTER] # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). init-hook= try: import pylint_venv except ImportError: pass else: pylint_venv.inithook() [FORMAT] # Maximum number of characters on a single line. max-line-length=120 [MESSAGES CONTROL] disable=R0201,R0914,R0915,E1101,C0115,R0903 [DESIGN] # Maximum number of arguments for function / method max-args=15
也可以不用pylint, 用别的代码检查fixer, 比如black, ale支持很多, 具体参照ale文档
Python
-
vim-sort
可对python import进行排序
https://github.com/fisadev/vim-isort
使用过程中如果提示No isort python module detected, you should install it
,是因为pip和vim对应的版本不一样,参照这里解决:
https://github.com/fisadev/vim-isort/issues/14 -
语法检查
推荐python-mode和syntastics, 不推荐flake8, 各种兼容版本问题
安装参照文档
配置参照这里:
""syntax checker " python-mode和syntastics. pathogen安装 let g:pymode_python = 'python3' let g:pymode_options_max_line_length=120 let g:pymode_lint_cwindow = 0 execute pathogen#infect() syntax on let python_highlight_all=1 set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_always_populate_loc_list = 0 let g:syntastic_auto_loc_list = 0 let g:syntastic_check_on_open = 0 let g:syntastic_check_on_wq = 1 let g:syntastic_python_checkers = ['pylint']
我们看到上面配置的最后一句, python检查用到呃是pylint, pylint需要安装, 安装之后我们可以像配置vim一样修改配置, 创建
~/.pylintrc
文件, 内容示例, 详情参照https://gist.github.com/sblask/7302860:[FORMAT] # Maximum number of characters on a single line. max-line-length=120 [MESSAGES CONTROL] # 取消检查no self use disable=R0201
tips
- 取消搜索高亮
:nohl
- 将已有tab转换为空格
:retab
- 复制或者剪切时, 计算行数?
6yy
和6dd
是复制或者剪切6行 如果行数较多, 我们不太能第一时间就肉眼看到有多少行, 用行号来相减? 太麻烦了吧! 我们用下面的命令来解决:- 在正常模式下, 在要复制的第一行
mk
标记 - 移动到要复制的最后一行
- 按下
y'k
(y, 单引号, k)标记 - 在复制的目的地按
p
即复制过去了 同样的,d'k
是剪切
- 在正常模式下, 在要复制的第一行
- 将当前窗口移动到新tab页
Ctrl
-W
Shift
-T
- 替换
- 替换称换行
:%s/\ /\r/g
将空格全部替换成换行
- 替换称换行
- 在新tab页打开buffer文件(已打开的文件)
ls
列举出当前buffer列表和编号:tab sb <buffer编号>
或者tab sb之后tab键来选择