![TeXworks 自动完成](https://linux22.com/image/269801/TeXworks%20%E8%87%AA%E5%8A%A8%E5%AE%8C%E6%88%90.png)
TeXworks 自动完成功能不完整、混乱且不可预测。有没有办法将 TeXStudio 自动完成数据迁移到 TeXworks?
答案1
TeXstudio 和 TeXworks 在自动完成信息方面采取了略有不同的方法,至少部分原因是这两个程序的目的略有不同(TeXstudio 是 LaTeX 编辑器,TeXworks 是 TeX 编辑器,因此至少在核心中 LaTeX 特定部分较少)。话虽如此,使用 TeXstudio 的自动完成信息来增强或替换 TeXworks 中的自动完成信息当然是可能的。
TeXstudio 将自动完成信息按包逐个存储在一系列.cwl
文件中。这些是简单的纯文本文件,并且可从 SourceForge 获取(您必须选择 SVN 修订版本:在链接中,我选择了撰写本文时的最新版本)。信息似乎没有以纯文本格式保存在发布代码中:大概是“嵌入”到二进制文件/库中。示例文件是数组.cwl
# mode: array.sty
# dani/2006-02-18
\extrarowheight
\extratabsurround
\firsthline
\lasthline
\newcolumntype{name}{argument}
\showcols
TeXworks 将补全数据存储在一系列名为的文件中,tw-<name>.txt
这些文件位于 TeXworks 配置树中(系统相关位置是另一个问题)。以下摘录tw-basic.txt
并tw-latex.txt
显示了以下格式:
%%!TEX encoding = UTF-8 Unicode
xa:=\alpha
\xa:=\alpha
\bigskip#RET#
\hskip
ncm:=\newcommand{#INS#}{•}#RET#
第一行存在于所有文件中tw-<name>.txt
,并且很可能是必需的。此后,每行都是一个自动完成条目。格式为:
- 行以要匹配的(部分)文本开头,例如
xa
或\hskip
。这是唯一必需的部分。 - A
:=
将“短文本”与“完成结果”分开,但如果两者相同,则不需要 #RET#
代表回车符#INS#
表示自动完成后光标停留的位置•
是一个允许光标“快速”移动的标记。
正如您所看到的,TeXstudio 格式实际上比 TeXworks 格式简单。因此,转换似乎需要以下步骤:
- 下载
.cwl
您想要的文件 - 重命名为
tw-<name>.txt
- 添加初始
%%!TEX encoding = UTF-8 Unicode
行(假设您将它们全部保存为 UTF-8) - 删除前两行,或者至少将其替换
#
为%
注释 - 将新文件放入 TeXworks
completion
文件夹中 - 重新启动 TeXworks
另外:TeXworks 自动完成材料源自 TeXShop,我相信或多或少是逐字逐句的。TeXworks 开发人员几乎肯定会欢迎这方面的改进,因此值得考虑与他们讨论这个问题。例如,允许选择单个自动完成文件的界面将使 TeXworks 在自动完成方面非常接近 TeXstudio(可以使用脚本自动启用完成文件)。