gpt4 book ai didi

Vim: "gq"命令对注释进行硬换行,但不是对代码进行换行(即使中间没有空行)

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

我的 Vim 配置包括 set formatoptions=c,q,a。我对以下问题感到非常恼火(| 表示光标位置,其确切位置并不重要,因为您可能只知道它在此注释行中存在的事实很重要):

" This is a long line which we would like to wrap. However, something sick is go|ing to happen if we hit "gqip" here!
if has('win32') || has('win64')
set runtimepath^=~/.vim
set runtimepath+=~/.vim/after
endif

现在我们点击gqip:

" This is a long line which we would like to wrap. However, something sick is
" go|ing to happen if we hit "gqip" here!
if has('win32') || has('win64') set runtimepath^=~/.vim set
runtimepath+=~/.vim/after endif

它的作用是 - 它实际上将整个事情视为一个段落。 (是的,我知道用空行分隔可以防止这种行为,但它不能解决问题!)我希望它确实是:

" This is a long line which we would like to wrap. However, something sick is
" go|ing to happen if we hit "gqip" here!
if has('win32') || has('win64')
set runtimepath^=~/.vim
set runtimepath+=~/.vim/after
endif

换句话说,如果 gq 能够以某种方式忘记代码并仅使用注释,那就太好了。

奖励:如何一次对整个缓冲区进行这种格式化(包装评论)?因为,理想情况下我想将这些内容移动到特殊的格式 Hook 以保存文件。

最佳答案

it actually treats the whole thing as a single paragraph

好吧,对于gqip,你告诉它的!您需要选择正确的 Action 。在本例中,如果是单行,则为 gqq。对于 3 行,即 gq2j。如果行数过多而无法计数,请使用可视模式:Vjjjjjjgq

关于Vim: "gq"命令对注释进行硬换行,但不是对代码进行换行(即使中间没有空行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811219/

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