乐趣区

关于vim:oeasy教您玩转vim-26-缩进设置

缩进设置

回顾上节课内容🤔

  • 这次理解了色彩的细节
  • 设置 256 色模式

    • :set t_Co=256
  • 而后确定了具体的各种色彩
  • 还能够生成网页 :TOhtml
  • 还有什么好玩的么?🤔

缩进设置

  • 在失常模式下

    • 应用 << 能够向前缩进
    • 应用 >> 能够向后缩进
    • = 能够让以后行主动缩进
  • 应用 g g = G

    • 能够从头主动缩进到结尾
  • 这超爽🤪

显示缩进

  • 咱们编程的时候会遇到缩进

    • 这缩进到底是 空格 呢?还是 tab 呢?
    • 要把 空格tab 区别开来
  • :set list 使得列表失效

    • tab 会被显示为 ^I
    • 行尾会显示 $

  • :set nolist 使得列表生效

    • tab 会被显示为空格缩进

  • 然而如同缩进看起来只有两格了
  • 与理论不符
  • 能批改么?

定制 tab 显示

  • 把特殊字符作为 listchars 组显示进去
  • :set listchars
  • 设置 listchars
  • :set listchars=eol:$,tab:>-,space:_

    • tab 对应 >-
    • > 是结尾
    • - 在前面补位

  • space 对应 _
  • eol 对应 $
  • :h listchars能够查看相干手册

空格色彩

  • :hi SpecialKey ctermfg=DarkRed guifg=grey70

    • 设置 listchars 相应的色彩
    • 设置得非凡一点

最终成果

  • 倡议对立能用 tab 的时候就用 tab
  • 减小文件容量

根底

  • shiftwidth 值是整个缩进的根底
  • :set shiftwidth=4

    • shiftwidth 是一个根底的值,对应
    • 按下 >> 缩进的宽度
    • 按下 tab 缩进的宽度
    • 退格或者删除 \t 时缩进的宽度
  • 个别 tabstopsofttabstop 都与他雷同

    • 个别都是 4
    • 如果 shiftwidth 是 0 的话
    • 就依照 tabstop

解释 tab 宽度

  • tabstop读取文件 时用到的
  • 读到 \t 字符时
  • 解释他对应多少个空格的宽度
  • 个别都是 4 个空格

softtabstop 解决空格的数量

  • 如果 softtabstop 等于 0

    • 个性勾销,所有依照 tabstop
  • 如果 tabstop=4softtabstop=8

    • 按下 tab

      • 一次插入 8 个地位
      • 看起来像插了两个 tab
    • 要删除 tab 时

      • 1 次删除空格 8 个
      • 看起来像删了两个 tab
    • 能够试试,能看进去
  • 当他是正数的时候 shiftwidth 起作用
  • 所以说 shiftwidth 是根底

扩大 tab

  • :set expandtab

    • 能够把输出的 tab 变成 空格
  • 设置好之后,在失常模式下

    • > >
    • 或者在插入模式下 tab 的时候
    • 都看不到 >---,而是间接变成空格 _
  • 反之 :set noexpandtab 之后

    • 插入的 tab 都还是 >---
  • :h expandtab 能够查看相干手册

    • expandtab 能够简写为 et

  • 那曾经存在的 tab 怎么办呢?

强制拓展

  • :retab!
  • 把曾经存在的 tab 强制扩大成为空格

  • 转过去之后
  • 没有转回来的命令
  • 谨慎吧
  • 我感觉 tab 挺好的

回车之后主动缩进

  • :set autoindent

    • 能够简写为 :set ai
    • 增加与上一行统一的缩进
    • 勾销为 :se noai
  • :set smartindent

    • 简写为 :se si
    • autoindent 的根底上依据 {} 来调整本行缩进
    • 勾销为 :se nosi
    • 须要保障 :se nopaste
  • :set cindent

    • 依据相似于 c、java 的代码动静调节缩进
    • 见到 if 之类的能够主动缩进
    • 勾销为 :set nocindent

整体设定为

  • :set noexpandtab
  • :set shiftwidth = 4
  • :set tabstop =4
  • :set softtabstop=4
  • :set autoindent
  • 简写为 :set noet sw=4 ts=4 sts=4 ai
  • 这都集体爱好
  • 没有相对规定

总结

  • 这次理解了缩进的各种形式
  • 失常模式下用 << 缩进
  • 插入模式下用 tab 缩进
  • 有对于缩进对应空格数的参数

    • expandtab
    • shiftwidth
    • tabstop
    • softtabstop
    • autoindent
  • 不同的文件类型能够对应不同的缩进吗??🤔

    • python、java 缩进 4 个
    • html、css 能够缩进 2 个
  • 下次再说 👋
退出移动版