zoukankan      html  css  js  c++  java
  • 【转】vim格式化C代码

    转自:http://blog.chinaunix.net/uid-24774106-id-3396220.html

    在自己的目录下编辑自己的.vimrc,

    1. vim ~/.vimrc
    添加下面的几行:
    1. : filetype indent on
    2. set et
    3. set ci
    4. set shiftwidth=4
    5. autocmd FileType make setlocal noexpandtab
        解释下含义,
    1. set ci
        表示采用类似c 语言的缩进风格。
     
                                与自动缩进相关的变量表
    变量名缩写含义
    (no)autoindentai 自动缩进,即为新行自动添加与当前行同等的缩进。
    (no)cindentci 类似C语言程序的缩进
    (no)smartindentsi 基于autoindent的一些改进
        
    1. set et
        作用是展开tab,将用户输入的tab自动展开成若干个空格,至于多少空格,看shiftwidth。
    与TAB相关的变量表
    变量名缩写含义
    tabstop=Xts 编辑时一个TAB字符占多少个空格的位置。
    shiftwidth=Xsw 使用每层缩进的空格数。
    (no)expandtab(no)et 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB>
    softtabstop=Xsts 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
    (no)smarttab(no)sta 开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。
        在这种情况下,可以格式化我们的C 代码了。
    1. 1  gg           回到文件的第一行
    2. 2 shift+v
    3. 3 shift+g      回到文件的最后一行
    4. 4 =            格式化

    (扩展一下,如果想要格式化当前光标之后的8行,没有第一步骤,第三步骤为:shift+8)

        这样就完毕了。这样出来了C 风格的缩进,同时也满足了tab键变成了4个空格。

    同时我们注意,Makefile的tab键不允许扩展成4个空格,否则会出现语法错误。所以我们用了 下面语句对Makefile类型特殊处理。

    1. autocmd FileType make setlocal noexpandtab
       另外一点对于新写的代码满足了table变成了4个空格,但是对老文件,并不会重新排版,用户可以采用如下命令重新解析tab键  
    1. :retab
           这个工具非常有用,写代码的时候,就不必计较格式稍微有点不工整,同时编辑的时候还可以用tab键(总比不停敲四个空格效率高),显示的时候又不会混乱。
        采用这个之前,可以看到tab键并没有变成空格,不同的编辑器对tab的解读不同造成输出结果不是预期的。

        采用这个之后配置之后,tab变成四个空格,无论在什么编辑器下看,都是一致的输出。

  • 相关阅读:
    leetcode--Lowest Common Ancestor of a Binary Search Tree
    bzoj3675【APIO2014】序列切割
    计算机网络之面试常考
    <html>
    TCP相关面试题总结
    Java多线程之Lock的使用
    原来Java中有两个ArrayList
    Java编程规范
    一些面试基本知识(Android篇一)
    _PyUnicodeUCS4_AsDefaultEncodedString
  • 原文地址:https://www.cnblogs.com/dorothychai/p/3699222.html
Copyright © 2011-2022 走看看