zoukankan      html  css  js  c++  java
  • 【转载】Vim 的 tab 设置

    原文地址:

    Vim 的 tab 设置: http://blog.csdn.net/shell_picker/archive/2010/11/24/6033023.aspx

    Vim 的 tab 设置(2): 使用 autocmd 为不同的文件类型应用不同的 tab 设置:http://blog.csdn.net/shell_picker/archive/2010/12/13/6073125.aspx

    摘自 Vim 手册:

    选项
    1. tabstop:表示一个 tab 显示出来是多少个空格,默认 8
    2. softtabstop:在编辑的时候(比如按退格或 tab 键)一个 tab 是多少个空格(有点不好理解。。。我也没完全弄明白)
    3. expandtab/noexpandtab:将 tab 扩展/不扩展成空格
    4. shiftwidth:每一级缩进是多少个空格
    5. smarttab:根据文件中其他地方的缩进空格个数来确定一个 tab 是多少个空格

    命令
    :[range]retab [new_tabstop]:应用新的 tabstop 值,替换所有的 tab,如果设置了expandtab,还会把文件中 tab 都替换成空格。

    几种常见用法

    1. 保留 tab。让 tabstop 保持默认,将 softtabstop 和 shiftwidth 设为 4,并设置 noexpandtab。这样文件中本来有 tab 的话会保留,新增的缩进处也会使用 tab。

    2. 全部用空格。将 tabstop 和 shiftwidth 设置成相同的值,如 4,并设置 expandtab。这样新增的缩进会用空格,你按下 tab 键,出来的也全是空格。如果文件里本来就有 tab 的话,可以再用一次 :retab 命令,将所有 tab 扩展成空格,这样就完美了。

    我一般在 .vimrc 中这样设置:

    set smarttab
    set tabstop=4
    set shiftwidth=4
    set expandtab
    

     上次谈到了在 Vim 中配置 tab/空格的使用策略。最近写网页写得多,希望在编辑 html 的时候不替换 tab,并且一个 tab 占两个空格;在编辑其他文件时仍然使用 4 个空格。最后找到了这个办法:

    在 .vimrc中:

    autocmd BufNewFile,BufRead *.html,*.htm,*.css,*.js set noexpandtab tabstop=2 shiftwidth=2
    

     autocmd 即“自动命令”,在发生某些事件时自动执行,类似于钩子函数。

    BufNewFile 表示编辑一个不存在的文件时

    BufRead 是读取一个已存在的文件时

    后面是文件名 pattern(用 , 分隔)以及要执行的命令。若要执行多个命令,命令之间可用 | 分隔。

    Links:
    VIM 参考手册: autocmd: http://man.chinaunix.net/newsoft/vi/doc/autocmd.html

    作者:icejoywoo
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 短网址: http://goo.gl/ZiZCi
  • 相关阅读:
    POJ 1321 棋盘问题
    算法导论 4.1 最大子数组问题
    矩阵快速幂
    固定定位
    HTML排版
    CSS笔记2
    HDU 1796 How many integers can you find(容斥原理)
    HDU 2147 kiki's game(博弈经典题)
    HDU 1846 Brave Game(巴什博弈超简单题)
    HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
  • 原文地址:https://www.cnblogs.com/icejoywoo/p/2939446.html
Copyright © 2011-2022 走看看