【转】vim格式化C代码
2024-08-26 08:48:01
转自:http://blog.chinaunix.net/uid-24774106-id-3396220.html
在自己的目录下编辑自己的.vimrc,
- vim ~/.vimrc
添加下面的几行:
- : filetype indent on
- set et
- set ci
- set shiftwidth=4
- autocmd FileType make setlocal noexpandtab
解释下含义,
- set ci
表示采用类似c 语言的缩进风格。
与自动缩进相关的变量表
变量名 | 缩写 | 含义 |
---|---|---|
(no)autoindent | ai | 自动缩进,即为新行自动添加与当前行同等的缩进。 |
(no)cindent | ci | 类似C语言程序的缩进 |
(no)smartindent | si | 基于autoindent的一些改进 |
- set et
作用是展开tab,将用户输入的tab自动展开成若干个空格,至于多少空格,看shiftwidth。
变量名 | 缩写 | 含义 |
---|---|---|
tabstop=X | ts | 编辑时一个TAB字符占多少个空格的位置。 |
shiftwidth=X | sw | 使用每层缩进的空格数。 |
(no)expandtab | (no)et | 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB> |
softtabstop=X | sts | 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格 |
(no)smarttab | (no)sta | 开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。 |
在这种情况下,可以格式化我们的C 代码了。
- 1 gg 回到文件的第一行
- 2 shift+v
- 3 shift+g 回到文件的最后一行
- 4 = 格式化
(扩展一下,如果想要格式化当前光标之后的8行,没有第一步骤,第三步骤为:shift+8)
这样就完毕了。这样出来了C 风格的缩进,同时也满足了tab键变成了4个空格。
同时我们注意,Makefile的tab键不允许扩展成4个空格,否则会出现语法错误。所以我们用了 下面语句对Makefile类型特殊处理。
- autocmd FileType make setlocal noexpandtab
另外一点对于新写的代码满足了table变成了4个空格,但是对老文件,并不会重新排版,用户可以采用如下命令重新解析tab键
- :retab
这个工具非常有用,写代码的时候,就不必计较格式稍微有点不工整,同时编辑的时候还可以用tab键(总比不停敲四个空格效率高),显示的时候又不会混乱。
采用这个之前,可以看到tab键并没有变成空格,不同的编辑器对tab的解读不同造成输出结果不是预期的。
采用这个之后配置之后,tab变成四个空格,无论在什么编辑器下看,都是一致的输出。
最新文章
- GDB调试命令小结
- 神经网络与深度学习(3):Backpropagation算法
- 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用
- 小米网站登录源码C#版
- android摇一摇实现(仿微信)
- php中读写excel表格文件示例。
- mongodb 的安装和使用
- BZOJ2463 谁能赢呢?
- TCP/IP协议原理与应用笔记22:静态和动态路由选择
- [010]Try块和异常处理
- 利用Azure高级存储搭建高性能Linux服务器(1)
- 16进制字符串转换为byte数组
- leetcode 刷道题 70 earch Insert Position 二进制搜索插入位置
- pkuseg:一个多领域中文分词工具包
- 完全卸载删除gitlab
- Angular2入门:TypeScript的类型 - let , var, const
- [python] 查找列表中重复的元素
- SpringBoot在Kotlin中的实现(二)
- ajax回退的解决方案
- Upgrade Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 with RU
热门文章
- iOS开发Xcode7真机调试教程
- XAML语言介绍
- map find 是线程安全的吗
- 谈谈Delphi中的类和对象4---类是一种对数据和操作高度的封装机制 &;&; 类是一种代码重用机制
- NPOI 通用导出数据到Excel 分类: C# Helper 2014-11-04 16:06 246人阅读 评论(0) 收藏
- wp8 入门到精通 高仿微信发信息 键盘不消失
- ASP.NET 5探险(5):利用AzureAD实现单点登录
- Linux学习笔记(3)Linux常用命令之文件处理命令
- sql篇,动态合并数据
- 【POI xls】解析xls遇到的问题