是时候总结一下vim的使用方法了,一方面防止自己忘记不常用的指令,另一方面给大家提供一个参考。
等有时间再把文中的链接内容展开介绍。
先来看看我的vim
vim键盘图
vim的安装
exvim中文这里面包含了exvim的安装与配置,以及插件的安装。
vim教程
Vim入门教程这篇文件是我强烈推荐的,入门必备,告诉你如何使用指令,
如何人类的语言来使用指令。
更全面的认识vim: 比如什么是寄存器等
很强的教程:英文版没字幕没看懂
高频组合指令
单指令是必须记住的,这里提几个组合指令。
- shift+asterisk: 查找光标处关键字
- 替换: :s/a/b将该行的第一个a替换成b,:s/a/b/g替换该行的所有a,:n,ms/a/b替换n行到m行,%s/a/b替换所有行的第一个a,%s/a/b/g替换所有a
- 选中: v20G,选中当前行到第20行;V20G,选中当千行到第20行;
- xp: 交换相邻的两个字母;
- :9y: 拷贝第9行,不必首先移动光标;
- gg=G: 格式化文件
- ciw: 修改光标所在单词
- vip: 选取当前光标所在段落
- <<: 左缩进
- >>: 右缩进
- ctrl+6: 两个文件切换,go further
- ctrl+r: redo
wall/qall: 保存/退出所有文件
:ls: 查看缓冲区
- :vertical sb N: 纵向切割窗口,N代表缓冲区的编号
- :bn: 切换缓冲区(即编辑窗口)
- :bp: 切换缓冲区
- :bN: 切换指定N缓存区
bd N: 删除某个缓冲区
mx: 添加(移除)x标签
- `x: 跳转到标签x
- :marks: 查看所有标签
- delm x: 删除标签x
- qa q @a @@: qa是录制,q是停止录制,@a执行录制,@@执行最近的录制,90@@执行90次
:shell/:sh: 执行shell命令, exit返回编辑窗口
ggvG: 全选文件内容,不过我比较喜欢
- vat/vit/vito: 选择html标签, 其中vito是选中htm标签内容后,可以在开头进行增减的选择
vaB/viB: 选择花括号内容,B换成b,选择的是小括号的内容, 更多内容参考下面的指令
:help visual-operators: 查看高效指令
- vi -b datafile: 编辑二进制文件
- :%!xxd: 十六进制显示文件
- :%!xxd -r: 正常显示文件
- ctrl+w+h/j/k/l: 跳转到指定方向的子window
- zc/zo: 折叠/展开代码块
- zt/zz/zb: 将光标位置置于屏幕顶端/中间/底端
exvim常用指令
- \fc: 在nerdtree中定位当前编辑的文件
- \+c+空格/\+cs: 快速注释
常用功能
如何查找js函数定义
- 安装etags插件,如果不知道如何安装,请谷度或者百歌;
- 在项目根目录执行etags -R;
- 将光标置于某函数上,按ctrl+]就可跳转到函数定义,ctrl+t可以跳回去;
如何全局查找
使用命令:GS: \lid: can't locate 'ID': No such file or directory
,
说明ID索引文件没有生成,在你的macvim执行:Update(注意大小写),会更新你的工程,
看看里面是不是却少安装gawk,如果是,请参考这里
如果提示’Can’t find mkid in your system, Please install first’,参考这里
如何快速注释js
- 选中待注释的代码块(用鼠标或v);
- 按下ctrl+v,进入块选择模式;
- 输入大写i,进入插入模式;
- 输入//,然后esc,搞定。
提高html编码效率的zen-coding
什么是Zen-Coding?自行百度吧。插件在这里
有一点要说明,就是插件装完了输入html:5然后按快捷键
估计是这个插件对当前文件类型有检查。
|
|
其他插件
- 自动闭合[], {}:https://github.com/jiangmiao/auto-pairs
- 自动闭合html标签(
):http://vim.sourceforge.net/scripts/script.php?script_id=13
最简化的配置
|
|
vim问题
- mac下的y指令不能将内容copy到clipboard:https://stackoverflow.com/questions/3961859/how-to-copy-to-clipboard-in-vim
- vim保存文件后webpack不自动编译:
:set noswapfile
,禁用swap文件还是可行的
tmux
用到了vim就不得不提tmux了,多窗口管理工具,很强大
|
|
参考
exvim中文
Vim入门教程
Zen Coding: A Speedy Way To Write HTML/CSS Code
Zen Coding: 一种快速编写HTML/CSS代码的方法