vim设置tab宽度为4_vim编辑器VimScript插件开发系列一「定制Vim 3」

8006c9232e874c1720bc41c1030b4757.png

编辑器之神

本系列教程针对对Vim编辑器感兴趣,并使用过一些时间,想自己开发Vim插件的小伙伴。有任何问题(无论您是新手还是老手)都可以留言私信我,一定尽力帮忙,如果您觉得有用请帮忙点个赞。我会不定时发一些技术文章,您可以关注我,查看我的更新状态。

Vim 的设计哲学是:如果用户曾经为某件事物写过一次,那就不需要再写第二次。

修改标签页

  • vim
:set tabline tabline-layout
  • gvim
:set guitablabel

用户要时刻注意标签页是否处于 活跃状态

例子:只显示缓冲区文件名的前6个字母,而且当前活跃的标签名以红底白字的方式呈现。

function! ShortTabLine() let ret = '' for i in range(tabpagenr('$')) " select the color group for highlighting active tab if i + 1 == tabpagenr() let ret .= '%#errorMsg#' else let ret .= '%#TabLine#' endif " find the buffername for the tablabel let buflist = tabpagebuflist(i+1) let winnr = tabpagewinnr(i+1) let buffername = bufname(buflist[winnr - 1]) let filename = fnamemodify(buffername, ':t') " check if there is no name if filename == '' let filename = 'noname' endif " only show the first 6 letters of the name and .. if the filename is more than 8 letters long if strlen(filename) >= 8 let ret .= '['. filename[0:5] . '..]' else let ret .= '[' . filename . ']' endif endfor " after the last tab fill with TabLineFill and reset tab page # let ret .= '%#TabLineFill#%T' return retendfunction

vimrc 中添加函数,并设置一个命令:

:set tabline=%!ShortTabLine()

命令执行结果如下:

13c0d95aaae7f5deeacfc0c02be07c38.png

tab标签页

Gvim中实现以上的效果:

function! ShortTabLine() let bufnrlist = tabpagebuflist(v:lnum) " show only the first 6 letters of the name + .. let label = bufname(bufnrlist[tabpagewinnr(v:lnum) - 1]) let filename = fnamemodify(label, ':h') " only add .. if string is more than 8 letters if strlen(filename) >= 8 let ret = filename[0:5].'..' else let ret = filename endif return retendfunction

设置 guitablabel属性:

:set guitablabel=%{shortTabLine()}

效果:

4e10022d4fc73360b3c89e3f12d3bc0a.png

gvim下的tab标签

给标签栏添加提示信息:

function! InfoGuiTooltip() " get window count let wincount = tabpagewinnr(tabpagenr(), '$') let bufferlist = '' " get name of active buffers in windows for i in tabpagebuflist() let bufferlist .= '[' . fnamemodify(bufname(i), ':t') . ']' endfor return bufname($) . ' windows: ' . wincount . ' ' . bufferlist ' 'endfunction

设置命令:

:set guitabtooltip=%!InfoGuiTooltip()

显示效果:

220d62cd1bd3a0ca8849102d476881ed.png

tab标签提示信息

每次学一点,脚踏实地每一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值