gpt4 book ai didi

Vim:使 退出插入模式的函数,除非在行尾

转载 作者:行者123 更新时间:2023-12-04 18:32:22 24 4
gpt4 key购买 nike

如何制作<CR>当光标 (*) 在一行内时退出插入模式?喜欢:

" pressing <CR> should exit insert mode (in either case)
Lorem *ipsum dolor
Lorem ipsum dol*or

还要制作<CR>当光标在 EOL 时插入换行符?

" pressing <CR> when cursor @ EOL
Lorem ipsum dolor*
Fusce leo quam

" results in
Lorem ipsum dolor
*
Fusce leo quam

同时使这两者成为可能的函数是什么样的?

理由:在维护文档时,我发现我会进行小笔画(即转到 word、更改它、退出)。对我来说,这些笔画是我想要“输入”的 Action (比如在聊天窗口中发送消息)。所以有 <CR> exit insert 允许我在维护时保持这种心智模型。另一方面,<CR>作曲时显然很有用。幸运的是,有足够的上下文使两者同时成为可能——我只是还没有 vimscript 技能。这会教我一些 :)

最佳答案

您可以使用表达式映射实现依赖于某些条件的映射;参见 :help :map-expression。我们可以通过 col() 函数检查行尾的光标,如下所示:

:inoremap <expr> <CR> col('.') == col('$') ? '<CR>' : '<Esc>'

关于Vim:使 <CR> 退出插入模式的函数,除非在行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387819/

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