网站首页 > 知识剖析 正文
缩进设置
回忆上节课内容
- 这次了解了颜色的细节
- 设置 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 时缩进的宽度
- 一般 tabstop、softtabstop 都与他相同 一般都是 4 如果 shiftwidth 是 0 的话 就按照 tabstop 来
解释 tab 宽度
- tabstop 是 读取文件 时用到的
- 读到 \t 字符时
- 解释他对应多少个空格的宽度
- 一般都是 4 个空格
?
softtabstop 处理空格的数量
- 如果 softtabstop 等于 0 特性取消,一切按照 tabstop 来
- 如果 tabstop=4、softtabstop=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个
- 下次再说
?
猜你喜欢
- 2024-11-18 WPS办公软件使用指南:从基础到高级功能全解析
- 2024-11-18 CSS解析器——css模块使用详解,用更优雅的方式转换css内容
- 2024-11-18 如何在Vue中使用Ueditor富文本编辑器,详情介绍如下
- 2024-11-18 增强自动插入,开源编辑器Notepad++ 6.7.0下载
- 2024-11-18 如何遍历DOM?
- 2024-11-18 解决GitHub Issue能力登顶,字节豆包MarsCode团队分享工程实践
- 2024-11-18 提高开发效率的 9 个工具
- 2024-11-18 如何在 Mac 上轻松制作好看的文本长图?
- 2024-11-18 Css字体间距的设置方法
- 2024-11-18 如何在Word文档中实现精准换行技巧
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)