我正在用vim编写一个LaTeX文档,并且我用80个字符进行硬包装以使阅读更容易。但是,这会导致跟踪版本控制中的更改时出现问题。例如,在本文开头插入“Lorem ipsum”:
1 Dolor sit amet, consectetur adipiscing elit. Phasellus bibendum lobortis lectus 2 quis porta. Aenean vestibulum magna vel purus laoreet at molestie massa 3 suscipit. Vestibulum vestibulum, mauris nec convallis ultrices, tellus sapien 4 ullamcorper elit, dignissim consectetur justo tellus et nunc.
结果:
1 Lorum ipsum dolor sit amet, consectetur adipiscing elit. Phasellus bibendum 2 lobortis lectus quis porta. Aenean vestibulum magna vel purus laoreet at 3 molestie massa suscipit. Vestibulum vestibulum, mauris nec convallis ultrices, 4 tellus sapien ullamcorper elit, dignissim consectetur justo tellus et nunc.
当我在git中查看这个更改时,它告诉我段落的所有行都因包装而发生了变化,即使只发生了一次语义变化。解决这个问题的一种方法是让每个句子都在自己的行上。这在渲染文档中看起来是一样的,但是源现在更难以阅读,因为每行具有完全不同的行长度:
1 Lorum ipsum dolor sit amet, consectetur adipiscing elit. 2 Phasellus bibendum lobortis lectus quis porta. 3 Aenean vestibulum magna vel purus laoreet at molestie massa suscipit. 4 Vestibulum vestibulum, mauris nec convallis ultrices, tellus sapien ullamcorper elit, dignissim consectetur justo tellus et nunc.
(如果我在80处软包装,事情看起来仍然很糟糕,只是以不同的方式。)
是否可以将我的文本放在磁盘上,每个句子有一个换行符,但是在vim中显示和编辑它,好像每个段落的文本是一条长行,软包裹为80个字符?我认为它需要一些vim-foo而不是调整git或LaTeX。
答案 0 :(得分:16)
无需引入奇怪的编辑政策:您正在寻找的git
功能正在使用git diff --color-words
来审核更改。
答案 1 :(得分:1)
我认为另一种方法是改变vim窗口的宽度,就像我通常做的那样:
首先,在.vimrc中添加“set wrap”以启用“wrap”功能;
为了在虚拟终端中运行vim,我总是将终端的窗口宽度设置为80个字符(如“urxvt -geometry 80x38”)。因此,无论何时我在虚拟终端中的vim中编辑文件,它都会在一行包含超过80个字符时自动换行。
如果你更喜欢gvim(gtk-vim,gnome-vim),你可以通过在.gvimrc中添加一行来设置gvim窗口的大小,比如“set lines = 38 columns = 80”。
希望有所帮助。 : - )
答案 2 :(得分:0)
我自己一直在想这样的事情,最后我不得不尝试一些不同的方法来看看哪些有效。我绝对不满意的一件事是硬伤(可以通过set textwidth=80
实现),原因如下:
gq
运算符的不同变体(例如gqip
,gqap
,可视模式然后gq
)在Vim中修复此问题,但这很乏味,我常常怀念gq
我的目标区域。这对我来说是艰难休息的最大劣势。 (如果您确实使用gq
来修复段落,则可能需要使用set nojoinspace
以避免在每个句点后出现恼人的双倍空格。)f
,F
,t
或T
在感官范围内导航。这仅适用于同一行。对我来说,使用软休息(并且每行有一个句子或段落)并不是我采用适合Git的“奇怪的编辑政策”。这是一个(可能是奇怪的)编辑策略,用于在编辑时提高便利性和效率。特别是在单词中间出现的软线断裂我同意看起来很难看,但可以使用set linebreak
来关闭。
另外,如果你每行使用一个段落,你应该获得与硬中断相同的“外观”(使用gq
正确维护),你可以在一个句子之间导航(
和)
。每行一个句子你会得到一个更粗糙的右边缘,但Git和Vim提供的优点是每行一个句子。尝试两种,看看你喜欢什么(我还没有决定)。
答案 3 :(得分:-1)
这就是我解决问题的方法。首先,您可以使用vim命令(在正常状态下)在您的tex文件中搜索超过80个字符的行:
/\%81v.\+/
您可以将其定义为宏,以免记住命令。然后输入正常状态
nF a
(即一点点“n”,一个大写“F”,一个空格“”,一个小“a”,一个“回车”和一个)。这有助于你在言语之后轻轻地打破你的界限。您可以将这五个击键记录为一个宏(如何:在正常状态下按“qa”开始录音,然后执行步骤“nF a”然后按Esc和“q”停止。播放时,按“@a “因为我们已经将宏存入”a“。要播放宏100次(如果你播放它太多次就不会受到伤害;它会在完成所有工作时自动停止)通过在正常情况下按”100 @ a“状态)
这会解决您的问题吗?