首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vim硬制或软制表符取决于文件中使用的内容

Vim硬制或软制表符取决于文件中使用的内容
EN

Stack Overflow用户
提问于 2014-06-26 14:46:40
回答 4查看 672关注 0票数 2

是否有vim命令或插件可以跨越我正在打开的源文件,并将我的tab设置调整为文件中使用的任何内容。

我目前工作的代码库种类繁多,一些源文件使用硬标签,其他4个空间软标签,以及其他2个空间软标签。我的硬制表符,如果我忘记更改,如果我在编辑软制表符文件时忘记更改,可能会在不同的编辑器中导致丑陋的空格。

我不希望每次打开缓冲区时都要记得检查文件中使用的任何约定,并相应地调整我的首选项。

EN

回答 4

Stack Overflow用户

发布于 2014-06-26 15:17:45

我使用yaifa取得了巨大的成功。它几乎是一个“安装并忘记”的插件,它可以做到它所说的那样,而不会妨碍到它。在乱七八糟的环境中工作是很可怕的,直到我找到了那块宝石。

票数 3
EN

Stack Overflow用户

发布于 2014-06-26 14:58:09

如果大多数人在工作中使用Vim (和/或Emacs),您可以在文件本身中编码缩进设置,请参阅:help modeline (至少Emacs有类似的设置)。当然,就一个共同的设置达成一致并逐步迁移到它会更好:-)

如果你不能做到这一点,或者事情太混乱,你需要一个插件来动态调整缩进设置。我的IndentConsistencyCop plugin检查缓冲区的缩进是否一致,是否符合制表符设置,然后提出根据检测到的设置调整设置。(插件页面有指向其他插件的链接。)

票数 0
EN

Stack Overflow用户

发布于 2014-06-26 15:02:40

我已经成功地使用了下面的函数(在web上的某个地方找到它)。把它放到你的.vimrc

代码语言:javascript
运行
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24424054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档