vim:下一行缩进比当前行多

问题描述 投票:0回答:1

我正在寻找一种方法来轻松地将下一行缩进比当前行更多。这与自动缩进相结合,应该会使编辑 yaml 文件变得更容易。

我认为可能的解决方案之一是为交互模式添加多个映射。 例如:

<space><newline> 
映射到
 <newline><tabstop number of spaces>

<space><space><newline>
映射到
<newline><tabstop number of spaces><tabstop number of spaces>

我尝试了

imap <8b>^M ^M<8b><8b>
,但没有成功。而且我也不知道为什么。

因此,如果您能帮助我找出为什么上述方法不起作用,或者建议我一个更优雅的解决方案,我将不胜感激。

vim
1个回答
0
投票

你已经非常接近了,只是你使用了错误的键。如果您为

<8b>
编写映射,则需要按 <8B>

以下映射最多适用于四级缩进。对于四个以上,我预计事情会变得混乱。

inoremap <Space><CR> <CR><Tab>
inoremap <Space><Space><CR> <CR><Tab><Tab>
inoremap <Space><Space><Space><CR> <CR><Tab><Tab><Tab>
inoremap <Space><Space><Space><Space><CR> <CR><Tab><Tab><Tab><Tab>

我还使用

:inoremap
1)一般原则和 2)因为我们不想触发其右侧的任何映射。

请注意,每次按空格时,这都会导致短暂的暂停,因为 Vim 会等待下一个键以及是否触发映射。编写文本时这可能会很烦人。

我也没有看到先断行然后调整缩进的任何主要优势,无论是按 tab 或退格键还是 Vim 的

<
>

通常的方法是让 Vim 根据缓冲区的内容获得正确的缩进。所以,不,我认为这不是一个好主意。原来可以这样做。

© www.soinside.com 2019 - 2024. All rights reserved.