oh my zsh
by Robby Russell
罗比·罗素(Robby Russell)
This wouldn’t be my first foray into open source software; nor my last.
这不是我第一次涉足开源软件。 也不是我的最后一个。
It was the summer of 2009. I found myself helping a coworker debug something in their terminal. As I attempted to type in a few command lines, I noticed that the prompt wasn’t responding to the shortcuts that my brain had grown accustomed to. Frustrated, I exclaimed, “when are you finally going to switch over to Zsh?!”
那是2009年的夏天。我发现自己正在帮助同事调试其终端中的某些内容。 当我尝试输入一些命令行时,我注意到提示并没有响应我的大脑已经习惯的快捷方式。 我大为沮丧, “你什么时候终于要切换到Zsh ?!”
(yeah, I was the type of annoying coworker that would constantly point out that X was better than Y when given the chance. In hindsight, I don’t know how they put up with me…but between you and me, I had a point.)
(是的,我是那种烦人的同事,如果有机会,我会不断指出X比Y更好。事后看来,我不知道他们如何忍受我……但是在你我之间,我有一个点。)
“when are you finally going to switch over to Zsh?!”
“您什么时候终于要切换到Zsh ?!”
At that point in time, I had been a daily Zsh user for a little over three years.
那时,我已经是Zsh的日常用户了三年多。
Some of my #caboose friends shared a few of their .zshrc configurations within our IRC channel. After a few years, my .zshrc file grew into a tangled rat's nest. Honestly, I didn’t know what ~30% of the configuration did. I trusted my friends enough to run with it, though. What I did know was that I had some git branch and status details, color highlighting for a few tools (i.e., grep), autocompleting file paths over SSH connections, and a handful of shortcuts for Rake and Capistrano. Working on a machine with a default Bash profile felt remarkably archaic; I’d become dependent on these shortcuts.
我的一些#caboose朋友在我们的IRC频道中分享了一些.zshrc配置。 几年后,我的.zshrc文件变成了纠结的老鼠的巢。 老实说,我不知道〜30%的配置做了什么。 不过,我足够信任我的朋友们来使用它。 我所知道的是,我有一些git分支和状态详细信息,一些工具(即grep)的颜色突出显示,通过SSH连接自动完成文件路径,以及Rake和Capistrano的一些快捷方式。 在具有默认Bash配置文件的机器上工作非常陈旧; 我将依赖这些快捷方式。
A few coworkers were happy to copy/paste the .zshrc file that I shared and begin using it. A few others wouldn’t because they knew that I didn’t know what some of it did. Fair enough.
一些同事很高兴复制/粘贴我共享的.zshrc文件并开始使用它。 其他一些人则不会,因为他们知道我不知道其中的某些内容。 很公平。
After a few attempts to convert them and getting nowhere, I opted for a different approach.
经过几次尝试将它们转换为零,但我选择了另一种方法。
First, I reorganized my .zshrc configuration, which involved breaking it up into a collection of smaller files. My thinking here was that this would a) help me better understand how all of these bits worked while b) helping educate my peers when they went to read the code.
首先,我重新组织了.zshrc配置,其中涉及将其分解为较小文件的集合。 我在这里的想法是,这将a)帮助我更好地理解所有这些位的工作方式,同时b)帮助同龄人阅读代码时进行教育。
Pre-empting their next question, “how do I get this to work on my machine?”, I drafted the first setup instructions.
在解决他们的下一个问题: “如何使它在我的机器上工作?”之前,我起草了第一份安装说明 。
Most importantly, I packaged all these files into a shiny new git repository. I figured that if I tossed it up on Github, my peers would be able to collaborate with me on improving it.
最重要的是,我将所有这些文件打包到一个新的git存储库中。 我认为,如果将它扔到Github上,我的同龄人将能够与我合作改进它。
While not a huge leap, it was a step above inviting people to copy/paste a text file from Pastie.
尽管这不是一个巨大的飞跃,但它是邀请人们从Pastie复制/粘贴文本文件的第一步。
On Aug. 28th, 2009, Oh My Zsh was born.
2009年8月28日, Oh My Zsh出生 。
This might come to a surprise to most of the Oh My Zsh user base, but none of those were features that I had considered. My goal with the project was not to build a framework for maintaining Zsh configurations but to share my own config with my coworkers so that they’d use Zsh.
这对大多数“我的Zoh”用户群来说可能是一个惊喜,但是我没有考虑过这些功能。 我对该项目的目标不是建立一个维护Zsh配置的框架,而是与我的同事共享我自己的配置,以便他们使用Zsh。
Within a day of sharing it with all of my coworkers, everyone at Planet Argon had migrated from Bash to Zsh.
与我的所有同事共享这一天后, Planet Argon的每个人都从Bash迁移到Zsh。
Victory! …or so I thought.
胜利! ……所以我想。
The first feature request came in the next day.
第二个功能请求是在第二天提出的。
“How do I customize MY prompt?”
“我如何自定义我的提示?”
Two coworkers asked me how they could customize their prompt. They wanted to change the colors and the information that was displayed.
两个同事问我如何自定义提示。 他们想更改颜色和显示的信息。
What the hell!? Wasn’t my prompt compelling enough for them? So nitpicky. ;-)
我勒个去!? 我的提示对他们来说不够吸引人吗? 太挑剔了。 ;-)
I pointed to the prompt.zsh file and said they could modify that.
我指向了hint.zsh文件,并说他们可以修改它。
Quickly, this became an issue as they now had their own version of that file. As a result, this would add some complexity if we all wanted to share some of our shortcuts and features as we’d have conflicts to deal with.
很快,这成为一个问题,因为他们现在拥有该文件的自己的版本。 结果,如果我们所有人都希望共享一些快捷方式和功能,这将增加一些复杂性,因为我们要处理冲突。
Hmm…
嗯...
So, a day after first announcing Oh My Zsh on my blog, I began introducing the initial concept of themes.
因此,在第一次在博客上宣布Oh My Zsh之后的第二天,我开始介绍主题的初始概念。
Meanwhile, I got my first external pull-request from Geoff Garside to add a few aliases for TextMate. (Notice how that went straight into a catch-all aliases.zsh file)
同时,我从Geoff Garside获得了我的第一个外部请求, 为TextMate添加了一些别名 。 (请注意,这是如何直接进入全部使用的aliass.zsh文件的)
A day later, another theme was sent over. Groovy, I better add a link on the README to see some screenshots on the wiki.
一天后, 又发送了另一个主题 。 Groovy,我最好在自述文件上添加一个链接,以查看Wiki上的一些屏幕截图 。
Within a month, we had a dozen themes contributed to the project.
在一个月内,我们为该项目贡献了十多个主题。
This began to be a really popular aspect to Oh My Zsh and we had to start hitting the brakes on accepting themes once we passed 100. (we’re currently at ~140 and rarely accept new ones)
这开始成为Oh My Zsh的一个非常流行的方面,一旦超过100,我们就不得不开始接受主题。(我们目前约为140, 很少接受新主题)。
It occurred to me that the initial setup was requiring people to run a handful of commands. Rather than asking people to re-type and/or copy/paste a handful of commands, I felt that it would be more efficient for both parties (as it’d reduce the questions my coworkers would have when they hit a problem and/or skipped a step).
在我看来,初始设置需要人们运行少量命令。 我觉得与其要求人们重新键入和/或复制/粘贴一些命令,不如说对于双方来说这将更加有效(因为这将减少我的同事遇到问题和/或遇到的问题跳过了一步)。
An installer was born.
安装程序诞生了。
My initial thoughts were to handle save folks a few steps by automating the installer. If everyone ran the same commands, then we could cut down on human error (skipping a command, typos, etc.). I also wanted to be mindful that people might be switching from either Bash or an existing cobbled-together Zsh configuration. To help them with a possible switch back to the previous shell, we made a backup of their original configuration file. Finally, we’d switch their default shell to Zsh.
我最初的想法是通过使安装程序自动化来为节省人员执行一些步骤。 如果每个人都运行相同的命令,那么我们可以减少人为错误(跳过命令,错别字等)。 我还想谨记,人们可能会从Bash或现有的拼凑在一起的Zsh配置中进行切换。 为了帮助他们切换回先前的Shell,我们对其原始配置文件进行了备份。 最后,我们将其默认外壳切换为Zsh。
“Hooray! Oh My Zsh has been installed.”
“万岁! 哦,我的Zsh已安装。”
Oh, right. How will people be able to stay updated with the new changes to the project?
啊对。 人们如何能够对项目的新更改保持最新状态?
The next day, I added an upgrade script that strolls over to the Oh My Zsh directory, fetch updates from the git repository, and returns you to your previous working directory.
第二天,我添加了一个升级脚本,该脚本可以浏览到Oh My Zsh目录,从git存储库中获取更新,然后将您返回到之前的工作目录。
Far from rocket science.
远离火箭科学。
About three weeks later, it became obvious that my coworkers weren’t manually keeping up with all of the new updates to the project. Rather than reminding them to do that from time-to-time, I added functionality that would periodically prompt the user to check for updates.
大约三周后,很明显我的同事并没有手动跟上该项目的所有新更新。 我没有提醒他们经常这样做,而是添加了功能,该功能会定期提示用户检查更新。
Up until this point, this felt like the most complicated piece of code in the project. I wish that I could remember who gave me the great idea to use an epoch value here.
到目前为止,这感觉就像项目中最复杂的代码。 我希望我能记得谁给了我个好主意,以便在此处使用纪元值。
In my opinion, it was also the turning point for the project.
我认为,这也是该项目的转折点。
While a handful of people were using it, this functionality would allow nearly every user to stay up-to-date on project changes and more importantly, stay engaged. When they would run the updater, they’d see a list of files changed and that would, subtly, introduce them to new features… a la, “I wonder what that theme looks like..”
在少数人使用它的同时,此功能将使几乎每个用户都能了解项目变更的最新信息,更重要的是,保持参与。 当他们运行更新程序时,他们会看到文件列表的更改,这会巧妙地将它们介绍给新功能……例如, “我想知道那个主题是什么样的。”
Sadly, not everyone has been a fan.
可悲的是,并不是每个人都喜欢它。
Despite a few vocal opponents over the years, I’ve stood by my decision to keep this as a default setting.
尽管多年来有一些反对者,但我坚持将其保留为默认设置的决定。
Back in 2012, we made a change to reduce the frequency of auto-update prompts by 50%.
早在2012年,我们就进行了更改,将自动更新提示的频率降低了50%。
The auto-update has allowed us to ship new features, performance improvements, and bug fixes without relying on everyone manually doing it. I’m convinced that this feature has helped keep the community engaged.
自动更新使我们能够发布新功能,性能改进和错误修复,而无需依赖每个人手动进行。 我坚信此功能有助于保持社区的参与度。
While the project was attracting a lot of themes, I really felt like the project could benefit from branding.
尽管该项目吸引了许多主题,但我确实感到该项目可以从品牌推广中受益。
My solution? Ascii art.
我的解决方案? ASCII艺术。
My thought process here was… sure, you get a bunch of useful shortcuts and themes when you begin using Oh My Zsh, but I really felt like the first impression after the installer would run was an opportunity to delight new users.
我在这里的思考过程是……当然,当您开始使用Oh My Zsh时,会获得许多有用的快捷方式和主题,但是我确实感觉安装程序运行后的第一印象是让新用户感到高兴的机会。
Candy sprinkles on the muffin…as it were. (I have no recollection of why I wrote that commit message back then. The reference is lost on me.)
糖果像往常一样撒在松饼上。 (我不记得为什么我当时写过该提交消息。引用对我来说是丢失的。)
People have been asking me to print shirts with the ascii art for quite some time. (we’ll likely do that this summer — follow us on twitter)
人们一直在要求我用ascii艺术印花衬衫。 (今年夏天我们可能会这样做- 在Twitter上关注我们 )
Ten months after open sourcing the project, users had begun to request the ability to not have everything get loaded up. For example, a Python developer might not need the Rake and Capistrano related aliases to get loaded like a Ruby developer would.
在将项目开源之后的十个月里,用户开始要求不能加载所有内容。 例如,Python开发人员可能不需要像Ruby开发人员那样加载Rake和Capistrano相关的别名。
So, we implemented a basic plugin system that would allow folks to decide which to load on initialization by changing a value in .zshrc.
因此,我们实现了一个基本的插件系统 ,使人们可以通过更改.zshrc中的值来决定在初始化时加载哪个插件 。
When this feature was released, there were five plugins bundled.
该功能发布时,捆绑了五个插件。
Within a few months, I started to get pull requests for new plugin ideas.
几个月后,我开始收到对新插件想法的请求。
Within a year, I had accepted over 40 plugins.
一年之内, 我已经接受了40多个插件 。
Within two years? Over 70 plugins.
两年内? 超过70个插件 。
Currently, we have plugins for adb, ant, apache2-macports, archlinux, autoenv, autojump, autopep8, aws, battery, bbedit, bgnotify, boot2docker, bower, branch, brew, brew-cask, bundler, bwana, cabal, cake, cakephp3, capistrano, cask, catimg, celery, chruby, chucknorris, cloudapp, codeclimate, coffee, colemak, colored-man-pages, colorize, command-not-found, common-aliases, compleat, composer, copydir, copyfile, cp, cpanm, debian, dircycle, dirhistory, dirpersist, django, dnf, docker, docker-compose, emacs, ember-cli, emoji, emoji-clock, emotty, encode64, extract, fabric, fancy-ctrl-z, fasd, fastfile, fbterm, fedora, forklift, frontend-search, gas, gem, git, git-extras, git-flow, git-flow-avh, git-hubflow, git-prompt, git-remote-branch, gitfast, github, gitignore, glassfish, gnu-utils, go, golang, gpg-agent, gradle, grails, grunt, gulp, heroku, history, history-substring-search, httpie, iwhois, jake-node, jhbuild, jira, jruby, jsontools, jump, kate, kitchen, knife, knife_ssh, laravel, laravel4, laravel5, last-working-dir, lein, lighthouse, lol, macports, man, marked2, mercurial, meteor, mix, mix-fast, mosh, mvn, mysql-macports, n98-magerun, nanoc, nmap, node, npm, nvm, nyan, osx, pass, paver, pep8, per-directory-history, perl, phing, pip, pj, pod, postgres, pow, powder, powify, profiles, pyenv, pylint, python, rails, rake, rake-fast, rand-quote, rbenv, rbfu, rebar, redis-cli, repo, rsync, ruby, rvm, safe-paste, sbt, scala, scd, screen, scw, sfffe, singlechar, spring, sprunge, ssh-agent, stack, sublime, sudo, supervisor, suse, svn, svn-fast-info, symfony, symfony2, systemadmin, systemd, taskwarrior, terminalapp, terminitor, terraform, textastic, textmate, thefuck, themes, thor, tmux, tmux-cssh, tmuxinator, torrent, tugboat, ubuntu, urltools, vagrant, vault, vi-mode, vim-interaction, virtualenv, virtualenvwrapper, vundle, wakeonlan, wd, web-search, wp-cli, xcode, yii, yii2, yum, z, zeus, zsh-navigation-tools, zsh_reload.
当前,我们有用于adb,ant,apache2-macports,archlinux,autoenv,autojump,autopep8,aws,battery,bbedit,bgnotify,boot2docker,bower,branch,brew,brew-bunk,bunker,bwana,cabal,cake, cakephp3,capistrano,酒桶,catimg,芹菜,chruby,chucknorris,cloudapp,codeclimate,coffee,colemak,有色人页面,colorize,命令未找到,通用别名,compleat,composer,copydir,copyfile,cp, cpanm,debian,dircycle,dirhistory,dirpersist,django,dnf,docker,docker-compose,emacs,ember-cli,emoji,emoji-clock,emotty,encode64,提取,fabric,fancy-ctrl-z,fasd,fastfile, fbterm,fedora,叉车,前端搜索,gas,gem,git,git-extras,git-flow,git-flow-avh,git-hubflow,git-prompt,git-remote-branch,gitfast,github,gitignore, glassfish,gnu-utils,golang,gpg-agent,gradle,grails,grunt,gulp,heroku,history,history-substring-search,httpie,iwhois,jake-node,jhbuild,jira,jruby,jsontools,跳转,凯特,厨房,刀,snife_ssh,laravel,lar avel4,laravel5,last-working-dir,lein,灯塔,lol,macports,man,marked2,mercurial,流星,mix,fast-mosh,mosh,mvn,mysql-macports,n98-magerun,nanoc,nmap,node, npm,nvm,nyan,osx,pass,paver,pep8,每个目录历史记录,perl,phing,pip,pj,pod,postgres,pow,pow,powify,profiles,pyenv,pylint,python,rails,rake,快速耙,rand-quote,rbenv,rbfu,钢筋,redis-cli,repo,rsync,ruby,rvm,安全粘贴,sbt,scala,scd,屏幕,scw,sfffe,singlechar,弹簧,sprunge,ssh-代理,堆栈,崇高,sudo,主管,suse,svn,svn-fast-info,symfony,symfony2,systemadmin,systemd,taskwarrior,terminalapp,terminitor,terraform,textastic,textmate,thefuck,主题,thor,tmux,tmux- cssh,tmuxinator,torrent,tugboat,ubuntu,urltools,vagrant,Vault,vi-mode,vim-interaction,virtualenv,virtualenvwrapper,vundle,wakeonlan,wd,网络搜索,wp-cli,xcode,yii,yii2,yum, z,zeus,zsh导航工具,zsh_reload。
In total… 214 plugins. Admittedly, not everyone has been impressed by this.
总共214个插件 。 诚然,并不是每个人都对此印象深刻。
I do agree that could be drastically improved.
我同意可以大大改善。
The few times that I considered it, I found the proposed approaches to be too complicated for folks who aren’t yet familiar and/or comfortable with the terminal. Perhaps a more sophisticated approach for version 2 of the framework. (more on this later)
在考虑了几次之后,我发现对于那些尚未熟悉终端和/或对终端不满意的人,建议的方法过于复杂。 对于框架的版本2来说,也许是一种更复杂的方法。 (稍后会详细介绍)
There has, also, been a part of me that has felt like this project would only be of interest to people for a few years. As users gained more experience and/or as technology evolved, the framework would be left behind by shiny new projects that solved problems far better than we had.
我中也有一部分人觉得这个项目只会让人们感兴趣几年。 随着用户获得更多经验和/或技术发展,该框架将被闪亮的新项目所抛弃,这些新项目解决问题的能力远胜于我们。
I never thought Oh My Zsh would still be building momentum nearly seven years later.
我从没想过噢,我的Zsh在将近7年后仍会继续发展。
It’s March 22, 2016 and the top trending shell repository on Github is? (find it amusing that the URL reads, “bash”…ahem)
是2016年3月22日, Github上最流行的shell存储库是 ? (使URL看起来很有趣,“ bash”……哎呀)
Where do all these new users keep coming from? I ❤ you people!
这些新用户从何而来? 我❤你们这些人!
While I have many stories to share (and intend to write more on this topic), I wanted to speak to those who have been debating the idea of open sourcing a project.
尽管我有很多故事可以分享(并且打算在这个主题上写更多的故事),但是我想和一直在讨论开源项目想法的人交谈。
Don’t start with a wildly ambitious goal. Start your project with a simple, attainable goal. What does success look like? In my scenario, I wanted 1–2 people on my team to use my scripts. The project was a success in under 24 hours.
不要从一个野心勃勃的目标开始。 从一个简单的,可以实现的目标开始您的项目。 成功是什么样的? 在我的场景中,我希望团队中有1-2个人使用我的脚本。 该项目在不到24小时内取得了成功。
Everything since has been extra-credit.
此后的一切都是额外的信用。
Don’t try to account for every scenario. If I had gotten hung up on some long-term details for the project, Oh My Zsh would never have happened. Nearly everything that has been added to the project has come organically post-initial release.
不要试图考虑所有情况。 如果我对这个项目的一些长期细节挂了电话,噢,我的Zsh永远不会发生。 几乎所有添加到项目中的东西都在初始发布后有机地发布了。
One of the beautiful aspects of an open source project is that your user base can help shape it.
开源项目的美丽之处之一是您的用户群可以帮助塑造它。
Don’t try to make it perfect. Worrying how other people are going to react about your code shouldn’t be your biggest concern. Does it work? How do they feel when they’re interacting with it should be a higher concern. In my case, I’ve had some great contributors over the years who have helped tidy up and improve the quality of the code that I originally released.
不要试图使其完美。 担心别人对您的代码将如何React不是您最大的担忧。 它行得通吗? 当他们与之互动时,他们的感受应该是一个更高的关注点。 就我而言,这些年来我有一些杰出的贡献者,他们帮助整理并提高了我最初发布的代码的质量。
Rarely has anyone said anything critical about my old code — maybe they should have, though. ;-)
很少有人对我的旧代码发表任何批评,尽管他们应该这样。 ;-)
Don’t try to be everything to everyone. There have been a few points in the history of the project where we hit a crossroads. In particular, there was a time when a huge rebuild was proposed, which I was quite excited about until I was able to wrap my head around some of the changes.
不要试图成为所有人的一切。 在项目历史上,我们遇到了一些十字路口。 特别是,曾经有一段时间提出了一个巨大的重建计划,直到我能够为某些变化着想之前,我对此感到非常兴奋。
Proposal to Simplify OH-MY-ZSH · Issue #377 · robbyrussell/oh-my-zshoh-my-zsh - A delightful community-driven framework for managing your zsh configuration. Includes 200+ optional plugins…github.com
简化OH-MY-ZSH的建议·问题#377·robbyrussell / oh-my-zsh oh-my- zsh- 一个令人愉悦的社区驱动框架,用于管理zsh配置。 包括200多个可选插件… github.com
As a result, a fork was rebranded and we agreed to follow different paths. Not everyone was happy with my decision here, but it was during this period that it became clear (to me) that I wanted to focus my attention on folks who weren’t too comfortable with the terminal and/or git.
结果,叉子被重新命名,我们同意走不同的道路。 并不是每个人都对我在这里的决定感到满意,但是在这段时期(对我而言),我很想将注意力集中在对终端和/或git不太满意的人上。
Don’t stop thanking contributors. If anybody helps your project out, please let them know how much you appreciate their effort. I can’t thank my contributors enough. One of my biggest self-critiques related to this project is that I’ve not been consistent enough in being vocal about my appreciation.
不要停止感谢贡献者。 如果有人帮助您完成项目,请让他们知道您对他们的努力表示赞赏。 我不能感谢我的贡献者。 与这个项目有关的最大的自我批评之一是,我在表达自己的欣赏感方面不够一贯。
There are 910 people from all over the world who have their code accepted into the master branch of Oh My Zsh at the time of writing this.
撰写本文时, 来自世界各地的910个人已将他们的代码接受到Oh My Zsh的主分支中。
In particular, thank you. (you know who you are)
特别是, 谢谢 。 (你知道你是谁)
Don’t forget the documentation. Over the years, documentation of plugins and functionality has been vital to helping inform users on how to take advantage of the framework.
不要忘记文档。 多年来,插件和功能的文档对于帮助用户告知如何利用该框架至关重要。
I wish we had adopted this convention several years before.
我希望我们几年前通过了这项公约。
The README file is going to be seen the most…so make it count. In my case, I opted to introduce people to my personality and dry sense of humor.
README文件将是最受欢迎的……因此请计入。 就我而言,我选择向人们介绍我的个性和干燥的幽默感。
Honestly, seeing tweets like this means the world to me.
老实说,看到这样的推文对我来说意味着世界。
Don’t forget about the rest of your life. Again, I never anticipated the project turning into what it is today.
不要忘记余生。 再一次,我从没想到项目会变成今天的样子。
Are you familiar with the anecdote about the frog in a pot of boiling water?
您是否熟悉一锅沸水中青蛙的轶事?
It took me 3–4 years, too many, to finally bring in another person to help maintain the project. I kept thinking that I could catch up with all the open pull requests and issues. What I kept telling myself was that folks who know how to fork the project can make their desired changes and work off of that, so reviewing and approving pull requests is a nice-to-happen versus a need-to-happen.
我花了3-4年的时间,才终于聘请另一个人来帮助维护该项目。 我一直认为我可以赶上所有公开要求和问题。 我一直对自己说的是,知道如何创建项目的人可以进行所需的更改并进行相应的更改,因此,审核和批准请求请求是一件很容易的事,而不是需要的事。
In practice, it’s somewhere in between. I do feel a bit bad for old pull requests lingering, but I also don’t keep Oh My Zsh as one of the top few projects on my plate.
实际上,它介于两者之间。 我确实为旧的请求请求徘徊感到难过,但我也没有将Oh My Zsh保留为我计划中的头几个项目之一。
Outside of Oh My Zsh, I run a 19-person agency, play guitar in an instrumental post-rock band, sit on the board of directors of a local homeless shelter non-profit, travel with my camera a lot, ride my motorcycle, ride my bicycle, and try to keep a social life with my friends. Oh My Zsh fits somewhere in amongst all of these.
在Oh My Zsh外面,我经营着一个由19人组成的经纪公司 ,在后摇滚乐队中弹吉他,坐在当地一家无家可归者庇护所的董事会中,经常用相机旅行,骑摩托车,骑自行车,并尝试与朋友保持社交生活。 噢,我的Zsh适合所有这些。
It’s not at the top of my priority list. It’s not at the bottom. It’s somewhere between. This isn’t an excuse to not being able to keep up with the community, but more of a reminder that those other things should matter to you, too, if you’re about to start your own project.
它不在我的优先级列表的顶部。 它不在底部。 介于两者之间。 这不是不能跟上社区发展的借口,而是更多提醒您,如果您要开始自己的项目,那么其他事情也应该对您很重要。
Don’t forget to have some fun. When you start your project, decide if this is going to be serious work time or play time. Perhaps it can be somewhere in the middle.
不要忘记找点乐子。 当您开始您的项目时,请确定这将是严重的工作时间还是娱乐时间。 也许可以在中间的某个地方。
Oh My Zsh has, always, been a play time activity project for me.
噢,我的Zsh一直是我的娱乐时间活动项目。
Knowing that one of my playful projects has been and continues to be enjoyed by people is such a wonderful feeling.
知道我的一个有趣的项目已经并继续被人们喜欢是一件非常美妙的事情。
Some might call it a passion project. I call it playtime.
有些人可能将其称为激情项目。 我称它为娱乐时间 。
You can learn more at http://ohmyz.sh.
您可以在http://ohmyz.sh上了解更多信息。
Robby Russell is the VP of Engineering and a partner of Planet Argon, a Ruby on Rails development firm based in Portland, Oregon.
罗比·罗素 ( Robby Russell)是工程副总裁,也是Planet Argon的合伙人, Planet Argon是位于俄勒冈州波特兰的Ruby on Rails开发公司 。
Already using Oh My Zsh? I’d love to learn how you heard about it.
已经在使用Oh My Zsh? 我很想了解您如何得知。
翻译自: https://www.freecodecamp.org/news/d-oh-my-zsh-af99ca54212c/
oh my zsh