[No000018F]Vim自动缩进配置、原理和tab键替换空格-Vim使用技巧(4)
一、Vim缩进介绍
在没有设置Vim自动缩进的条件下,可以手动使用Vim命令对特定行进行缩进处理。在Vim插入模式下,按下 Tab 键时默认会输入一个制表符,可通过Vim配置项将 Tab 替换为空格,以便支持文件移植和多操作系统打开。
1.1 Vim缩进方法
在Vim普通模式下,>> 会对当前行增加缩进,<< 则将对当前行减少缩进。
在命令前可使用数字来指定命令作用的范围。例如 10>> 将对包括光标所在行的连续10行增加缩进,而执行Vim缩进操作 ( << 和 >> )时缩进的列数,可使用 shiftwidth 选项;
1 |
"To change the number of space characters inserted for indentation" |
上述配置指定了在vim普通模式下,使用 << 和 >> 进行缩进时缩进的列数为4个空格。
1.2 Vim插入模式下Tab键缩进设置
如果希望在Vim插入模式下按下 Tab 键时,输入到Vim中的都是空格,可通过设置 expandtab 选项实现:
1 |
"set expandtab option to insert space characters whenever the tab key is pressed " |
在Vim设置了 expandtab 后,如果在某些情况下需要输入真正的 Tab ,可以使用组合按键 Ctrl-V<Tab>
1.3 使用空格替代Tab键
如果需要设置按下 Tab 键时输入的空格个数,可以使用 tabstop 选项,以下Vim设置使用4个空格替代 Tab 键
1 |
"insert 4 spaces for a tab" |
Vim设置了 expandtab 选项后所有新输入的 Tab 键都会被替换为对应个数的空格,如果需要修改设置 expandtab 之前已经存在的所有 Tab 键,可以在Vim命令行模式使用命令 :retab。
二、Vim自动缩进
Vim自带的自动缩进类型包括cindent、autoindent和smartindent三种。
cindent采用C语言的标准缩进方式来处理Vim文件的缩进结构,使用以下Vim配置可启动cindent缩进类型。
1 |
set cindent |
Vim autoindent缩进模式下,新增加的行和前一行具有相同的缩进形式,可以使用以下配置启用autoindent缩进形式。
1 |
set autoindent |
在Vim smartindent缩进模式下,每一行都有相同的缩进量,直到遇到右大括号 (}) 取消缩进形式。
如果某一行以 # 开头,那么该行不会采用上述缩进格式规则。可以认为smartindent是autoindent的升级版缩进方法。
以下设置可以启用vim的smartindent缩进方式:
1 |
set smartindent |
注:上述配置项可以直接在Vim命令模式下执行并立即生效。

[No000018F]Vim自动缩进配置、原理和tab键替换空格-Vim使用技巧(4)的更多相关文章
- 关于VIM自动缩进失效(filetype indent on无效)的详细分析
关于VIM自动缩进失效(filetype indent on无效)的详细分析 set filetype=xml filetype indent on 执行对齐命令:ggvG
- 阿里Java开发规范&谷歌Java开发规范&华为Java开发规范&Tab键和空格比较&Eclipse的Tab键设置 总结
现在收集到如下有用的信息: 阿里巴巴公开的Java开发规范:https://yq.aliyun.com/articles/69327?utm_content=m_10088 google公开的Java ...
- Nodepad++中将Tab键替换为空格
Nodepad++是一个非常优秀的文本编辑工具,本人经常使用其编辑shell脚本,如果不进行设置,Tab键和空格混用,脚本上传到linux后,格式错乱,不容易查看. 设置方式 菜单栏选择"设 ...
- 配置Linux下vim自动缩进等功能
从终端打开配置文件: vim ~/.vimrc 添加如下代码: set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set ...
- vim自动缩进设置
需要软件 vim 下载地址 http://www.vim.org code_complete.vim 插件 http://www.vim.org/scripts/script.php?script ...
- vim自动缩进
最近写完程序,在进行调试时发现特别困难,代码乱的一塌糊涂,特别是代码量很多时,调试起来特别囧,逻辑很难理清. 这让我想起了缩进功能,可以让代码自动对齐. gedit编辑器在菜单栏里的编辑->首选 ...
- 写mysql语句时tab键与空格键
某网页上复制的一份mysql语句,报错,重写一遍后,好了,对比后,发现, 可以看到在sublime text中,网上复制的缩进是空白的,tab键是横杠,空格键是一个点
- Eclipse设置Tab键为空格!
http://z-hua.iteye.com/blog/1056713 今天设置Eclipse中按Tab键为4个空格,这里标记下! Window-->Preferences-->Java- ...
- [Eclipse插件] Eclipse设置Tab键为空格(ctrl+shirt+f格式化生效)!
自定义format格式,用空格替换Tab键,ctrl+shit+f格式化后生效: 设置Eclipse中按Tab键为4个空格,这里标记下! Window-->Preferences-->Ja ...
随机推荐
- Swap 分区的2种方式 详解与例子
安装完Linux系统后,swap分区太小怎么办,怎么可以扩大Swap分区呢?有两个办法,一个是从新建立swap分区,一个是增加swap分区.下面介绍这两种方法: 第一您必须有root权限,过程中一定要 ...
- Effective Java 第三版——61. 基本类型优于装箱的基本类型
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- [转]ssh和SSH服务(包含隧道内容)
本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...
- 【Vegas原创】SQL Server 只安装客户端的方法
只安装管理工具
- redis 的消息订阅和消息队列的功能比较
消息队列常用的有 rabitMQ.kafka等.缓存服务器 redis 也可以做消息队列使用,他们的特点对比如下 消息协议: 消息队列支持包括AMQP,MQTT,Stomp等,并且支持 JMS 规范 ...
- 基于Openresty+的WEB安全防护系统架构--转
随着时间的推移,我们在实践中也不断的演进我们的服务部署方案,希望WEB防护,不只是单独的云WAF来保护服务,而有其它的相关服务,对WAF进行增强加固的合理配合.我们使用Openresty+系统构建了W ...
- 菜鸟教程之工具使用(五)——JRebel与Windows服务的Tomcat集成
之前写过一篇Tomcat借助JRebel支持热部署的文章——<借助JRebel使Tomcat支持热部署>.介绍的是在开发.测试环境中的配置,但是正式的部署环境,我们不会通过命令行来启动To ...
- 基于Docker的redis集群搭建
Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三从 制作Redis镜 ...
- Centos7.x 执行top命令教程
一.作用 top命令用来显示执行中的进程,使用权限是所有用户 二.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 三.命令参数解释 d:指定更新的间隔,以秒计 ...
- 模仿CountDownLatch类自定义倒时计时器
简介 这里模仿CountDownLatch类自定义到时计时器,利用AQS模板中的尝试获得共享和释放共享 1.MyCountDownLatch package com.jacky; import com ...