`
lantian_123
  • 浏览: 1370095 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

每日一Vim(9)缩进

 
阅读更多

每日一Vim(9)----缩进

缩进在程序开发的时候是实用的一个功能,尤其Python这种靠缩进来组织代码段的语言来说更重要了。今天特意google了下vim缩进,结果很失望,有的只有配置没有说明,有说明的也没说清楚,特此自己总结一下。

normal 模式下:

>>  当前行增加缩进
<<  当前行减少缩进

insert模式下:

CTRL+SHIFT+T:当前行增加缩进
CTRL+SHIFT+D:当前行减少缩进  

默认vim的缩进宽度为8个空格,修改缩进的宽度::set shiftwidth=4,具体什么意思,看下面的详细解释。

与缩进相关的参数有shiftwidth、tabstop、softtabstop、expandtab。

shiftwidth  reindent 操作(<<和>>)时缩进的列数(这里的一列相当于一个空格)
tabstop     一个tab键所占的列数,linux 内核代码建议每个tab占用8列
softtabstop 敲入tab键时实际占有的列数。
expandtab   输入tab时自动将其转化为空格
  1. softtabstop大于tabstop时,且没有设置expandtab时,例如:softtabstop=12,tabstop=8,那么当输入一个tab时(softtabstop:实际占用的是12列),最后会变成一个tab(tabstop)加4个空格(8+4),输入两个tab(2个softtabstop:24列)会变成3个tab(tabstop),也就是说vim或用tabstop+空格来表示,最终你能看到的缩进的列数一定是softtabstop*按的tab键次数。(ps::set list 可以查看tab符号)

  2. softtabstop小于tabstop且没有设置expandtab时,如果softtabstop=4,tabstop=8,输入一个tab(softtabstop),会变成4个空格(因为不够用一个tabstop表示),输入两个tab会变成一个tab(8列)。

  3. 如果softtabstop等于tabstop,而且expandtab没有设置,softtabstop与tabstop就没什么区别了。

  4. 如果设置的expandtab,输入一个tab,将被展开成softtabstop值个空格,如果softtabstop=4,那么一个tab就会被替换成4个空格。

  5. 设置expandtab:

    :set expandtab
    
  6. 取消expandtab:

    :set noexpandtab
    
  7. 查看参数值:

    :set $arg(这里的arg是变量,值就是上面的那些参数),比如::set softtabstop
    
  8. 自动缩进

    :set autoindent   回车后自动缩进
    
  9. 通常Java的配置方式是:

    :set softtabstop=4 shiftwidth=4 expandtab
    
  10. Linux kernel的配置方式:

    :set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab
    

以后的章节我会来一个完整的Python配置。

 

转载请注明出处,谢谢合作,作者----zhijun

2
1
分享到:
评论
3 楼 isensen 2013-03-19  
我是在考虑,有这种需求吗?或许是我没接触到过,
2 楼 lantian_123 2013-03-19  
最终一个tab键显示的宽度(列数)由softtabstop决定,没有设置expandtab时由tabstop和空格表示,设置了expandtab时就只由空格表示。或许还是没有描述清楚,一边实践操作,一边理解1、2两句话,相信能很快明白
1 楼 isensen 2013-03-19  
softtabstop   tabstop     1和2 说的这两个,感觉意思就是  这两个里面最终决定 显示多少空格的就是 softtabstop 是吗?

相关推荐

    Vim自动缩进软件。

    Vim的自动缩进功能正为此而生,使得用户在编写代码时无需手动调整每一行的缩进,极大地提升了编码效率。这款国人编写的Vim自动缩进软件就是为了进一步优化这一体验,让VIM更适合中国程序员的习惯。 该压缩包包含了...

    nginx配置文件vim语法高亮与缩进.docx

    在IT行业中,编辑器是程序员日常工作中不可或缺的工具,Vim作为一款强大的文本编辑器,因其高度可定制性而备受青睐。本文档主要讲解如何在Vim中为Nginx配置文件实现语法高亮和自动缩进,以提高代码阅读和编辑的效率...

    分享vim python缩进等一些配置

    9. `set autoindent`:除了`autoindent`外,Vim还支持`smartindent`,这是另一个更智能的缩进选项,适用于更复杂的缩进需求。 10. `set compatible`和`set nocompatible`:前者让Vim模拟传统的vi编辑器,后者则启用...

    indentLine:一个vim插件,用于显示带有细垂直线的缩进级别

    indentLine 是一款针对 Vim 编辑器的插件,它的主要功能是为代码提供可视化的缩进引导,通过在每一级缩进处显示细垂直线,帮助程序员更好地组织和理解代码结构。这款插件尤其对那些重视代码对齐和可读性的开发者来说...

    vim-erlang-runtime, Vim的Erlang缩进和语法.zip

    vim-erlang-runtime, Vim的Erlang缩进和语法 用于Vim的Erlang缩进和语法这是 Vim ( 来自 Vim 7.4 ) 附带的Erlang缩进和语法。安装方法 1克隆这里存储库: $ mkdir -p ~/.vim/bundle $ cd ~/.vim/b

    浅谈Vim中的Tab与空格缩进

    在Vim编辑器中,Tab和空格缩进是编程时非常重要的细节,它们影响代码的可读性和一致性。本文将深入探讨Vim中的Tab与空格缩进的配置和使用。...通过定制Vim配置,你可以打造出一个符合个人习惯且高效的编程环境。

    vim-indent-object:Vim 插件定义了一个新的文本对象,表示相同缩进级别的代码行。 对 pythonvim 脚本等有用

    vim 缩进对象 介绍 Vim 文本对象提供了一种方便的方式来选择和操作各种类型的对象。 这些对象包括被各种类型的括号和语言的各个部分(即句子、段落等)包围的区域。 该插件基于缩进级别定义了一个新的文本对象。 这...

    vim-fibo-indent:Vim的斐波那契缩进

    **vim-fibo-indent** 是一个 Vim 插件,它的主要功能是为代码提供基于斐波那契数列的智能缩进。这个插件的设计理念是为了提高代码的可读性和美观性,尤其对于那些遵循特定缩进规则的语言,如 Python、Haskell 或者...

    大大改进了 Vim 中的 Javascript 缩进和语法支持 .zip

    大大改进了 Vim 中的 Javascript 缩进和语法支持。vim-javascriptvim 的 JavaScript 包,该包提供语法高亮和改进的缩进。安装使用本机包管理器安装 git clone https://github.com/pangloss/vim-javascript.git ~/....

    vim-jsx-improve:React jsx的语法和缩进插件

    vim-jsx改进 使您的javascript文件正确支持React jsx。 来自Javascript语法 Jsx高亮显示和缩进代码已从更改 修复了React jsx文件的语法突出显示和缩进的问题。 与xml.vim配合良好 该插件没有依赖性,包含了jsx和...

    vim-l9.zip

    L9,全称是“Vim9script”,是Vim 8.2引入的一种新脚本语言,用于编写更复杂的插件和宏。L9提供了类函数、模块、异常处理等高级特性,使得Vim的脚本编写能力得到了显著提升。当Vim提示缺少L9 library时,意味着系统...

    vim 小助手

    vim 首行缩进 小工具 vim 编辑的文本可以直接用sourceinsight查看,格式对齐。

    Python代码块批量添加Tab缩进的方法

    选择一个合适的编辑器,比如notepad++、VS、eclipse、sublime text等,选中要集体缩进的代码块, 按Tab:集体缩进(向右) 按Shift+Tab:集体回缩...(推荐)解析Python的缩进规则的使用分享vim python缩进等一些配置P

    vim-vue-plugin-.vue文件的Vim语法和缩进插件。-Vue.js开发

    vim-vue-plugin .vue文件的Vim语法和缩进插件。 主要受到mxw / vim-jsx的启发。 安装如何安装VundleVim插件'leafOfTree vim-vue-plugin Vim语法和.vue文件的缩进插件。 主要受到mxw / vim-jsx的启发。 安装如何安装...

    vimz中设置回车换行缩进

    当开启此选项后,Vim会在适当的上下文中自动插入或删除缩进,例如,在某些情况下,当你删除一行缩进时,Vim会自动减少下一行的缩进量。 #### 配置步骤详解 1. **定位`.vimrc`文件**: - 打开终端。 - 输入命令 `...

    vim-configure.tar.gz_vim_vim_configure

    Vim(Vi IMproved)是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。"vim-configure.tar.gz_vim_vim_configure" 是一个包含了 Vim 配置文件的压缩包,旨在帮助用户优化 Vim 的使用体验,提供自动提示、补全...

    vim plugin vim changes to ide update

    【vim plugin vim changes to ide update】这一主题表明我们将探讨如何使用Vim插件来提升其作为集成开发环境(IDE)的功能。在这个过程中,我们将重点分析新增的三个插件:wintagexplorer.vim、echofunc.vim以及vimrc...

    Vim的.vim文件夹和.vimrc配置文件

    Vim是一款强大的文本编辑器,深受程序员和系统管理员的喜爱,其可高度自定义的特性使得用户可以根据个人喜好和工作需求定制自己的编辑环境。在Vim中,`.vim`文件夹和`.vimrc`配置文件是两个至关重要的元素,它们帮助...

    docker下debian9的vim安装

    支持docker容器,debian9的操作系统下的vim编辑工具 安装顺序: 1. dpkg -i vim-common_7.3.429-2ubuntu2.2_amd64.deb 2. dpkg -i vim-runtime_7.3.429-2ubuntu2.2_all.deb 3. dpkg -i --force-all libgpm2_1.20.4-...

Global site tag (gtag.js) - Google Analytics