oeasy教您玩转vim - 26 - 缩进设置
缩进设置
回忆上节课内容
- 这次了解了颜色的细节
设置 256 色模式
:set t_Co=256
- 然后确定了具体的各种颜色
- 还可以生成网页
:TOhtml
- 还有什么好玩的么?
缩进设置
在正常模式下
- 使用
<<
可以向前缩进 - 使用
>>
可以向后缩进 - = 可以让当前行自动缩进
- 使用
使用 g g = G
- 可以从头自动缩进到结尾
- 这超爽
显示缩进
我们编程的时候会遇到缩进
- 这缩进究竟是
空格
呢?还是tab
呢? - 要把
空格
和tab
区别开来
- 这缩进究竟是
:set list
使得列表生效- tab 会被显示为
^I
- 行尾会显示
$
- tab 会被显示为
: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个
- 下次再说
oeasy教您玩转vim - 26 - 缩进设置的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- Vim代码缩进设置
前段配置VPS,无奈只能使用Vim编辑Python代码,比较头疼的没法设置自动缩进,所以搜索了相关的配置,特记录如下. 将以下的设置加入到~/etc/vim/.vimrc中: set sw=4 set ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
随机推荐
- Android 13 - Media框架(2)- Demo App与MediaPlayer Api了解
关注公众号免费阅读全文,进入音视频开发技术分享群! 尝试用MediaPlayer写了一个播放demo,实现了网络流和本地流的播放.由于本人对app开发一窍不通,所以demo中很多内容是边查资料边写的, ...
- windows下IPv4通信(C++、MFC)
Cilect #include <stdio.h> #include <Ws2tcpip.h> #include <winsock2.h> #define HELL ...
- Vue插槽与作用域插槽
title: Vue插槽与作用域插槽 date: 2024/6/1 下午9:07:52 updated: 2024/6/1 下午9:07:52 categories: 前端开发 tags: VueSl ...
- 使用C代码实现读取文件中的hex字符串,转换为字节数组
举例说明: ptp.txt文件中的内容为: 7a7ac0a8c80100000000003388f70002002c000004000000000000000000000000000000000000 ...
- this的二种使用方式
package com.ht.TestThis; public class TestThisKey { public static void main(String[] args) { // TODO ...
- react组件通信 父组件与子组件互相通信
父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组 ...
- 「TAOI-2」Ciallo~(∠・ω< )⌒★ 题解
「TAOI-2」Ciallo-(∠・ω< )⌒★ 题解 不难发现,答案可以分成两种: 整段的 中间删一点,两端凑一起的 考虑分开计算贡献. 如果 \(s\) 中存在子串等于 \(t\),那么自然 ...
- centos 7 mysql8 安装和卸载
cent os 7 安装 mysql 8--install-start官网下载MySQL的RPM源,地址:https://dev.mysql.com/downloads/repo/yum/ 下载这个项 ...
- spring eureka服务注册配置,排查服务注册上来了,但是请求没有过来。检查是否服务注册配置错误
spring eureka服务注册配置,排查服务注册上来了,但是请求没有过来.检查是否服务注册配置错误 解决方法: 去掉该配置eureka.instance.hostname = client微服务的 ...
- Windows CSC提权漏洞复现(CVE-2024-26229)
漏洞信息 Windows CSC服务特权提升漏洞. 当程序向缓冲区写入的数据超出其处理能力时,就会发生基于堆的缓冲区溢出,从而导致多余的数据溢出到相邻的内存区域.这种溢出会损坏内存,并可能使攻击者能够 ...