我想在vim中更改tex文件中{
和}
的行为。
在tex文件中,段落通常用一个或多个空行分隔。
光标应该与段落的第一行上的nroff宏(例如.sh
)类似地放置,而不是在分隔的空白行上。 Afaik,调整:set paragraphs
不允许这样做(see here)。
值得注意的角落案例包括:\indent
,\noindent
,\paragraph{}
,\subparagraph{}
以及更多。不幸的是,全面的解决方案会非常复杂,请参阅https://tex.stackexchange.com/q/13085/in-how-many-ways-can-you-create-a-paragraph-in-latex。
但我不需要这个。即使我使用\paragraph{}
,我也会在其前面添加一个空行。
因此,此问题应限于空行并将光标放在下一个非空白行上。
jumplist
(与{
和}
相同的行为)。这个问题是由junegunn的插件limelight.vim
推动的。
答案 0 :(得分:0)
一种方法是:
nnoremap g} :call search('^$\n\s*\zs\S')<CR>
nnoremap g{ :call search('^$\n\s*\zs\S', 'b')<CR>
vimtex
折叠的部分)作为单个段落处理。'foldopen'
阻止设置(与{
和}
相同的行为)nnoremap <silent> g}
\ :let old = @/
\ <bar>/^$\n\s*\zs\S<CR>
\ <bar>:nohlsearch
\ <bar>call histdel('/', -1)
\ <bar>let @/ = old<CR>
nnoremap <silent> g{
\ :let old = @/
\ <bar>?\(^$\n\s*\zs\S\)\<bar>\%^<CR>
\ <bar>:nohlsearch
\ <bar>call histdel('/', -1)
\ <bar>let @/ = old<CR>
:set 'foldopen'
包含block
和search
(默认为默认)与{
和}
相同的关于弃号的行为jumplist
:使用CTRL-I
和CTRL-O
循环也是如此。 (:h jumplist
)hlsearch
已关闭。如果用户想要保留当前搜索并希望突出显示它们,则必须进一步改进映射。可能会发生闪烁。g{
从第一段跳到最后一段,g}
从最后一站跳到第一段(与{
和}
的行为不同)dg}
不起作用(运营商+ g}
/ g{
)。在这种情况下,无论如何我更喜欢d}
。