VIM latex书写环境配置

用vim有一个好处, 就是任何的编辑工作全部可以用它来解决, 一个用IDE的人在学一门语言的时候第一反应是找一个这门语言的IDE,而用vim的人在学一门语言的时候第一反应是去github找几个最好用的插件。

记录一下自己的vim环境配置。
首先说下背景, 电脑为mac环境, 使用brew进行包管理。
vim为brew安装的macvim, 版本为8.0.136, 使用vim-plug来进行插件管理。

配置latex环境

使用brew cask来安装latex, 我选择的是mactex发行版的精简版, 也就是basictex. 好处是比较小只有70M,和完整版的2G精简太多, 坏处是很多包没有, 只能在需要的时候动态下载。

brew cask install basictex

注意使用这个命令安装后, 其实只是完成了basictex软件包的清理和下载工作, 一般下载到了类似
/usr/local/Caskroom/basictex/2017.0607/mactex-basictex-20170607.pkg
这样的地方,具体可以使用
mdfind -name mactex-basictex
来查看。

需要再进入此下载文件夹, 双击进行安装。中间需要输入密码。
安装完成。
由于这个安装包是精简版, 因此在稍后编译latex的时候会出现有些包缺失的时候, 那么就需要在缺失的时候自动地下载安装, 因此需要安装一个texliveonfly程序。其作用和latex一样进行编译, 但是与latex不同的是,当存在包缺失的时候, 会自动进行下载。
sudo tlmgr install texliveonfly

这就完成了latex环境的配置。

配置vim

首先安装vimtex插件.
在vimrc的plug列表区加入
Plug 'lervag/vimtex', {'for': ['tex', 'plaintex', 'bst']}
因为我的插件比较多, 因此选择动态加载,仅当文件类型是tex时, 才加载这个插件。

加入vimtex的插件配置:

"tex preview config
let g:texflavor = 'latex'
let g:texindentitems = 0
let g:TexDefaultTargetFormat = 'pdf'
let g:TexCompileRulepdf = 'pdflatex -src-specials -synctex=1 -interaction=nonstopmode $'
let g:TexFormatDependencypdf = 'pdf'
let g:vimtexviewmethod = 'general'
let g:vimtexenabled = 1
let g:vimtexcompleteimgusetail = 1
let g:vimtexviewgeneralviewer = 'open'
let g:vimtexviewgeneraloptions = '-r @line @pdf @tex'
vimtex默认使用latexmk来进行latex编译, 这也是basictex所缺失的包。因此还需要安装和配置latexmk

sudo tlmgr install latexmk
同时在根目录下建立.latexmkrc文件。其内容为:
$pdf_mode = 1;
$pdflatex = "pdflatex --shell-escape -src-specials -synctex=1 -interaction=nonstopmode %O %S";
$recorder = 1;

由于系统自带的pdf浏览器preview无法动态地更新latex生成的pdf内容,因此使用pdf-expert软件来代替, 安装pdf-expert后,整个工作就完成了。

测试

下载一个示例latex文件:
wget https://www.apptic.me/blog/sample-tex.zip
unzip sample-tex.zip
使用vim打开sample.tex, 敲\ll来触发即时生成pdf。
就可以好好地写latex了。

mathematica结束子表达式快捷与windows快捷键冲突问题之修改keyeventtranslations解决方案

mathematica可以用来直接编辑笔记,最近才发现这神器居然还有这么个更神奇的功能,于是软件从一大萌物的级别提高到日常必备的最爱神物的级别,与onenotemindmanager ,thebrain一起成为日常操作的利器。

 
 

学习一个软件,爱上一个软件,刚一开始最需要做的事情就是去学习它的快捷键,将快捷键掌握之后,那种如鱼得水的快感才让你越来越爱上它。

 
 

遗憾的是不知为何wolframmathematica中一个重要的快捷键(结束子表达式)默认设置为ctrl+spce,这个组合键同时也是windows下中英文输入法切换的默认快捷键,使频率也非常大,特别是对于我这种没事在打开一个软件前就得神经质地中英互切七八次的人来说。

 
 

对于这个冲突,网上已经有了一些解决方案,如哲仔在其博客(http://blog.sina.com.cn/s/blog_61f037480100q4yb.html)中提到可以通过修改注册表的方法来将windows的中英文切换快捷键修改为shift+space,但是为了一个软件,切换系统级的快捷键毕竟略有不妥。mathematica虽好,但是ctrl+space的输入习惯是在mindmanager ,thebrain,等其他神器中联合养成了。最好是能够更改mathematica的配置而非更改系统设置。

 
 

经查询与探索,发现mathemaitca的快捷键是完全可以自定义的,其配置都保存在"C:\Program Files\Wolfram Research\Mathematica\9.0\SystemFiles\FrontEnd\TextResources\Windows\KeyEventTranslations.tr"

这样的文件中(因为环境,软件版本等不同,不保证你的文件也在相同路径下,建议使用everything这一搜索神器来定位一下。详见http://xbeta.info/everything-search-tool.htm)

 
 

定位了文件,修改快捷键就简单了。

 
 

我将结束子表达式的快捷键修改为shift+space。亲测有效。

详细设置如下:

一、定位"C:\Program Files\Wolfram Research\Mathematica\9.0\SystemFiles\FrontEnd\TextResources\Windows\KeyEventTranslations.tr"

二、用文本编辑器打开一中文件。

三、在文件中搜索MoveExpressionEnd,搜索结果应该如下图所示:


四、将MoveExpressionEnd一行中,大括号中的control更改为shift。即可。

五、enjoy it。

如何在totalcmd中使用资源管理器,cmd打开当前路径

  • 关于totalcmd,这是一个资源管理器的代替软件,据统计,日常在电脑前坐的人,除了上网外,有一大部分时间都消耗在资源管理器上,而totalcmd就是一款键盘流使用的资源管理器,其好处就是,双手几乎不用离开键盘就可以完成资源管理器的所有操作,其快速定位,超强搜索,插件增强等功能,更是一用就无法舍弃。据善于佳软的博客宣称,有不少童鞋因为这个软件而留在windows平台。

    今天说两个小功能,在文件夹浏览的时候,即使totalcmd有各种方便,但是还是有时需要打开windows原生的资源管理器做一些事情。更常用的是,在浏览文件时,需要在命令提示符中打开当前路径,输入命令或者运行某些cmd程序。我上网进行了一番搜索,并没有发现这两个功能有人提过怎么做,于是经过自己小小一段探索,可以使用自定义工具栏完成这两个功能。


    如上图,鼠标右键,更改,然后


    照图示,填写,即可定义好一个在资源管理器中打开当前窗口的按钮。


    同理,可以定义一个从cmd中打开当前路径的窗口

    cmd打开当前路径还有一个方法,是直接方向右键定位到totalcmd中的命令行中,然后输入cmd %t,这样也可以实现这个功能。