我有时希望Vim读取制表格式的文件,其中最合理的格式化意味着制表符宽度不均匀.换句话说,我想在一个位置停止制表符:
5,30,50,60,70,80
我怎么能在Vim中这样做?
如果您实际上不需要更改tabstops并且只需插入正确数量的空格就可以逃脱,我建议您编写脚本.这是一个快速而肮脏的版本,可能会做你想要的:
let s:tabstops = [0,5,80] fun! Find_next(pos) if a:pos > min(s:tabstops) && a:pos < max(s:tabstops) let my_count = 0 while my_count < len(s:tabstops) - 1 if a:pos > get(s:tabstops,my_count) && a:pos < get(s:tabstops,my_count+1) return get(s:tabstops,my_count+1) endif let my_count = my_count + 1 endwhile return -1 endif return -1 endfun fun! Tabbing() let pos = col('.') let next_stop = Find_next(pos) let the_command = "normal i" let my_count = 0 while my_count < next_stop - pos let the_command = the_command . " " let my_count = my_count + 1 endwhile let the_command = the_command . "" execute the_command endfun imap <TAB> j<ESC>:call Tabbing()<CR>lxi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。