基于终端的工作流,用于研究,编写和编程

2020-12-04 21:07:34

大家好!自上次发布以来已经有一段时间了!可以这么说,过去一年我一直很忙,但是很高兴我可以复活这个博客!

我已经完全成长为自己的编程,研究和写作工作流程。今天,很高兴能与您分享!

如果您喜欢观看描述整个过程中大部分过程的视频,这是我实时直播之一的工作流程概述,虽然不如本文档那么深入,但可以作为本文的有力补充。

我分别使用Alacritty作为终端,使用zsh和oh-my-zsh作为我的shell和插件管理器,使用tmux作为我的多路复用器,使用lsd作为我的带有有趣图标的列表命令,使用Fantasque Sans Mono作为我的字体,使用neovim作为我的编辑器,fzf与ripgrep配对使用,可以快速和交互式地查找文件,用git diff装订线击中一只增强型猫,用markdown和LaTeX编写pandoc并将其输出到我想要的任何文件类型,用Zotero管理我的科学文献收藏,将Ranger作为基于终端的文件浏览器,而gruvbox-dark是我的常规调色板。

以下是我用来修改界面和用户体验的相关配置文件的要点:

以下各节大体描述了我的工作流程:我提到了我使用的一些插件,这些插件在配置文件中提供。如果您想了解更多关于它们的信息,建议您通读我的配置文件或搜索它们。

浮动终端功能强大,我喜欢它们!这使我能够快速启动终端并进行一些更改,而不必拆分tmux窗格或退出vim。此外,很棒的是,您可以将其用作一种vim-slime工具将代码行发送到浮动终端,这是一个很棒的功能,因为它使用您上次使用的浮动终端作为目标-因此,如果您在项目之间进行了很多切换,只需相应地切换浮动终端即可。保持打开和关闭REPL会话等!

虽然很难看,但我还是完全关闭了终端机,哦,不,我的所有镶板和窗户都消失了!我将不得不花费宝贵的时间来重新设置我的工作流程...或者是吗?

tmux实际上可以记住所有这些带有插件的布局,包括复活和连续体。这非常适合当您的计算机意外死机或崩溃时,因为您按定义的定期间隔备份了所有内容!此外,配对(neo)vim插件(成瘾)还允许tmux也自动恢复vim布局和会话。不必担心再次失去终端工作流程!

tmux和(neo)vim还支持鼠标模式和交互性!我可以用鼠标快速跳转到所有地方,也可以轻松地调整任何打开的窗格的大小。

我将功能强大的文件查找工具fzf与ripgrep集成在一起,可以快速查找我要使用的文件。然后,在我的(neo)vim配置文件中,将这两个合并为一个函数,在(neo)vim中编辑文件时可以轻松调用该函数。查找我搜索的文件和pandoc以启用pandoc,markdown或TeX文件中的引用。

此外,我还使用了很棒的工具Ranger,它使我可以使用基于终端的文件浏览器。它很不错,因为它会在自己的窗口中弹出,并且实际上并不直接干扰正在编辑的任何背景文件。它甚至具有图像预览功能!

作为一名研究人员,这部分让我非常兴奋!在编写过程中,我可以通过vim-pandoc主动将引文密钥插入正在处理的工作中。 。此外,markdown-preview允许我在Web浏览器中预览markdown,而vim-latex-live-preview允许我在pdf查看器中查看当前的TeX文件-也适用于子文件!每当我写TeX文件或markdown文件时,这都能轻松工作!

如果本节有任何混淆之处,强烈建议您阅读有关知识管理的文章。

这些是我以前使用过的工作流的一部分,出于各种原因已经退休,但都是为了改善我的工作流,如果有人发现它有用,我会保留这些工作! 弃用的理由:我曾经使用vim-slime,但由于浮动终端的灵活性而从工作流程中弃用了它,不仅可以使用浮动终端发送代码,而且还可以一键快速浏览终端。 在这里,我将我的Julia REPL定位在tmux面板中,并使用vim-slime插件将我在neovim中打开的Julia脚本中的代码发送到Julia REPL,以进行快速评估。 此配置可在您希望以窗口为目标的任何时间使用,也适用于代码块(例如函数或循环)! 希望您发现我的工作流程和工具链很有趣,我的梦想是让这个工作流程成为您自己工作流程的灵感,让它成为您自己的一切并祝一切顺利! 如果您发现任何错误或有任何疑问,请随时与我联系。