一、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. Hadoop2.2.0分布式安装配置详解[1/3]

    前言 在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据.一转眼一两个月过去了,有些东西对已经忘了.现在实验室申请下来了,分了10台机器 ...

  2. Django-启动文件的制作

    在Django项目下的app.py中写入这几行代码,当启动的时候会找项目下名为:stark.py的文件并先加载 #app.py from django.apps import AppConfig cl ...

  3. Total Command 常用快捷键

    压缩和解压缩文件Alt + F5 压缩选定文件                                       Alt + F9      解压压缩文件Alt + Shift + F9   ...

  4. maven安装及与eclipse集成

    一.maven安装 1,下载地址:http://maven.apache.org/download.cgi 2,解压maven到:C:\Java\apache-maven-3.5.3,目录可以随意. ...

  5. Android 5.0 Phone初始化分析

    已经更新至个人blog:http://dxjia.cn/2015/07/android-5-0-phone-init-analysis/ persistent属性 要想了解phone的框架,首先需要了 ...

  6. MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置

    一.总概 1.MHA介绍 MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).      MH ...

  7. WebView与 JS 交互方式

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与 ...

  8. json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    前台传到后台的json字符串 前台实现这种格式json字符串方式: function contentFun(){ respType = respTypeFun(); return "{\&q ...

  9. ASP.NET MVC 4 - 上传图片到数据库

    这里演示如何在MVC WEB应用程序如何上传图片到数据库以及如何在WEB页面上显示图片.数据库表对应整个Model类,不单图片数据一个字段,我们从数据表的定义开始: CREATE TABLE [dbo ...

  10. [Python] pip 简明指南

    安装 1. 使用 apt 安装: $ sudo apt-get install python-pip 截止本文落笔,apt 安装 pip 版本为 1.0,但 pip 最新发行版本为 1.5.6 $ p ...