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

2025-05-25

我使用 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
PREV
8 个让你成为前端开发人员的设计项目
NEXT
这张图片将改变你学习编码的方式