mjn*_*n12 45 vim plugins highlighting indentation
我是一个长期的Vim用户(3或4年),他最近开始处理一些深层嵌套的代码.此代码使用空格缩进,而不是制表符.我想要一些干净且不分散注意力的缩进指示,以帮助跟踪我在看多层次深层时所处的代码块.
:set list
Run Code Online (Sandbox Code Playgroud)
仅显示制表符和结束行字符.我找到了一个插件(目前似乎无法挖掘出来),它会突然逐渐变暗颜色突出每个缩进级别,但这在视觉上没有吸引力.理想情况下,我希望在每个缩进级别看到细垂直线.许多新奇的编辑都有这个功能,但我还是不愿意放弃Vim.
有谁知道如何实现这一目标?
Nat*_*e K 67
注意:这个答案有点晚了,也是一个无耻的插件:)
无论如何,试试我的Indent-Guides.vim插件.它的创建是为了抓住我自己的痒,因为vim中缺少缩进指南.我厌倦了等待别人过来建造它,所以我自己就做了.
特征:
以下是该插件的一些截图:将鼠标放在此处然后单击.
Nik*_*sev 27
您可以使用选项卡显示缩进指南并在保存文件之前删除选项卡:
" use 4 spaces for tabs
set tabstop=4 softtabstop=4 shiftwidth=4
" display indentation guides
set list listchars=tab:?-,trail:·,extends:»,precedes:«,nbsp:×
" convert spaces to tabs when reading file
autocmd! bufreadpost * set noexpandtab | retab! 4
" convert tabs to spaces before writing file
autocmd! bufwritepre * set expandtab | retab! 4
" convert spaces to tabs after writing file (to show guides again)
autocmd! bufwritepost * set noexpandtab | retab! 4
Run Code Online (Sandbox Code Playgroud)
小智 27
如果你用空格缩进代码,你可以尝试我的插件:https://github.com/Yggdroot/indentLine,它显示细垂直线但不是粗垂直线,如上面的答案所提到的.如果你用tab缩进代码,只需:set list lcs=tab:\|\ (here is a space)
Pie*_*tte 15
这将在您键入时显示指示缩进级别的点.当你离开这条线时,这些圆点会神奇地消失.
set list listchars=tab:»-,trail:·,extends:»,precedes:«
Run Code Online (Sandbox Code Playgroud)
例如:
def test():
....print('indentation level 1')
Run Code Online (Sandbox Code Playgroud)
很酷吧?
ib.*_*ib. 15
可能最有效的解决方案是使用匹配突出显示"绘制"缩进指南.要了解它的帮助,请查看以下示例:
:match Search /\%(\_^\s*\)\@<=\%(\%1v\|\%5v\|\%9v\)\s/
Run Code Online (Sandbox Code Playgroud)
它突出显示(使用搜索突出显示组,当然可以使用任何其他组合)第一个,第五个,第九个(并且可以继续)虚拟列占用空格符号,但不包括从行首开始的空格.因此,这会产生四个空间的缩进,突出显示三个级别的深度.
为了概括这个想法,它仍然只是根据当前缓冲区textwidth
和shiftwidth
(以处理更深的缩进级别和适当的缩进宽度)生成如上所述的模式.此任务可以简单自动化,如下面的函数所示.
function! ToggleIndentGuides()
if exists('b:indent_guides')
call matchdelete(b:indent_guides)
unlet b:indent_guides
else
let pos = range(1, &l:textwidth, &l:shiftwidth)
call map(pos, '"\\%" . v:val . "v"')
let pat = '\%(\_^\s*\)\@<=\%(' . join(pos, '\|') . '\)\s'
let b:indent_guides = matchadd('CursorLine', pat)
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
每次在缓冲区中需要缩进指南时,都可以打开它
:call ToggleIndentGuides()
.当然,您可以更改突出显示组(或创建一个仅用于缩进指南的特殊组),为此设置一个方便的映射1和/或autocmd
为某些文件类型调用它.
1缩进指南突出显示我的.vimrc
文件中的配置:https://gist.github.com/734422
归档时间: |
|
查看次数: |
40609 次 |
最近记录: |