在 TeXworks 中通过键盘快捷键插入代码片段

在 TeXworks 中通过键盘快捷键插入代码片段

我知道已经有人提出问题了(12) 关于在 TeXworks 中创建键盘快捷键。但是,这个讨论(也在提到的 Google 线程中)似乎有点过时了。

现在,可以通过文件shortcuts.ini(关联)以及通过将.txt文件添加到completion文件夹来获取关键字(关联,第 23 页)。

我想要实现的是:创建一个键盘快捷键(例如,ctrl++ ) shiftv插入一个代码片段,例如\vec{#INS#}•(它将插入代码片段\vec{},将光标移动到#INS#并在处添加占位符)。

虽然第一部分(为某些命令创建键盘快捷键)和第二部分(创建扩展为完整代码段的关键字)可以单独执行,但我无法让组合起作用 - 我只知道如何添加列在底部的命令的快捷方式解释。

任何有关如何执行所需任务的帮助都将不胜感激。如果我的问题不清楚,请告诉我。

答案1

我想挑战一下,回答一个没有答案或评论的古老问题。这可以通过使用 TeXWorks 中的脚本来实现(注意:我有一个TeXWorks 的自定义深色主题因此背景如下):

在此处输入图片描述

\vec{}创建自定义命令(在您的情况下)映射到键盘快捷键(在您的情况下为++ Ctrl)的步骤:Shiftv

  1. 从文件资源管理器转到:C:\Users\[Your User]\.texlive2022\texmf-config\texworks\scripts在 Windows 上以及在 Linux 或 Mac 上(我只使用 Windows,所以不太清楚)。
  2. 您的文件夹应该与此类似(假设您还没有自定义脚本):

在此处输入图片描述

  1. 在其中\.texlive2022\texmf-config\texworks\scripts创建一个名为“自定义”或类似名称的新文件夹。

  2. 打开记事本或等效的纯文本程序,命名它vec.js(需要是 .js、javascript。可以随意命名,只要它是唯一的)并将其保存在/scripts/Custom/.

  3. 右键单击并使用您想要的任何文本程序进行编辑vec.js,然后将以下内容粘贴到其中(.jsaddOrRemove代码归功于 Jonathan Kew):

// TeXworksScript
// Title: vec
// Description: Inserts \vec{} into text
// Author: JamesT (based on work by Jonathan Kew)
// Version: 0.1
// Date: 2022-02-16
// Script-Type: standalone
// Context: TeXDocument
// Shortcut: Ctrl+Shift+v

function addOrRemove(prefix, suffix) {
  var txt = TW.target.selection;
  var len = txt.length;
  var wrapped = prefix + txt + suffix;
  var pos = TW.target.selectionStart;
  if (pos >= prefix.length) {
    TW.target.selectRange(pos - prefix.length, wrapped.length);
    if (TW.target.selection === wrapped) {
      TW.target.insertText(txt);
      TW.target.selectRange(pos - prefix.length, len);
      return;
    }
    TW.target.selectRange(pos, len);
  }
  TW.target.insertText(wrapped);
  TW.target.selectRange(pos + prefix.length, len);
  return;
}

addOrRemove("\\vec{", "}•");
  1. 保存并关闭vec.js文件夹。打开 TeXWorks 并导航到Scripts->Custom文件夹以验证它是否已创建:

在此处输入图片描述

  1. Ctrl+ Shift+v来验证它已经起作用。

这就是如何在 TeXWorks 中通过键盘快捷键插入代码片段,它看起来非常有用,现在我也知道如何去做了,好问题!

相关内容