我使用 WSL、tmux 和 Neovim 的开发工作流程
.zshrc
大家好!今天我要聊聊我日常的开发工作流程,以及我用来搭建高效编码环境的所有工具。我认为拥有一个美观的终端和一些节省时间的工具,对保持日常编码效率非常有帮助。
操作系统
我使用 Windows,但它几乎无法用于编程。幸好微软理解这一点,并开发了Windows Subsystem for Linux(简称“ WSL
Windows Linux 子系统”)。它允许你在 Windows 中运行 Linux 发行版。
我使用Ubuntu,它是随系统安装的默认发行版WSL
。Ubuntu 使用起来非常简单,而且拥有庞大的社区,因此获得支持非常容易。我强烈推荐它给任何想要开始使用 Linux 并熟悉基本 Linux 命令的人。
壳
Ubuntu 默认自带 Bash Shell。Bash 很棒,但我个人觉得它比较难定制。所以我用的是Z Shell(俗称) 。我使用Oh My Zshzsh
来管理配置。它拥有庞大的社区,安装和使用插件也非常简单。zsh
我以前用过fish,它也是一款很棒的 shell。它默认设置很合理,而且自带了很多很酷的功能,比如自动建议、Tab 补全等等,开箱即用,无需任何设置。fish 唯一的问题是它不支持POSIX-compliant
POSIX。POSIX是一套定义如何为基于 UNIX 的操作系统开发程序的标准。所以在 fish 中,像 bash 脚本这样的脚本无法运行。它们有自己的脚本语言。
zsh
另一方面,它完全符合 POSIX 标准。这就是我切换到它的原因zsh
,到目前为止,我对它非常满意。
迅速的
我使用Starship作为我的提示符,它简直太棒了。Starship 用Rust编写,是一个极简、高度可定制且速度超快的提示符。它的默认外观非常出色,但实际上每个小细节都可以根据您的喜好进行自定义。要安装 Starship,请参阅这些文档。
Starship 的配置文件位于~/.config/starship.toml
。这是我的starship.toml
。
# ~/.config/starship.toml
[aws]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
format = "via [$symbol]($style)"
[directory]
read_only = " "
truncation_length = 1
[docker_context]
symbol = " "
[elixir]
symbol = " "
format = 'via [$symbol]($style)'
[elm]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
format = 'via [$symbol]($style)'
[hg_branch]
symbol = " "
[java]
symbol = " "
format = 'via [$symbol]($style)'
[julia]
symbol = " "
[memory_usage]
symbol = " "
[nim]
symbol = " "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
format = 'via [$symbol]($style)'
[package]
symbol = " "
[perl]
symbol = " "
[php]
symbol = " "
[python]
symbol = " "
format = 'via [$symbol]($style)'
[ruby]
symbol = " "
[rust]
format = 'via [$symbol]($style)'
[scala]
symbol = " "
[shlvl]
symbol = " "
[swift]
symbol = "ﯣ "
format = 'via [$symbol]($style)'
[git_status]
disabled = true
这里没有显示图标,因为你需要一个Nerd 字体。如果你设置了一个 Nerd 字体(我推荐 JetBrains Mono),并复制此配置,你将得到一个非常简洁的提示符,如下所示。有关配置 Starship 的更多信息,你可以查看此处的文档。
拥有一个美观的终端总是有帮助的!
使用 tmux 实现持久终端会话
tmux是一个终端多路复用器。它允许您创建多个持久终端会话,并在不终止现有正在运行的进程的情况下返回这些会话。因此,您可以返回到之前离开的工作区。它还允许您在一个会话中管理多个窗口和窗格。
例如,要进入我网站的工作区,我只需输入即可website
。
这website
是我设置的用于打开website
tmux 会话的别名。
# .zshrc
alias website="tmux attach-session -t website"
这样,我就能快速切换到任何一个工作区并开始编码。它还能让我回到上次中断的地方,这也很有帮助。我强烈推荐使用 tmux 进行本地开发,它改变了我的工作方式,并大幅提高了我的工作效率。
Neovim
自从我开始学习编程的第一天起,我就一直使用VSCode作为我的代码编辑器,但最近我切换到了Neovim 。它是Vim的现代版本。
Neovim 对我来说是最好的代码编辑器,因为它速度快,而且易于自定义。所有配置都用Lua编写,非常容易学习和编写。它帮助我快速高效地工作,因为我的手永远不需要离开键盘。
你可以在这里找到我的 Neovim 配置。它只是craftzdog 配置的一个分支。
氧化物
你可能在一些截图中看到,我只需运行z license-generator
即可跳转到该目录。就是这样zoxide
。它也是用Rust编写的,是一个智能cd
命令,可以记住你经常访问的目录,因此你只需一个命令就可以跳转到这些目录。
上面的 GIF 来自zoxide
GitHub 仓库。使用它zoxide
,永远不会再回到cd
地狱。
埃克萨
exa
是该命令的现代替代品ls
。我总是发现自己用它exa
来熟悉新代码库中的文件。
正如您在屏幕截图中看到的,exa
它的输出更具可读性,带有颜色和图标,您可以查看并立即了解不同文件的文件类型。它也明显比 更快ls
。
它还有很多标志,用于显示不同格式的数据。以下是我为 设置的别名exa
。
结论
以上是我日常编码使用的工具的简要概述。我认为花些时间完善你的工作流程和编码设置非常重要,随着时间的推移,这会让你的效率更高。希望你觉得我列出的这些工具有用,并将它们融入到你的工作流程中!
感谢阅读!
文章来源:https://dev.to/nexxeln/my-developer-workflow-using-wsl-tmux-and-neovim-55f5