gpt4 book ai didi

展开 html 标签后的 Vim 光标位置

转载 作者:行者123 更新时间:2023-12-04 00:58:39 26 4
gpt4 key购买 nike

我在大多数 IDE 和现代文本编辑器(Sublime Text 3)中,在 html 标签(又名“扩展”标签)之间插入换行符后,光标会正确缩进:

之前:

<div>|</div>

按 CR 后:
<div>
|
</div>

但在 Vim 中,这就是我得到的:
<div>
|</div>

如何在 Vim 中获得与大多数其他编辑器相同的行为(见上文)?

最佳答案

<CR> 唯一正确的行为在插入模式下是在光标处换行。

你想要的是一个增强的行为,你需要在你的配置中添加一些东西来获得它:一个映射、一个简短的函数或一个完整的插件。

当我开始使用 vim 时,这种行为实际上是我添加到 vimrc 中的第一件事。过去我已经多次更改它,但此映射一段时间以来一直非常稳定:

inoremap <leader><CR> <CR><C-o>==<C-o>O

我用过 <leader><CR>保持 <CR> 的正常行为.

这是一个小函数,似乎可以满足您的需求:
function! Expander()
let line = getline(".")
let col = col(".")
let first = line[col-2]
let second = line[col-1]
let third = line[col]

if first ==# ">"
if second ==# "<" && third ==# "/"
return "\<CR>\<C-o>==\<C-o>O"

else
return "\<CR>"

endif

else
return "\<CR>"

endif

endfunction

inoremap <expr> <CR> Expander()

关于展开 html 标签后的 Vim 光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com