【问题标题】:Show VIM's listchars only on selected area仅在选定区域显示 VIM 的列表字符
【发布时间】:2014-05-20 05:50:42
【问题描述】:

我正在尝试将 VIM 设置为像任何其他编辑器一样工作,并仅在选定的文本区域上显示特殊字符(制表符、空格),如下所示:

如果我在我的.vimrc 中设置这个:

set list
set listchars=tab:——,trail:⋅,nbsp:⋅

特殊字符将在整个文件中可视化。我的问题是:如何显示我附加的图像中的特殊字符? (仅选定区域)

【问题讨论】:

    标签: vim highlight vim-syntax-highlighting


    【解决方案1】:

    来自:help 'list'

    'list'            boolean (default off)
                      local to window
    

    Vim 没有实现仅限于某些行或选择的范围。 你想要的是不可能的。你能做的最好的就是解决这个问题,例如:

    • 始终打开'list',但选择颜色时,字符仅在背景颜色不同时可见(即选择处于活动状态的位置)。
    • 在选区周围创建两个额外的窗口分割,并且只在中间一个启用'list'。这仅适用于静态选择,您无法再进行导航。

    【讨论】:

    • 我将如何做第一个选项?如何根据当前颜色选择 fg/bg 颜色?
    • 动态地做这件事会很困难。我的意思是为SpecialKey 选择黑色前景色(如果你有黑色背景)。然后,只有在灰色选择处于活动状态时,listchars 才会在默认背景下可见。
    • 我建议不要使用任何此类解决方法;根据 Peter Rincker 的回答切换的方法在 Vim 中更自然。
    【解决方案2】:

    我不知道有什么方法可以做这样的事情。我发现通常很难尝试将 Vim 塑造成与其他编辑器一样。一种更类似于 vim 的方法是设置一个映射来切换 'list' 可能是这样的

    nnoremap col :set list!<cr>:set list?<cr>
    

    此映射将通过col 转换'list' 选项(读取更改选项列表)。 Tim Pope 的Unimpaired 插件提供了这种映射以及更多有用的映射。

    【讨论】:

    • 如果这里没有其他内容,我可以回退到这里,但这绝对完全不是我正在寻找/要求的:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多