发布于 2025-12-10 2 阅读
0

我使用 WSL、tmux 和 Neovim .zshrc 的开发工作流程

我使用 WSL、tmux 和 Neovim 的开发工作流程

.zshrc

我的终端截图

大家好!今天我要聊聊我日常的开发工作流程,以及我用来搭建高效编码环境的所有工具。我认为拥有一个美观的终端和一些节省时间的工具,对保持日常编码效率非常有帮助。

操作系统

我使用 Windows,但它几乎无法用于编程。幸好微软理解这一点,并开发了Windows Subsystem for Linux(简称“ WSLWindows Linux 子系统”)。它允许你在 Windows 中运行 Linux 发行版。

我使用Ubuntu,它是随系统安装的默认发行版WSL。Ubuntu 使用起来非常简单,而且拥有庞大的社区,因此获得支持非常容易。我强烈推荐它给任何想要开始使用 Linux 并熟悉基本 Linux 命令的人。

壳

Ubuntu 默认自带 Bash Shell。Bash 很棒,但我个人觉得它比较难定制。所以我用的是Z Shell(俗称) 。我使用Oh My Zshzsh来管理配置。它拥有庞大的社区,安装和使用插件也非常简单。zsh

我以前用过fish,它也是一款很棒的 shell。它默认设置很合理,而且自带了很多很酷的功能,比如自动建议、Tab 补全等等,开箱即用,无需任何设置。fish 唯一的问题是它不支持POSIX-compliantPOSIX。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


Enter fullscreen mode Exit fullscreen mode

这里没有显示图标,因为你需要一个Nerd 字体。如果你设置了一个 Nerd 字体(我推荐 JetBrains Mono),并复制此配置,你将得到一个非常简洁的提示符,如下所示。有关配置 Starship 的更多信息,你可以查看此处的文档。

启动提示

拥有一个美观的终端总是有帮助的!

使用 tmux 实现持久终端会话

tmux是一个终端多路复用器。它允许您创建多个持久终端会话,并在不终止现有正在运行的进程的情况下返回这些会话。因此,您可以返回到之前离开的工作区。它还允许您在一个会话中管理多个窗口和窗格。

例如,要进入我网站的工作区,我只需输入即可website。

输入网站,我就在我的 tmux 工作区中

这website是我设置的用于打开websitetmux 会话的别名。



# .zshrc

alias website="tmux attach-session -t website"


Enter fullscreen mode Exit fullscreen mode

这样,我就能快速切换到任何一个工作区并开始编码。它还能让我回到上次中断的地方,这也很有帮助。我强烈推荐使用 tmux 进行本地开发,它改变了我的工作方式,并大幅提高了我的工作效率。

Neovim

自从我开始学习编程的第一天起,我就一直使用VSCode作为我的代码编辑器,但最近我切换到了Neovim 。它是Vim的现代版本。

Neovim 对我来说是最好的代码编辑器,因为它速度快,而且易于自定义。所有配置都用Lua编写,非常容易学习和编写。它帮助我快速高效地工作,因为我的手永远不需要离开键盘。

你可以在这里找到我的 Neovim 配置。它只是craftzdog 配置的一个分支。

Neovim 从 React 自动导入 useEffect 的屏幕截图

Neovim 中望远镜文件查找器的屏幕截图

氧化物

你可能在一些截图中看到,我只需运行z license-generator即可跳转到该目录。就是这样zoxide。它也是用Rust编写的,是一个智能cd命令,可以记住你经常访问的目录,因此你只需一个命令就可以跳转到这些目录。

氧化物的演示

上面的 GIF 来自zoxideGitHub 仓库。使用它zoxide,永远不会再回到cd地狱。

埃克萨

exa是该命令的现代替代品ls。我总是发现自己用它exa来熟悉新代码库中的文件。

ls -la 命令

与 exa

正如您在屏幕截图中看到的,exa它的输出更具可读性,带有颜色和图标,您可以查看并立即了解不同文件的文件类型。它也明显比 更快ls。

它还有很多标志,用于显示不同格式的数据。以下是我为 设置的别名exa。


.zshrc

alias ll="exa -l -g --icons --git"
alias llt="exa -1 --icons --tree --git-ignore"

Enter fullscreen mode Exit fullscreen mode




结论

以上是我日常编码使用的工具的简要概述。我认为花些时间完善你的工作流程和编码设置非常重要,随着时间的推移,这会让你的效率更高。希望你觉得我列出的这些工具有用,并将它们融入到你的工作流程中!

感谢阅读!

文章来源:https://dev.to/nexxeln/my-developer-workflow-using-wsl-tmux-and-neovim-55f5