【转】vim格式化C代码
转自: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
| 变量名 | 缩写 | 含义 |
|---|---|---|
| (no)autoindent | ai | 自动缩进,即为新行自动添加与当前行同等的缩进。 |
| (no)cindent | ci | 类似C语言程序的缩进 |
| (no)smartindent | si | 基于autoindent的一些改进 |
- set et
| 变量名 | 缩写 | 含义 |
|---|---|---|
| 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变成四个空格,无论在什么编辑器下看,都是一致的输出。
【转】vim格式化C代码的更多相关文章
- vim格式化代码实际上就是 "缩进代码", 命令是等号=
vim格式化代码实际上就是 "缩进代码", 命令是等号= 格式化就是 vim 根据 文件的类型, 自动的对代码进行 缩进 缩进的类型有多种, 都是用等号命令: = 全部格式化 : ...
- [VIM] 格式化代码
快速使用vim格式化代码 在vim的编辑模式i下直接ESC退出道命令模式之后直接敲入如下命令: gg=G 将全部代码格式化 nG=mG 将第n行到第m行的代码格式化 注:如果ESC ...
- VIM格式化代码(How to format code with VIM)
1) 按两下小写g,即gg,定位光标到第一行.(2) 按住Shift+v,即大写V,进入可视化编辑的列编辑模式.(3) Shift+g,即大写G,选中整个代码.(4) 按下等号=,格式化所有代码.
- Sublime text 3 如何格式化HTML代码
使用Sublime text 3 编写代码是一种享受,使用Sublime text 3 格式化HTML代码,需要安装插件,具体安装步骤如下: 1.打开菜单->首选项->插件控制,输入 ...
- 使用Dreamweaver格式化HTML代码
今天偶然发现了DreamWeaver(DW)的一个非常有用的功能,就是代码的格式化功能.一般情况下,我们写的html或者css代码都计较混乱,难以阅读,即使刚开始很在意代码的可读性,但是等到所使用的标 ...
- Arch Linux下Visual Stdio Code在格式化C代码时报错
libtinfo.so.5: cannot open shared object file: No such file or directory Arch Linux下Visual Stdio Cod ...
- vim格式化markdown表格
title: vim格式化markdown表格 date: 2017-11-23 15:23:25 tags: vim categories: 开发工具 安装插件 https://github.com ...
- Chrome格式化JavaScript代码
很多第三方插件的脚本,是压缩后的代码,甚至时动态加载的,代码只有一行. Chrome提供了格式化脚本代码的功能,方便加断点调试. 1 在Sources面板中,点击脚本名称,打开脚本源码. 2 点击左下 ...
- CSS格式化 CSS代码压缩工具
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- iOS获取状态栏和导航栏尺寸(宽度和高度)
iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...
- iOS - OC/Swift:验证手机号/固话用正则表达式
/** * 验证手机号是否正确 * @param unknown_type $mobile */ OC: - (BOOL)isMobileNumber:(NSString *)mobileNum { ...
- NYOJ之素数求和问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsoAAAKCCAIAAABH/2gWAAAgAElEQVR4nO3dPVLjStsG4G8T5CyEdF
- hdu 2027统计元音
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2027 思路:主要考察gets()函数用法,能够接受输入的空格,如果用%s或是cin>>st ...
- 23.备忘录模式(Memento Pattern)
using System; using System.Collections.Generic; namespace ConsoleApplication6 { /// <summary> ...
- VS对路径的访问被拒绝
问题:权限问题. 1.检查自己电脑账户.是否是Administrator.如果没有启用.在[我的电脑]——[管理]——[本地用户和组]——[用户]——[Administrator]——[属性启用] 2 ...
- PHP中array_merge和array相加的区别分析
今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别 首先来看看键名是s ...
- 解决Pyqt打包后运行报错:应用程序无法启动 因为程序的并行配置不正确
做了一个生成二维码的小程序:http://www.cnblogs.com/dcb3688/p/4241048.html 直接运行脚本没问题,用pyinstaller打包后再运行就直接报错了: 应用程序 ...
- C# 将文件转化成byte[]数组
/// <summary> /// 将文件转换成byte[] 数组 /// </summary> /// <param name="fileUrl"& ...
- JS判断输入值是否为正整数
JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: <script type=”text/javascript”> function test( ...