每日一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时自动将其转化为空格
-
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符号) -
softtabstop小于tabstop且没有设置expandtab时,如果softtabstop=4,tabstop=8,输入一个tab(softtabstop),会变成4个空格(因为不够用一个tabstop表示),输入两个tab会变成一个tab(8列)。
-
如果softtabstop等于tabstop,而且expandtab没有设置,softtabstop与tabstop就没什么区别了。
-
如果设置的expandtab,输入一个tab,将被展开成softtabstop值个空格,如果softtabstop=4,那么一个tab就会被替换成4个空格。
-
设置expandtab:
:set expandtab
-
取消expandtab:
:set noexpandtab
-
查看参数值:
:set $arg(这里的arg是变量,值就是上面的那些参数),比如::set softtabstop
-
自动缩进
:set autoindent 回车后自动缩进
-
通常Java的配置方式是:
:set softtabstop=4 shiftwidth=4 expandtab
-
Linux kernel的配置方式:
:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab
以后的章节我会来一个完整的Python配置。
转载请注明出处,谢谢合作,作者----zhijun
相关推荐
希望广大用Liunx 的用户,武装一下自己VIM,这是一个国人写的软件,拿出来分享下,用法自己看Readme...
VIM python下的一些关于缩进的设置: 第一步: 打开终端,在终端上输入vim ~/.vimrc,回车。 第二步: 添加下面的文段: set filetype=python au BufNewFile,BufRead *.py,*.pyw setf python set helplang=...
vim-erlang-runtime, Vim的Erlang缩进和语法 用于Vim的Erlang缩进和语法这是 Vim ( 来自 Vim 7.4 ) 附带的Erlang缩进和语法。安装方法 1克隆这里存储库: $ mkdir -p ~/.vim/bundle $ cd ~/.vim/b
nginx配置文件vim语法高亮与缩进.docx
vim 缩进对象 介绍 Vim 文本对象提供了一种方便的方式来选择和操作各种类型的对象。 这些对象包括被各种类型的括号和语言的各个部分(即句子、段落等)包围的区域。 该插件基于缩进级别定义了一个新的文本对象。 这...
vim-svelte-plugin:.svelte文件的Vim语法和缩进插件
本篇文章是对VIM中设置php自动缩进为4个空格的方法进行了详细的分析介绍,需要的朋友参考下
vim-fibo-indent:Vim的斐波那契缩进
下面小编就为大家带来一篇浅谈Vim中的Tab与空格缩进。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
vim-jsx改进 使您的javascript文件正确支持React jsx。 来自Javascript语法 Jsx高亮显示和缩进代码已从更改 修复了React jsx文件的语法突出显示和缩进的问题。 与xml.vim配合良好 该插件没有依赖性,包含了jsx和...
vim 首行缩进 小工具 vim 编辑的文本可以直接用sourceinsight查看,格式对齐。
选择一个合适的编辑器,比如notepad++、VS、eclipse、sublime text等,选中要集体缩进的代码块, 按Tab:集体缩进(向右) 按Shift+Tab:集体回缩...(推荐)解析Python的缩进规则的使用分享vim python缩进等一些配置P
indentLine:一个vim插件,用于显示带有细垂直线的缩进级别
vim-javascript 适用于vimJavaScript软件包,该软件包提供语法高亮显示和改进的缩进。安装使用本机软件包管理器安装 git clone https://github.com/pangloss/vim-javascript.git ~/.vim/pack/vim-javascript/start/...
vim-vue-plugin .vue文件的Vim语法和缩进插件。 主要受到mxw / vim-jsx的启发。 安装如何安装VundleVim插件'leafOfTree vim-vue-plugin Vim语法和.vue文件的缩进插件。 主要受到mxw / vim-jsx的启发。 安装如何安装...
该存储库包含 Vim 附带的用于 Erlang 编程语言的缩进、语法和 ftplugin 脚本。 在这里您可以下载最新版本并做出贡献。 目录 安装 Vim 的内置包管理器如果您至少使用 Vim 8 并且不使用其他包管理器,则这是推荐的安装...
vim-jsx-pretty, [Vim script] 对vim的JSX语法非常突出 vim-jsx-pretty演示语法vim-jsx-pretty( 添加彩色配置) vim-jsx-pretty mxw/vim-jsx 自动缩进( 使用 vim-javascript )
vim-lua-indent Vim更好的Lua缩进脚本这是Vim附带的lua.vim缩进文件版本的一个紧急修改。 它的自动缩进比默认缩进更好,尤其是当您的函数参数跨越条件语句中的多行或仅是函数的多行参数列表本身时。 有关它可以完成...
这是插件放出的一个错误提示,查看plugin里的acp.vim可以看到。是缺少L9 library库。这个也是需要下载的。地址在下面