我在Vim中执行80列指示的方式似乎不正确: set columns=80 。 有时我还set textwidth ,但是我希望能够用set columns替代项来查看和预期行溢出。

这有一些不幸的副作用:

  1. 我不能set number ,因为担心在行号顺序不同的文件之间进行拆分; 即<100行文件和> = 100行文件将需要两个不同的set columns值,因为用于额外数字显示的额外列。
  2. 我也开始新的(g)Vim会话,而不是垂直拆分窗口。 这是因为vsplit在每次打开或关闭窗格时强制我set columns ,因此开始新会话的麻烦就少了。

当您要set numbers ,垂直分割等时,如何处理80个字符的指示?


#1楼

较短的方法:

match ErrorMsg '\%>80v.\+'

#2楼

这是在左字段之外,但是它有一个不错的小地图,用于在行号位于以下位置时将当前拆分大小调整为80个字符:

" make window 80 + some for numbers wide
noremap <Leader>w :let @w=float2nr(log10(line("$")))+82\|:vertical resize <c-r>w<cr>

#3楼

简约的,非主流的方法。 仅太长的行的第79个字符会突出显示。 它克服了一些常见问题:在新窗口上工作,溢出的单词正确突出显示。

augroup collumnLimitautocmd!autocmd BufEnter,WinEnter,FileType scala,java\ highlight CollumnLimit ctermbg=DarkGrey guibg=DarkGreylet collumnLimit = 79 " feel free to customizelet pattern =\ '\%<' . (collumnLimit+1) . 'v.\%>' . collumnLimit . 'v'autocmd BufEnter,WinEnter,FileType scala,java\ let w:m1=matchadd('CollumnLimit', pattern, -1)
augroup END

注意:请注意FileType scala,java将此限制为Scala和Java源文件。 您可能需要对此进行自定义。 如果您忽略它,它将适用于所有文件类型。


#4楼

恐怕您对解决方案集施加了约束,好让您留空集。

使用:set textwidth=80可以解决您提到的所有问题, 您不能轻易看到行数限制。 如果:set ruler:set ruler启用状态栏上的x,y位置显示,可用于查看您所在的列。

除此之外,我不确定该告诉您什么。 失去number列,fold列并拆分仅是因为您必须:set columns=80


#5楼

较新版本的vim允许:set numberwidth=x值,该值设置行号显示的宽度。 我实际上并没有使用折叠等功能,因此我对此一无所知。 但是,绘制一条细的垂直线超出了控制台应用程序的能力。 GVim可能允许这样做(我不使用它,所以不能在此处发表评论)。


#6楼

您可以尝试以下方法:

au BufWinEnter * if &textwidth > 8
\ | let w:m1=matchadd('MatchParen', printf('\%%<%dv.\%%>%dv', &textwidth+1, &textwidth-8), -1)
\ | let w:m2=matchadd('ErrorMsg', printf('\%%>%dv.\+', &textwidth), -1)
\ | endif

这将在每个缓冲区中设置两个突出显示,一个用于突出显示&textwidth之前的8列中的字符,另一个用于突出显示该列之外的字符。 这样一来,您便有了一定程度的期望。 当然,如果您希望或多或少地期望(您以这些列中语法突出显示的损失形式付费),则可以调整它以使用不同的宽度。


#7楼

我在我的.vimrc中进行了设置:

highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/

对于超过80列限制的文本,这会以微妙的红色突出显示背景(无论如何,在GUI模式下都是微妙的-在终端模式下则是如此)。


#8楼

标记仅第一个字符超出指定范围的好方法:

highlight ColorColumn ctermbg=magenta "set to whatever you like
call matchadd('ColorColumn', '\%81v', 100) "set column nr

从Damian Conway的讲话中 。


#9楼

您也可以画线以查看80个限制:

let &colorcolumn=join(range(81,999),",")
let &colorcolumn="80,".join(range(400,999),",")

结果:


#10楼

西蒙·霍华德的答案很好。 但是/\\%81v.\\+/无法突出显示超过列81的选项卡。 因此,根据我在VIM Wiki上发现的内容以及HS上面的颜色选择,我做了一些调整:

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%>80v.\+/

现在,VIM将突出显示超出第80列的所有内容。


#11楼

我更喜欢:

highlight ColorColumn ctermbg=gray
set colorcolumn=80

#12楼

从vim 7.3开始,您可以使用set colorcolumn=80 (简称set cc=80 )。

由于早期版本不支持此功能,因此我的.vimrc使用:

if exists('+colorcolumn')set colorcolumn=80
elseau BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
endif

另请参阅有关colorcolumn选项的在线文档 。


#13楼

好吧,看着:help列,并没有使它变得混乱。

在控制台中,通常由控制台设置确定(即自动检测到); 在GUI中,它确定gvim窗口的宽度(并由其确定)。

