是否有vim命令或插件可以跨越我正在打开的源文件,并将我的tab设置调整为文件中使用的任何内容。
我目前工作的代码库种类繁多,一些源文件使用硬标签,其他4个空间软标签,以及其他2个空间软标签。我的硬制表符,如果我忘记更改,如果我在编辑软制表符文件时忘记更改,可能会在不同的编辑器中导致丑陋的空格。
我不希望每次打开缓冲区时都要记得检查文件中使用的任何约定,并相应地调整我的首选项。
发布于 2014-06-26 15:17:45
我使用yaifa取得了巨大的成功。它几乎是一个“安装并忘记”的插件,它可以做到它所说的那样,而不会妨碍到它。在乱七八糟的环境中工作是很可怕的,直到我找到了那块宝石。
发布于 2014-06-26 14:58:09
如果大多数人在工作中使用Vim (和/或Emacs),您可以在文件本身中编码缩进设置,请参阅:help modeline
(至少Emacs有类似的设置)。当然,就一个共同的设置达成一致并逐步迁移到它会更好:-)
如果你不能做到这一点,或者事情太混乱,你需要一个插件来动态调整缩进设置。我的IndentConsistencyCop plugin检查缓冲区的缩进是否一致,是否符合制表符设置,然后提出根据检测到的设置调整设置。(插件页面有指向其他插件的链接。)
发布于 2014-06-26 15:02:40
我已经成功地使用了下面的函数(在web上的某个地方找到它)。把它放到你的.vimrc
里
function Kees_settabs()
if len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^\\t"')) > len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^ "'))
set noet
else
set et
endif
endfunction
autocmd BufReadPost * call Kees_settabs()
https://stackoverflow.com/questions/24424054
复制相似问题