(学习vim时看到的一篇很全的缩进学习笔记,所以转载了)
(装载自http://www.360doc.com/content/16/0320/11/31808797_543774173.shtml)


手动缩进

在Normal Mode下,命令>>将对当前行增加缩进,而命令<<则将对当前行减少缩进。我们可以在命令前使用数字,来指定命令作用的范围。例如以下命令,将减少5行的缩进:

5<<

在Insert/Replace Mode下,Ctrl-Shift-t可以增加当前行的缩进,而Ctrl-Shift-d则可以减少当前行的缩进。使用0-Ctrl-Shift-d命令,将移除所有缩进。需要注意的是,当我们输入命令中的“0”时,Vim会认为我们要在文本中插入一个0,并在屏幕上显示输入的“0”;然后当我们执行命令0-Ctrl-Shift-d时,Vim就会意识到我们要做的是减少缩进,这时0会就会从屏幕上消失。

缩进宽度默认为8个空格。我们可以使用以下命令,来修改缩进宽度:

:set shiftwidth=4

通过以下设置,每次点击Tab键,将增加宽度为8列的Tab缩进。

:set tabstop=8

:set softtabstop=8

:set shiftwidth=8

:set noexpandtab

使用以下设置,每次点击Tab键,增加的缩进将被转化为4个空格。

:set tabstop=4

:set softtabstop=4

:set shiftwidth=4

:set expandtab

其中,expandtab选项,用来控制是否将Tab转换为空格。但是这个选项并不会改变已经存在的文本,如果需要应用此设置将所有Tab转换为空格,需要执行以下命令:

:retab!

自动缩进

在Vim中还可以进行自动缩进,主要有cindent、smartindent和autoindent三种。

cindent Vim可以很好的识别出C和Java等结构化程序设计语言,并且能用C语言的缩进格式来处理程序的缩进结构。可以使用以下命令,启用cindent缩进结构:

:set cindent

smartindent 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的,那么这种格式将会被特殊对待而不采用缩进格式。可以使用以下命令,启用smartindent缩进结构:

:set smartindent

autoindent 在这种缩进形式中,新增加的行和前一行使用相同的缩进形式。可以使用以下命令,启用autoindent缩进形式。

:set autoindent

命令小结
1、>>
Ctrl-Shift-t 增加缩进
2、<<
Ctrl-Shift-d 减少缩进
3、:set shiftwidth=n 设置缩进宽度
4、:set cindent 启用cindent缩进结构
5、:set autoindent 启用autoindent缩进结构
6、:set smartindent 启用smartindent缩进结构

VIM学习笔记 缩进 (Indent)相关推荐

  1. VIM学习笔记 配置文件(vimrc)

    为什么80%的码农都做不了架构师?>>>    VIM学习笔记 配置文件(vimrc) 在vim启动过程中,首先将查找配置文件并执行其中的命令.而这些初始化文件一般有vimrc.gv ...

  2. vim学习笔记(4)帮助与配置

    使用帮助 在Vim中输入命令:help,即可进入帮助界面,默认是英文,可以通过以下方式安装中文帮助(以vimcdoc-1.9.0为例): 1.下载中文帮助的文件压缩包 2.解压 tar -xzvf v ...

  3. 【编辑器】Vim学习笔记

    0x00先放几个比较好的学习资料 1.Vim入门基础 http://www.jianshu.com/p/bcbe916f97e1 2.vim配置 http://blog.csdn.net/g_brig ...

  4. vim学习笔记(四)

    下面是我的最近更新,差点删除. 下面的笔记摘自vimtutor.<CR>表示回车 删除命令 在normal模式下: de 删除一个单词,不包含空格 dw 删除一个单词,包含空格 dd 删除 ...

  5. vim学习笔记-常用命令

    vim手册功能太多了,在此整理一些常用的供后期学习查阅 1.移动光标方式 j:上(同↑) k:下(同↓) h:左(同←) l:右(同→) +或Enter: 把光标移至下一行第一个非空白字符. -: 把 ...

  6. 小白to大神 vim学习笔记

    Vim文档编辑 一.实验介绍 1.2 实验知识点 Vim重复命令 跳转命令 复制粘贴 二.实验步骤 2.1 vim重复命令 2.1.1 重复执行上次命令 在普通模式下.(小数点)表示重复上一次的命令操 ...

  7. Vim学习笔记-基础篇

    vim是vi改进版 windows 体验版 gvim 基本命令 $ vim # normal模式:q(quit) # 退出# 进入编辑insert模式(6种) i(insert) # 光标前插入 a( ...

  8. vim学习笔记(一)

    :vertical sfind  垂直分隔窗口(vsf),但是两个窗口的内容完全相同.在编辑的时候,内容也完全相同,如果要关闭一个窗口,输入:exit即可 :buffers 显示整个缓冲区列表 ndG ...

  9. vim学习笔记一(环境配置及编译文件)

    今天开始在linux进行编程学习,首先是环境的配置.使用的ubuntu系统自带的vim.但是在使用前要先对vim进行配置,使其更友好. 配置方法是对vimrc进行修改,分享下我的vimrc,(下载地址 ...

最新文章

  1. weblogic 配置mysql数据源Cannot load driver class: com.mysql.jdbc.Driver的问题
  2. 计算机网络探究二之利用PHP实现登录验证之后上网
  3. 使用sshfs挂载linux远程服务器目录到windows
  4. 一篇文章搞懂数据仓库:数据仓库规范设计
  5. 醒醒吧!送给那些盲目自学的人
  6. Castle 开发系列文章
  7. python 干什么工作具有明显优势-为什么这么多人学Python?Python在就业上有什么优势?...
  8. android组建之间通信_android组件间通信有哪些方式
  9. 关于int main(int argc,char* argv[])详解
  10. CentOS7 yum方式安装MySQL5.7
  11. 数据库系统概论第五版(第 4 章 数据库安全性)笔记
  12. 游戏检测到计算机性能过低,windows检测到您的计算机性能缓慢
  13. 记录域名如何过360拦截防护,非绝对
  14. 题目 1902: 九宫格
  15. 惠普关闭 secure boot
  16. C语言自动预订飞机票问题
  17. 程序员路在何方的辛苦工作
  18. android 3d翻页动画,使用XML在Android中创建3D翻页动画
  19. Web前端期末大作业---HTML+CSS+JS实现实现捉虫小游戏
  20. 有心栽花花不开,无心插柳柳成阴

热门文章

  1. Python人工智能概述——博弈、对抗搜索
  2. jq点击事件实现防抖
  3. android studio创建模板,Android Studio为新项目创建项目模板
  4. MySQL同步两张表数据
  5. 揭秘KubeEdge边缘网络项目EdgeMesh:如何打造高速、安全、低延迟的互联网连接
  6. 抽屉原理(又名:鸽笼原理)
  7. 项目实训(十五)FPS游戏之PUN角色配置和异端实例化
  8. 机器学习中的精度、召回等概念
  9. 推荐几款好用的拍照翻译软件给你
  10. 真3D结构光人脸锁成行业潮品,奥比中光合作锁企“霸屏”建博会