请教一下,如何让VIM换行的时候自动加上行号

Vim、Emacs配置和使用
回复
头像
xinu
帖子: 130
注册时间: 2010-12-20 14:01
送出感谢: 10 次
接收感谢: 0

请教一下,如何让VIM换行的时候自动加上行号

#1

帖子 xinu » 2013-03-24 11:57

如图所示:

第一行换行接下一行时,没有加上行号,我希望像2、3行这样,一换行就默认为新的一行(加上行号),因为有时候一段东西太多的话都当成是一行中的内容,用行号来跳转的话有时候还要移动很多才能到达自己想要的位置(主要是我水平菜),如果每行都能是新的一行的话用行号来跳转就可以很方便地缩小范围,感觉效率会高点。所以特来请教各位大侠了 :em01
附件
VIM换行.jpg
本人linux菜鸟,请各位大虾原谅我的无知和愚蠢
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01
送出感谢: 2 次
接收感谢: 15 次

Re: 请教一下,如何让VIM换行的时候自动加上行号

#2

帖子 Fermat618 » 2013-03-24 12:31

那个不是真正的一行,是屏幕行,是因为一行太长,屏幕放不下了,折叠过来的。

要是有比较多的太行的行的话,我是用下面的代码切换长短行模式。

代码: 全选

function MapFlow()
   noremap <buffer> j gj
   noremap <buffer> k gk
   noremap <buffer> 0 g0
   noremap <buffer> ^ g^
   noremap <buffer> $ g$
   let b:old_textwidth=&l:tw
   setl tw=0
endfunction

function UnMapFlow()
   unmap <buffer> <silent> j
   unmap <buffer> <silent> k
   unmap <buffer> <silent> 0
   unmap <buffer> <silent> ^
   unmap <buffer> <silent> $
   if exists('b:old_textwidth')
      exec 'setl tw=' . b:old_textwidth
   endif
endfunction

command MapFlow :call MapFlow()
command UnMapFlow :call UnMapFlow()
command MF :call MapFlow()
command UMF :call UnMapFlow()
vim 中不推荐使用太行的行,而是限定一个行宽,然后自动或手动折行。一般推荐行宽在 80 列以内。

代码: 全选

set textwidth=78
这些用户感谢了作者 Fermat618 于这个帖子:
xinu (2013-03-24 12:55)
评价: 3.7%
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
xinu
帖子: 130
注册时间: 2010-12-20 14:01
送出感谢: 10 次
接收感谢: 0

Re: 请教一下,如何让VIM换行的时候自动加上行号

#3

帖子 xinu » 2013-03-24 12:54

Fermat618 写了:那个不是真正的一行,是屏幕行,是因为一行太长,屏幕放不下了,折叠过来的。

要是有比较多的太行的行的话,我是用下面的代码切换长短行模式。

代码: 全选

function MapFlow()
   noremap <buffer> j gj
   noremap <buffer> k gk
   noremap <buffer> 0 g0
   noremap <buffer> ^ g^
   noremap <buffer> $ g$
   let b:old_textwidth=&l:tw
   setl tw=0
endfunction

function UnMapFlow()
   unmap <buffer> <silent> j
   unmap <buffer> <silent> k
   unmap <buffer> <silent> 0
   unmap <buffer> <silent> ^
   unmap <buffer> <silent> $
   if exists('b:old_textwidth')
      exec 'setl tw=' . b:old_textwidth
   endif
endfunction

command MapFlow :call MapFlow()
command UnMapFlow :call UnMapFlow()
command MF :call MapFlow()
command UMF :call UnMapFlow()
vim 中不推荐使用太行的行,而是限定一个行宽,然后自动或手动折行。一般推荐行宽在 80 列以内。

代码: 全选

set textwidth=78
太强大了,那个代码虽然看不太懂,但感觉学到不少东西了,非常感谢 :em11
本人linux菜鸟,请各位大虾原谅我的无知和愚蠢
回复

回到 “Vim和Emacs”