#+title: 各种开发工具配置 #+author: Zedhugh Chen * Indium =Indium= 是一个可以在 =Emacs= 里直接调试运行在 =Chrome= 中的 =JavaScript= 的软件。 感觉双屏用这个软件应该会很爽。安装使用步骤如下: ** 安装服务端 #+BEGIN_SRC shell npm install -g indium #+END_SRC ** 安装 =Emacs= 客服端 #+BEGIN_SRC emacs-lisp ;; 直接从melpa源里安装 (require-package 'indium) ;; 配置 (require 'indium) (add-hook 'js-mode-hook 'indium-interaction-mode) #+END_SRC ** =indium= 配置文件: =.indium.json= #+BEGIN_SRC json { "configurations": [ { "name": "Indium Demo", "type": "chrome", "host": "0.0.0.0", "post": 9222, "url": "http://0.0.0.0:3000" } ] } #+END_SRC 配置项说明: =name=: 随便起一个就好 =type=: =Chrome= 调试直接写 =chrome= 就行了,其他参考[[https://indium.readthedocs.io/en/latest/setup.html][Indium Setup]] =host=: 本地调试地址 =port=: =Chrome= 的调试协议端口号,和项目无关,和 =Chrome= 的启动参数有关 =url=: 项目的首页地址,按项目设置 ** 启动 =Chrome= 在命令行里启动 =Chrome= 的时候带上参数 #+BEGIN_SRC shell chrome --remote-debugging-port=9222 #+END_SRC 在 =Gentoo= 里面,自己编译的 =Chromium= 中,有个配置文件 =/etc/chromium/default= , 其中有 =CHROMIUM_FLAGS= 配置项,将其设置为上面启动参数的内容即可。即: #+BEGIN_SRC conf CHROMIUM_FLAGS="--remote-debugging-port=9222" #+END_SRC ** 开始调试 在要调试的 =JavaScript= 文件中执行 =Emacs= 命令 =indium-connect= 即可开始调试 #+BEGIN_SRC emacs-lisp (indium-connect) #+END_SRC 用快捷键或 =Indium= 插件提供的命令加入断点,即可开始愉快的调试了。 更多用法参考[[https://indium.readthedocs.io/en/latest/index.html][Indium手册]]。 * Input method 有时候输入法在 =firefox= 中不工作,这是因为设置不对造成的,通过查询资料,最终 在 [[https://wiki.archlinux.org/index.php/Smart_Common_Input_Method][archwiki]] 中找到方法,将 =.xprofile= 文件中的 #+BEGIN_SRC bash export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim" #+END_SRC 改成 #+BEGIN_SRC bash export XMODIFIERS=@im=SCIM export GTK_IM_MODULE="xim" export QT_IM_MODULE="scim" #+END_SRC 即可解决该问题。 ** rime升级问题 =librime= 升级到 =1.5.3= 版本时, =fcitx-rime= 无法使用,同时在 =Emacs= 中通过 =pyim= 使用 =rime= 输入法也没法工作,通过安装 =ibus-rime= 测试,发现也不工作, 但将 =librime= 降回 =1.4.0= 版本时,汉字可正常输入,故判定该问题是新版本的 =librime= 引起到。 由此,将 =librime-1.5.3= 加入到 =package.mask= 中使其不升级,问题解决 [2019/8/24]今天发现上面的问题并不成立,这段时间在网上搜索,并没有发现相似的问题, 故怀疑是 =librime= 配置的问题,最终发现在 =installation.yaml= 中, 有 =rime-version: 1.4.0= 这样的配置,想到是否 =librime= 升级之后是否需要重新生成 用户词库相关的文件,将之前的词库删除后重启 =fcitx= 输入法发现, =librime-1.5.3= 能正常工作了。该问题解决。 *结论*: 升级 =librime= 后,需要删除相关词库数据,重新生成 * 双系统时间问题 =Linux= 和 =Windows= 双系统时区不统一的问题,该问题是因为兩个系统的时区标准 不同, =Windows= 系统显示的是 =BIOS= 时间, =Linux= 则是将 =BIOS= 时间作为 =UTC= 时间,具体显示的是各个地区的时间。 解决办法为,修改注册表,使 =Windows= 也采用与 =Linux= 相同的时间策略,修改 代码为 #+BEGIN_SRC bat Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 #+END_SRC * Firefox播放网易云音乐问题 不知道从哪个版本开始,Firefox播放网易云音乐的声音很奇怪,通过网络查询, 是 =MSE= 的问题,在浏览器这中禁用 =MSE= 即可!禁用方法: 1. about:config -> media.mediasource.enable 改成 false 即可 2. 现该问题网易云音乐已修复该bug * pcmanfm安装不上到问题 安装 =pcmanfm= 时发现, =libfm= 和 =menu-cache= 之间出现了循环依赖问题, 导致安装这两个 =package= 的时候会安装不上,并且依赖这两个 =package= 的软 件由于这两个 =package= 装不上,也会无法安装,经上网查询,早在 =2017= 年 =8= 月的时候就有人提出了相同到问题,当时的 =libfm= 版本是 =1.2.5= ,并且 =libfm= 官方已经修复了该问题,现在在 =libfm-1.3.1= 中再次出现该问题,解决 办法就是在要安装 =libfm= 时,先安装 =libfm-1.2.5= ,然后通过升级的方式将 =libfm= 升级到 =1.3.1= 版本即可。