一、Vim缩进介绍

在没有设置Vim自动缩进的条件下,可以手动使用Vim命令对特定行进行缩进处理。在Vim插入模式下,按下 Tab 键时默认会输入一个制表符,可通过Vim配置项将 Tab 替换为空格,以便支持文件移植和多操作系统打开。

1.1 Vim缩进方法

在Vim普通模式下,>> 会对当前行增加缩进,<< 则将对当前行减少缩进。

在命令前可使用数字来指定命令作用的范围。例如 10>> 将对包括光标所在行的连续10行增加缩进,而执行Vim缩进操作 ( << 和 >> )时缩进的列数,可使用 shiftwidth 选项;

1
2
"To change the number of space characters inserted for indentation"
set shiftwidth=4

上述配置指定了在vim普通模式下,使用 << 和 >> 进行缩进时缩进的列数为4个空格。

1.2 Vim插入模式下Tab键缩进设置

如果希望在Vim插入模式下按下 Tab 键时,输入到Vim中的都是空格,可通过设置 expandtab 选项实现:

1
2
"set expandtab option to insert space characters whenever the tab key is pressed "
set expandtab

在Vim设置了 expandtab 后,如果在某些情况下需要输入真正的 Tab ,可以使用组合按键 Ctrl-V<Tab>

1.3 使用空格替代Tab键

如果需要设置按下 Tab 键时输入的空格个数,可以使用 tabstop 选项,以下Vim设置使用4个空格替代 Tab 键

1
2
"insert 4 spaces for a tab"
set tabstop=4

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)的更多相关文章

  1. 关于VIM自动缩进失效(filetype indent on无效)的详细分析

    关于VIM自动缩进失效(filetype indent on无效)的详细分析 set filetype=xml filetype indent on 执行对齐命令:ggvG

  2. 阿里Java开发规范&谷歌Java开发规范&华为Java开发规范&Tab键和空格比较&Eclipse的Tab键设置 总结

    现在收集到如下有用的信息: 阿里巴巴公开的Java开发规范:https://yq.aliyun.com/articles/69327?utm_content=m_10088 google公开的Java ...

  3. Nodepad++中将Tab键替换为空格

    Nodepad++是一个非常优秀的文本编辑工具,本人经常使用其编辑shell脚本,如果不进行设置,Tab键和空格混用,脚本上传到linux后,格式错乱,不容易查看. 设置方式 菜单栏选择"设 ...

  4. 配置Linux下vim自动缩进等功能

    从终端打开配置文件: vim ~/.vimrc 添加如下代码: set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set ...

  5. vim自动缩进设置

    需要软件 vim 下载地址 http://www.vim.org   code_complete.vim 插件 http://www.vim.org/scripts/script.php?script ...

  6. vim自动缩进

    最近写完程序,在进行调试时发现特别困难,代码乱的一塌糊涂,特别是代码量很多时,调试起来特别囧,逻辑很难理清. 这让我想起了缩进功能,可以让代码自动对齐. gedit编辑器在菜单栏里的编辑->首选 ...

  7. 写mysql语句时tab键与空格键

    某网页上复制的一份mysql语句,报错,重写一遍后,好了,对比后,发现, 可以看到在sublime text中,网上复制的缩进是空白的,tab键是横杠,空格键是一个点

  8. Eclipse设置Tab键为空格!

    http://z-hua.iteye.com/blog/1056713 今天设置Eclipse中按Tab键为4个空格,这里标记下! Window-->Preferences-->Java- ...

  9. [Eclipse插件] Eclipse设置Tab键为空格(ctrl+shirt+f格式化生效)!

    自定义format格式,用空格替换Tab键,ctrl+shit+f格式化后生效: 设置Eclipse中按Tab键为4个空格,这里标记下! Window-->Preferences-->Ja ...

随机推荐

  1. Django Web开发学习笔记(5)

    第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project ...

  2. 12C -- ORA-01017

    本地使用使用sqlplus,尝试连接12.2数据库报错: 在另外一台服务器上,使用sqlplus连接该库,可以成功: 解决方案: 根据MOS文档id:207303.1看出,只有11.2.0.3之上的客 ...

  3. C#-MVC开发微信应用(8)--菜单管理的实现

    之前讲解了微信后台管理页面的操作来管理菜单,下面我们在简单的来看一下,代码是如何实现的. 我们要实现获取微信的菜单.创建菜单.删除菜单等操作. 01.首先定义菜单操作的接口: /// <summ ...

  4. [100]awk运算-解决企业统计pv/ip问题

    awk运算 awk以脚本方式运行 #!/bin/awk BEGIN{ arr[1]="maotai"; arr[2]="maotai" for(k in arr ...

  5. 记一次性能优化,限制tcp_timewait数量,快速回收和重用

    前言 这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的.为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都 ...

  6. 【6集iCore3_ADP触摸屏驱动讲解视频】6-6 底层驱动之触摸操作

    源视频包下载地址:  链接:http://pan.baidu.com/s/1skQlWAT 密码:ymn7   银杏科技优酷视频发布区: http://i.youku.com/gingko8  

  7. precision scale

    precision意为“精密度.精确”(精度),表示该字段的有效数字位数了. scale意为“刻度.数值范围”(),表示该字段的小数位数. 举个简单的例子 123.45:precision = 5 , ...

  8. Halcon 2D测量

    * This program shows how to detect the edges of a diamond * with subpixel accuracy and calculate the ...

  9. 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  10. Qt读写ini文件

    一 背景 1 ini文件介绍 .ini 文件是Initialization File的缩写,即初始化文件. 除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现 ...