Lightest vimrc, while strong enough. 最轻的vim配置,却足够强!

目录 ===
点击展开目录菜单
交流群
QQ交流群
群号:1019096841 扫码进群: 
Install (安装)
如果您之前有定制自己的Vim配置,请先备份~/.vim目录,以下操作会覆盖~/.vim目录
wget http://upos-sz-staticcos.bilivideo.com/appstaticboss/vim-vide-20200812.tgz && tar xvf ./vim-vide-20200812.tgz -C ~
Uninstall (卸载)
如需恢复您原来的自定义配置,执行以下命令后,再将您原来的.vim目录还原至根目录即可
rm -rf ~/.vim rm -rf ~/.vimtmp
Upgrade Plugins (升级插件)
vim +PlugClean[!] +PlugUpdate +qa
Features (特色功能)
vim-plug
Base on vim-plug, A minimalist Vim plugin manager. 新一代的Vim配置管理组件,体积最小,plugit用了并行下载,速度较顺序下载的vundle快很多!!!
https://github.com/junegunn/vim-plug
Statusline (状态栏)
Origin Vim config statusline, much faster than airline or powerline! (Vim原生配置实现的状态栏,信息很全,比airline或者powerline快数倍!!!)
(Vide) README.md[+] /home/tjx/vide [unix:utf-8:MARKDOWN] 18,5 50%
+----+ +----------+ +------------+ +-------------------+ +--+ +-+
1 2 3 4 5 6
- Logo
- Relative path (相对路径)
- Absolute path of directory (绝对路径)
- Format : file-encoding : filetype (文件类型)
- Row-position, col position (行号,列号)
- Percent of rows (当前行在总行数中的百分比)
Backup (备份路径)
- 撤销文件夹 ~/.vimtmp/undodir
- 备份文件夹 ~/.vimtmp/backupdir
- 交换文件夹 ~/.vimtmp/directory .swp files
Template (模板)
- call system('bash ~/.vim/lua.template > /tmp/lua.template')
- call system('bash ~/.vim/php.template > /tmp/php.template')
什么是Vim,为什么要使用Vim
历史
ed -> ex(sed) -> Vi -> Vim -> gVim / macvim
帮助文档
vimtutor
:h
Vim的五种模式
- 插入模式(和普通编辑器的模式差不多)
- 普通模式
- 可视模式
- 命令行模式(扩展Vim的功能,Vim的精髓所在)
- 选择模式(不常用)
Vim的哲学
执行次数 + 操作 + 范围
次数 1,2,3
操作 v d c
范围 a i w p $ " ' { ( [ t
ni hao tang jun xin $('nihao') <a href="xx" >kjkjk </a>
Vim基本操作
打开/切换文件
| 命令 | 功能 | | ------------------------------- | ------------------------------------------------------------ | | :e filename 、:o filename | 打开文件 | | :args filename | 如果使用vim file1 file2 [filen]命令打开多个文件,就可以使用:args filename命令在打开的文件之间切换 | | :buffers、:ls、files | 查看缓冲区中的文件列表 | | :bnext | 切换到下一个缓冲区文件 | | :bprevious、bpre | 切换到上一个缓冲区文件 | | :bfirst | 切换到第一个缓冲区文件 | | :blast | 切换到最后一个缓冲区文件 | | :bdelete file_name | 删除缓冲区文件 | | :badd file_name | 添加文件到缓冲区 |
退出/保存
| 命令 | 功能 | | ----------- | ---------------------------------------------- | | :w | 保存 | | :w! | 强制保存,不退出Vim | | :q | 退出 | | :q! | 强制退出不保存 | | :wq、ZZ | 保存并退出 | | :wq! | 强制保存,并退出 | | :w file | 将修改另存到file中,不退出Vim | | :e! | 放弃所有修改,从上次保存文件开始再编辑命令历史 |
编辑
| 命令 | 功能 | | --------------- | ---------------------------------------------------------- | | i/I | 编辑 | | esc | 退出编辑模式 | | u | 撤销操作 | | <Ctrl> + r | 重做(恢复被撤销的动作) | | cc 、C、S | 清空当前行并进入编辑模式 | | s | 删除当前字符并进入编辑模式 | | r | 替换当前字符(替换后不进入编辑模式) | | R | 持续替换字符(不进入编辑模式),替换一个光标自动移到下一个 | | =- | 格式化当前行代码 | | gg=G | 格式化所有代码 | | <Shift> + v | 可视化多选 | | :set mouse=a | 设置鼠标可区域选择,跟普通的编辑器一样可以进行拖选 |
删除
| 命令 | 功能 | | ----- | ------------------------------------------- | | dd | 删除当前行 | | ndd | 删除包含当前行的n行数据(从当前行往下删除) | | dG | 删除包含当前行及之后的全部行 |
移动
| 命令 | 功能 | | ---------- | -------------------- | | gg | 跳转到首行 | | G | 跳转到尾行 | | :n、nG | 跳转到第n行 | | o | 在下一行插入 | | O | 在上一行插入 | | w、W | 移动到下一个单词开头 | | b、B | 移动到上一个单词开头 | | e、E | 移动到下一个单词结尾 | | { | 下一段落 | | } | 上一段落 | | M | 跳转到文件内容的中部 | | H | 跳转到文件内容的顶部 | | L | 跳转到文件内容的底部 |
复制/粘贴
| 命令 | 功能 | | -------- | ---------- | | y | 复制 | | p | 粘贴到下部 | | P | 粘贴到上部 | | x、X | 剪切 |
搜索
| 命令 | 功能 | | ------------------------ | --------------------------------- | | f / F | 当前行搜索,til,正向 / 反向 | | t / T | 当前行搜索,until,正向 / 反向 | | ;、, | 重复当前行搜索 | | /、? | 当前文件搜索,向上搜索 / 向下搜索 | | :grep -r / :!grep -r | 跨文件搜索 | | n | 下一个匹配内容 | | N | 上一个匹配内容 | | ctrl-L | 清除搜索高亮 |
Vim进阶
代码补全
| 命令 | 代码 | | ------------- | ------------ | | <Ctrl> + p | 往前搜索补全 | | <Ctrl> + n | 往后搜索补全 | | <Ctrl> + e | 取消补全 | | <Ctrl> + y | 确定补全 |
拖动功能
| 命令 | 功能 | | ---- | ---------------------- | | zz | 将当前行定位到屏幕中间 | | zb | 将当前行定位到屏幕底部 | | zt | 将当前行定位到屏幕顶部 |
设置编码和格式
| 命令 | 功能 | | ------------------------------ | ---------------------------------------------- | | :set fileformat unix dos mas | 让换行符自由切换 | | :set fileencodings | 检测打开文档编码的顺序,一般设置为utf-8、cp936 | | :set fileencoding | 保存文档的编码,一般为utf-8 | | :set encoding | Vim本身界面的编码,一般和文档无关 | | \3 | NERDTree-Find | | \a | :set filetype=awk | | \c | :set filetype=css | | \h | :set filetype=html | | \j | :set filetype=javascript | | \l | :set filetype=lua | | \m | :set filetype=markdown | | \p | :set filetype=php | | \s | :set filetype=sh | | \v | :set filetype=vim | | \y | :set filetype=python |
代码折叠
| 命令 | 功能 | | ----------------------- | -------------- | | zf | 创建折叠 | | zo | 打开折叠 | | zc | 关闭折叠 | | :mkview / :loadview | 保存,载入绘画 |
分割窗口
| 命令 | 功能 | | ---------------------------------------- | -------------------- | | :split [filename] 、:sp [filename] | 水平分割 | | :vsplit [filename]、:vs [filename] | 垂直分割 | | <Ctrl> + w + h | 将焦点移动到左边窗口 | | <Ctrl> + w + j | 将焦点移动到下方窗口 | | <Ctrl> + w + k | 将焦点移动到上方窗口 | | <Ctrl> + w + l | 将焦点移动到右边窗口 |
宏
| 命令 | 功能 | | ---- | ------- | | qa | 录制到a | | @a | 播放a |
Vim插件
必装插件
| 名称 | 功能 | | -------------- | -------------------- | | vim-phpmanual | php文档,<s-k>查询 | | syntastic | 语法检查 | | ctrlp.vim | 文件跳转 | | nerdtree | 浏览文件 | | vim-gitgutter | 观察git状态 | | vim-commentary | 强大的注释插件 |
NERDTree操作命令
| 命令 | 功能 | | ---- | ---------------------------------------- | | o | 打开/关闭文件或目录 | | t | 在新标签页中打开 | | T | 在后台标签页打开 | | ! | 执行此文件 | | p | 到上层目录 | | P | 到根目录 | | K | 到第一个节点 | | J | 到最后一个节点 | | u | 打开上层目录 | | m | 显示文件系统菜单(添加、删除、移动操作) | | ? | 帮助,再按一下关闭 | | q | 关闭 | | \3 | NERDTree-Find |
vim-commentary操作命令
| 快捷键 | 功能 | | ------ | ---------------------------------- | | gcc | 注释当前行(普通模式下) | | gc | 注释当前选中内容(可视多选模式下) | | gcap | 注释当前所在段落 | | gcu | 注释上一次注释的部分 | | gcgc | 取消一组相邻的注释 |
资源
Vim资源
- Vimbits
- 简明 Vim 练级攻略 | 酷 壳 - CoolShell.cn
- [[翻译]130+vim基本命令](http://wklken.me/posts/2013/08/17/130-essential-vim-commands.html#stq=&stp=0)
- Vimer的程序世界 | 一个vim使用者的程序世界
- Vim实用技巧 (豆瓣)
- welcome home : vim online
- Vim | 易水博客
- Vimcasts - Free screencasts about the text editor Vim
- VimGolf - real Vim ninjas count every keystroke!
- Vim Awesome