/vimplus

Primary LanguageVim Script

vimplus

@2021年06月04日, 这个Vim配置是2012开始,是基于amix的配置,开始只是改改键位,后来增加了插件管理并对插件有了增改,最近切换到了zsh,把代码补全切换到了coc,才感觉跟amix老哥渐行渐远了,所以想写一下自己的文档。

@2023年05,感觉只有换了新工作后才会有时间来更新这个库。现在这个库已经越来越定制化了,更类似一个mac 环境初始化工具了,所以我修改了vimplus.sh,让它符合这个预期。

  1. 同时本次会整理和梳理配置中涉及到的插件和按键绑定
  2. 清理失效和不常用的内容。
  3. 将主题从solarized修改为material

安装

git clone https://github.com/rushsinging/vimplus.git ~/.vim
cd ~/.vim
./vimplus.sh

插件

插件名 作用 评价
nerdtree 常用的文件浏览器插件 其实我不怎么用
vim-airline 强大的状态栏插件, powerline的替代
tpope/vim-fugitive git 插件
lifepillar/vim-solarized8 solarized 皮肤插件
dense-aanlysis/ale 语法检查
luochen1990/rainbow 用于区分代码层次
vim-scripts/YankRing.vim 代码修改历史记录器
tpope/vim-surround 快捷的给代码增加[]/()/{}/""/'' 的环绕 快捷键比较复杂,不怎么常用,记住vmodeS就好
jiangmiao/auto-pairs 自动关闭[] () {} 等 比上一个常用多了
vim-scripts/nginx.vim nginx.conf 配置文件语法高亮
thanethomson/vim-jenkinsfile jenkinsfile 语法高亮
posva/vim-vue vue 语法高亮
mhinz/vim-startify 提供一个开始界面
neoclide/coc.nvim 新一代自动补全神器 伟大,无需多言
preservim/nerdcommenter 注释插件,帮你给代码块增加/删除注释
Xuyuanp/nerdtree-git-plugin 为nerdtree 增加git 状态的插件
junegunn/fzf 文件搜索,buffer 管理
junegunn/fzf.vim 同上
antoinemadec/coc-fzf 使用fzf 的窗口替换coc 的结果窗口
dhruvasagar/vim-table-mode markdown 快捷表格制作
hynek/vim-python-pep8-indent 使python 的缩进自动符合pep8 标准 好用
iamcco/markdown-preview.nvim 为markdown 文件提供预览功能
iamcco/mathjax-support-for-mkdp markdonw 只能怪支持mathjax

设置 && 按键绑定

设置

浏览basic.vim 以浏览所有设置

按键绑定

mode quickkey keys use 相关plugins
n w :w! 快速强制保存
n W sudo方式强制保存
n q :q! 快速强制退出
n rr :so $MYVIMRC 重载vim 配置
n e vsplit =expand("%:p:h")/ 右侧打开一个split 窗口
n E split =expand("%:p:h")/ 下侧打开一个split 窗口
n j gj 在单行很长的时候,j会将单行超出的部分视为新的一行
n k gk 同上
n j j 在split 窗口之间移动,类似hjkl
n k k 在split 窗口之间移动,类似hjkl
n h h 在split 窗口之间移动,类似hjkl
n l l 在split 窗口之间移动,类似hjkl
n bd :Bclose 关闭当前buffer
n ba :1,1000 bd! 关闭所有buffer
n te :tabedit =expand("%:p:h")/ 打开一个新的tab
n cd :cd %:p:h:pwd 将文件目录设置为当前目录
n 0 ^ 快速来到行首,可能^需要两只手按
n g :Rg 打开Rg 搜索(需要fzf 和ripgrep 支持) fzf ripgrep
n :Rg 快速打开Rg fzf ripgrep
v "hy:Rg h 快速搜索选中的文本 fzf ripgrep
n ss :setlocal spell! 打开语法(英语)检查
n M mmHmt:%s///ge'tzt'm 去除windows 的^M(很有用!)
n pp :setlocal paste! 进入粘贴模式,ctr-c/v 的时候格式乱了的时候用
c $h e ~/ 快速输入
c $d e ~/Desktop/ 快速输入
c $j e ./ 快速输入
c $c e <C->eCurrentFileDir("e") 快速输入
c $q <C->eDeleteTillSlash() 删除输入
c 类似命令行
c 类似命令行
c 类似命令行
c 类似命令行
c 类似命令行
all ½ $
v $1, $2, $3, $$, $q, $e (), [], {}, "", '', `` select 模式下,快速包围选中文本
i xdate =strftime("%d/%m/%y %H:%M:%S") 快速输入当前时间
n m :Buffers 打开buffer 窗口 fzf.vim
n nn :NERDTreeToggle NERDTree 开关
n :!python % Python: 执行当前文件
n F :set foldmethod=indent Python:
i $r return Python: 快捷输入return
i $i import Python: 快捷输入
i $p print Python: 快捷输入
i coc 相关 COC: 选择下一个匹配 coc
i coc 相关 COC: 选择上一个匹配 coc
i <c-@> coc#refresh COC: 刷新 coc
i coc 相关 COC(nvim) coc
n tm 打开表格创作模式 vim-table-mode
n 打开Markdown 预览 markdonw-preview
n 停止Markdown 预览 markdonw-preview
n ci 增加/取消注释 nerdcommenter
n cc 增加注释 nerdcommenter

推荐的COC 插件

coc一个特别快的代码补全工具,在我这里已经替代了ycm

由于它有一套自己的插件系统,不方便用命令行安装,所以这里会列举一些常用插件

插件 作用
coc-marketplace 插件市场
...

Tips

替换多个文本

cgn可以快速替换一些文本,方法:

  • 空格后输入需要替换的文本
  • 输入cgn,发现第一个文本被清除
  • 输入替换的文本,按Esc按键
  • 使用.来重复操作,n跳过