【问题标题】:Vim statusline: show the character itselfVim 状态行:显示字符本身
【发布时间】:2017-03-23 08:19:31
【问题描述】:

有没有办法在状态栏中显示光标下的字符?

我已经使用%b\ (0x%B) 来显示字符的十进制和十六进制值。我想在这两个之前显示字符本身。

【问题讨论】:

    标签: vim character statusline


    【解决方案1】:

    没有预定义的项目(在:help 'statusline' 下列出,但您可以使用自定义表达式(项目%{...})来实现它:

    let &statusline .= "%{matchstr(getline('.'), '\\%' . col('.') . 'c.')}"
    

    (我使用:let 而不是:set 以避免转义所有空格;这样更易读。)

    getline('.')获取当前行,通过匹配某列的特殊\%c原子检索光标下的字符; col('.') 是当前列。 . 然后匹配那里的字符,matchstr() 提取它。

    【讨论】:

    • 优秀的解决方案!效果很好,这是一个小的改进,它用两个字符填充以处理两个字符宽的 Unicode 字符,如果你落在空行上,将保留这两个空格。这样,无论如何,表达式的长度始终保持为 2。 let &statusline .= "%2.2(%{matchstr(getline('.'), '\\%' . col('.') . 'c.')}%)"
    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 2015-10-03
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2015-04-01
    • 2011-08-17
    相关资源
    最近更新 更多