我需要在 Gedit 中添加一种新语言。问题是,它现在包含在语言的 Gedit 菜单中,但它的语法没有突出显示,并且 Gedit 无法仅从文件后缀中识别语言。
我已经创建了 .lang 文件和描述 MIME-TYPE 的 XML 文件。
LANG file - /usr/share/gtksourceview-3.0/language-specs/test.lang
MIME-TYPE file - /usr/share/mime/packages/test.xml
Run Code Online (Sandbox Code Playgroud)
创建它们后,我更新了 mime 数据库。
sudo update-mime-database /usr/share/mime
Run Code Online (Sandbox Code Playgroud)
1)我什test.xml至尝试将文件复制到/usr/share/mime/applications文件夹而不是/usr/share/mime/packages,但没有效果。
2)我尝试将 mime 类型放入/etc/mime.typesas
text/x-test test
它也没有效果。
<?xml version="1.0" encoding="UTF-8"?>
<language id="test" _name="Test" version="1.0" _section="Source">
<metadata>
<property name="mimetypes">text/x-test</property>
<property name="globs">*.test</property>
<property name="line-comment-start">//</property>
<property name="block-comment-start">/*</property>
<property name="block-comment-end">*/</property>
</metadata>
<styles>
<style id="comment" _name="Comment" map-to="def:comment"/>
<style id="keyword" _name="Keyword" map-to="def:keyword"/>
</styles>
<definitions>
<context id="if0-comment" style-ref="comment">
<start>\%{preproc-start}if\b\s*0\b</start> …Run Code Online (Sandbox Code Playgroud) 我有一个数组
declare -a arr0=("'1 2 3'" "'4 5 6'")
Run Code Online (Sandbox Code Playgroud)
和一个变量
x=0
Run Code Online (Sandbox Code Playgroud)
然后我用数组的名称创建新变量
tmp="arr$x"
Run Code Online (Sandbox Code Playgroud)
我希望能够像这样扩展arr0这个tmp变量的内容
newArr=( "${!tmp}" )
Run Code Online (Sandbox Code Playgroud)
并newArr像普通数组一样使用,例如使用索引等。
但是当我现在尝试打印时,它看起来像这样:
$ echo ${newArr[@]}
'1 2 3'
Run Code Online (Sandbox Code Playgroud)
只存储了第一个元素,我不知道如何修复它。
我也试过newArr像这样创建
newArr=( "${!tmp[@]}" )
Run Code Online (Sandbox Code Playgroud)
但更糟糕的是 - 只打印了 0。
$ echo ${newArr[@]}
0
Run Code Online (Sandbox Code Playgroud)
那么,您知道如何使用数组,如果其名称存储在其他变量中吗?