vim的个性化配置- 再谈vim的折叠和展开 -- 彻底掌握vim 的展开和折叠!

时间:2024-05-19 23:34:50

http://www.wklken.me/posts/2016/02/03/some-vim-configs.html

一般把 设置成 逗号, 是比较好的, 因为逗号比默认的leader  要方便键入!

有必要使用vim中的折叠! 因为很多时候只需要关注当前的代码, 其他代码的展开会严重 影响当前代码的查看和滚动, 所以折叠是很重要, 很实际的操作需求. 只有你经常被某个东西 所折磨的时候 你才会发现它的解决方案有多重要! 例如:折叠!!

彻底掌握vim 的展开和折叠!

  1. vim的折叠必要性! 非常必要, 在简化页面, 关注目标代码的时候非常有用!
  2. vim折叠的方式, 有几种: manual, indent , marker,...最常用的就是前面这三种! 每一种不同的折叠方式中的 折叠效果是不同的! 所以要根据你的语言来进行 选择折叠方式
  3. 通常对于web前端的开发, 主要是层级 标签的缩进显示, 所以对于html, php等语言页面, 主要使用 indent的方式进行折叠! 而对于像thinkphp等 后端主要进行代码的时候, 主要是对函数 类 等进行操作, 这时, 选择 marker 方式进行折叠! 这里的marker 系统默认的就是 大括号{}, 所以使用marker就很适合
  4. vim的默认 折叠方式 是manual! 所以你要 在 (.)vimrc中, 进行设置: set fdm=indent. 但是注意, 如果设置了非manual的折叠方式时, 如indent, 则手动方式的折叠方式将失效.

  5. 要恢复vim默认的 手动折叠方式, 使用命令: set fdm& (这个&表示去掉配置的 "按位与", 即恢复为默认设置!)
  6. 要折叠时, 首先要创建 折叠: 使用命令: zm, 或zM , 然后后面的所有对 折叠的 操作才会生效!
  7. 主要有这样一些命令操作: zm/zM, zM表示关闭有递归/嵌套的折叠! zr /zR(跟zi的功能类似!) , 表示打开..... 而zi则是在 关闭/打开"所有"所有, 包括有嵌套的折叠在内 折叠之间进行转换. 而zo 和zc 只是在当前元素的 直接子元素 的展开/折叠.

  8. 设置可视化的 折叠标志: set foldcolumn =4, 或 8. 则会出现 加号或减 号和竖线等符号, 可以使用鼠标进行可视化的 折叠和展开! 要去掉 折叠标识栏: 使用命令: set foldcolumn&

  9. 折叠的含义: 就是只有当前元素 具有 "子元素" 具有层次关系的时候, 才可以折叠, 折叠的时候, 只有 "子元素" 会被 折叠~ 而父元素 是不会被折叠的, 折叠的时候, 显示的是: +--- 折叠的行数 +折叠开始处的内容: ....


关于折叠的跳转

  1. [z, ]z命令, 是在一个打开的折叠 的开始处和 结尾处 两者来回 跳转. (注意是, 同一个折叠内)
  2. 而zj, zk 则是如果 现在有多个 折叠, 则在这些 "多个" 折叠之间 进行移动!

折叠, 到底是折叠的哪些内容?

当然是折叠当前行所在的内容. 如果当前行同级的有多个, 则都会被折叠. 如果当前行 是包含子内容的标签, 则整个标签都会被 折叠.
折叠时, 当前行/及其子内容, 都将被折叠隐藏 , 显示为绿色和 虚线的样式.