因此,通常您只需注释掉set columns即可让控制台和窗口管理器执行工作

我不确定“看到并预期行溢出”是什么意思。 如果希望将EOL粗略插入到第80列,请使用set textwidthset wrapmargin ; 如果您只想进行自动换行(即换行,但没有实际的停产期),请使用set linebreakset showbreak


#14楼

您可以尝试将窗口大小设置为允许80个字符的实际文本。 但是,这仍然不适用于垂直分割。

let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)

这需要vim 7+,相对数为7.3。

Vim 80列布局问题相关推荐

  1. 纯CSS无hacks的跨游览器多列布局(转)

    转自:http://www.cnblogs.com/rubylouvre/archive/2009/07/15/1523683.html 翻译自Matthew James Taylor的Equal H ...

  2. CSS多列布局(实例)

    前言 一列布局 二列布局 三列布局 1 一列布局 一列布局: HTML部分 <!DOCTYPE html> <html> <head> <meta chars ...

  3. 1.CSS3 教程-> 多列布局 > image模块 > cssTransition 过渡 > CSS Animations 动画 > Transform二维

    CSS3 教程 多列布局 image模块 cssTransition 过渡 CSS Animations 动画 Transform二维 介绍 CSS3 是层叠样式表(Cascading Style S ...

  4. 纯CSS无hacks的跨游览器多列布局

    利用纯CSS创建一个等高多列的布局并不件易事,本教程将着重分析出现在多列布局的多个问题,然后为大家等来一个简单全游览器通吃的解决方法,不使用图片,脚本,CSS hacks并在最严格的XHTML 规范中 ...

  5. html5+css 两列布局

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  6. html三列布局中间固定,常见的三列布局(左右固定宽度,中间自适应)

    实现css中的三列布局,左右固定宽度,中间自适应.三列布局方式的关键是怎么样才能使得在伸缩浏览器窗口的时候让中间的子元素宽度改变.比较常见的实现方案是:定位,浮动,css3中新特性flex布局,以及流 ...

  7. CSS布局代码:两列布局实例

    CSS两列布局,右侧固定,左侧自适应宽度 <div style="width:90%; margin:0 auto;"> <div style="wid ...

  8. HTML5column属性布局页脚,利用column多列属性调整页面文字列布局

    column多列属性 column-count:栏目数 兼容性写法: CSS Code复制内容到剪贴板 -webkit-column-count:3 -moz-column-count:3 colum ...

  9. CSS布局——横向两列布局

    1.固定两栏布局,使用float,注意对紧邻元素清除浮动影响.IE6在使用float布局同时设置横行margin的情况下会有双边距BUG,解决方案是加入_display:inline 代码如下: &l ...

最新文章

  1. 第十一届山东省大学生程序设计竞赛题解(9 / 13)
  2. 浅析Android中的消息机制
  3. 2017.7.6 linux 搭建ssh服务器 scp
  4. 电大2007计算机机考专科试题,中央电大2007-2008学年度第一学期期末考试计算机网络专业计算机网络试题2008年1月...
  5. xUtils网络超时设置configCurrentHttpCacheExpiry和SoTimeout和connectionTimeout的区别
  6. git 开源 java_开源中国GIT中Java分类下TOP10项目的活动情况分析
  7. navicat循环执行上下两行相减sql语句_SQL语句的优化分析
  8. 【学习笔记】DAG / 一般有向图的支配树 / 灭绝树
  9. Google Guava –与Monitor同步
  10. “约见”面试官系列之常见面试题之第六十篇之事件绑定和普通事件(建议收藏)
  11. python --条件判断和语句控制
  12. Chromedriver的安装
  13. 戴尔t140服务器价格型号,戴尔_PowerEdge T140塔式服务器_企业服务器_网络存储服务器 | Dell 中国大陆...
  14. python处理文件格式_python处理文本文件并生成指定格式的文件
  15. 2018-2019-1 20165212 《信息安全系统设计基础》第八周学习总结(pwd)
  16. YUY2转RGB 的各种版本
  17. 皮肤变好必遵守洗脸九法
  18. 工业相机快门类型:卷帘快门和全局快门——哪个最好?
  19. Vue3学习之旅--Composition-API-入门篇
  20. 最新价值800元的720全景云系统源码 可生成小程序带PC端 附新手搭建教程

热门文章

  1. RxJava 从源码到使用
  2. 滴滴哆啦A梦源码解析
  3. 算法----------找到 K 个最接近的元素
  4. Android socket 编程 实现消息推送(二)
  5. Jquery mobile技术咖们走进来瞧瞧吧
  6. KafkaProducer初始化时涉及到哪些核心组件?
  7. Java深拷贝与浅拷贝
  8. Swift直接解析YApi接口为模型
  9. Flutter开发之ListView组件(21)
  10. uniapp添加顶部导航栏颜色渐变