关于elisp:让Emacs填充段落与类似Javadoc的注释配合使用

关于elisp:让Emacs填充段落与类似Javadoc的注释配合使用

Getting Emacs fill-paragraph to play nice with javadoc-like comments

我正在为工作中使用的APL方言编写Emacs主模式。 我已经
基本字体锁定可以正常工作,并且在设置注释开始和
注释-开始-跳过,注释/取消注释区域并填充段落
工作。

但是,注释块通常包含javadoc样式的注释,而我
想要填充段落以避免将线条开始粘在一起
用这样的命令。

如果我有这个(\而不是javadoc @):

1
2
3
4
# This is a comment that is long and should be wrapped.
# \\arg Description of argument
# \
et Description of return value

M-q给我:

1
2
3
4
5
# This is a comment that is long and
# should be wrapped. \\arg Description
# of argument \
et Description of
# return value

但是我想要:

1
2
3
4
5
# This is a comment that is long and
# should be wrapped.
# \\arg Description of argument
# \
et Description of return value

我尝试将段落开始和段落分隔设置为
适当的值,但填充段落仍无法在
评论块。 如果删除注释标记,则M-q可以根据需要工作
,因此我用于段落开头的regexp似乎有效。

我是否需要为我的专业写一个自定义的填充段落
模式? cc-mode可以处理这种情况,但实际上
复杂,如果可能,我想避免这种情况。


问题在于,段落开头的regexp必须匹配包括实际注释字符在内的整行才能工作。 以下elisp适用于我给出的示例:

1
(setq paragraph-start"^\\\\s-*\\\\#\\\\s-*\\\\\\\\\\\\(arg\\\\|ret\\\\).*$")

这是一个具有用于php-mode的正则表达式示例的页面,该页面可以执行以下操作:
http://barelyenough.org/blog/2006/10/nicer-phpdoc-comments/


在这些情况下,我要做的是在段落行和参数行之间打开空白行,然后使用M-q包裹段落行,然后杀死它们之间的空白行。 这不是理想的方法,但是它可以正常工作,并且如果需要重复,很容易在宏中进行记录。


还有其他模式的fill-paragraph-function使用的功能不太复杂。 浏览我的安装,看起来像是ada-mode和make-mode的例子。


推荐阅读

    linux切换成命令模式?

    linux切换成命令模式?,密码,系统,工具,模式,命令,首页,状态,图形界面,终端,

    linux命令行模式清页?

    linux命令行模式清页?,工作,系统,命令,信息,地址,目录,内容,文件,操作,功能,l

    linux命令字体太小?

    linux命令字体太小?,系统,等级,工具,数字,终端,字体,命令,字符,图形界面,系

    linux进入命令行模式?

    linux进入命令行模式?,系统,地址,情况,工作,命令,终端,首页,信息,目录,界面,l

    linux底线模式命令?

    linux底线模式命令?,系统,档案,密码,状态,工作,命令,模式,文件,明文,界面,lin

    linux脚本注释命令?

    linux脚本注释命令?,代码,系统,工作,名称,地方,脚本,命令,信息,状态,简介,lin

    linux命令标记注释?

    linux命令标记注释?,地址,基础,系统,底部,命令,文件,参数,注释,程序,控制台,3

    linux命令行设置字体?

    linux命令行设置字体?,系统,工具,终端,软件,电脑,数字,位置,等级,字体,命令,L

    linux启用命令模式?

    linux启用命令模式?,系统,密码,数字,首页,电脑,情况,终端,界面,模式,命令,安

    linux命令行模式联网?

    linux命令行模式联网?,系统,网络,地址,密码,软件,检测,信息,工具,终端,界面,l

    linux回到命令行模式?

    linux回到命令行模式?,系统,密码,状态,工具,电脑,终端,界面,环境,地方,命令,

    linux命令模式联网?

    linux命令模式联网?,网络,系统,工具,软件,密码,地址,最新,信息,工作,数据,lin

    linux进去命令模式?

    linux进去命令模式?,系统,密码,首页,终端,命令,界面,窗口,选项,桌面,用户,lin

    linux锁定帐户的命令?

    linux锁定帐户的命令?,系统,密码,情况,管理,工作,用户,帐户,账户,命令,权限,L

    linux命令模式全屏?

    linux命令模式全屏?,系统,工具,电脑,数据,位置,命令,虚拟机,分辨率,字符串,

    linux中回到命令模式?

    linux中回到命令模式?,系统,密码,情况,状态,终端,环境,信息,首页,界面,命令,

    linux命令行字体大小?

    linux命令行字体大小?,系统,等级,图片,数字,工具,终端,字体,字符,图形界面,

    linux锁定终端命令?

    linux锁定终端命令?,工作,密码,地址,系统,信息,命令,图片,状态,目录,用户,lin

    linux命令行模式6?

    linux命令行模式6?,系统,设计,信息,工作,终端,首页,庞大,服务,地方,环境,linu

    linux怎么用命令模式?

    linux怎么用命令模式?,工作,地址,系统,信息,管理,命令,目录,情况,图形界面,