<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Zsh on Foam 的博客</title>
    <link>https://blog.foamzou.com/tags/zsh/</link>
    <description>Recent content in Zsh on Foam 的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 11 Apr 2020 20:52:51 +0800</lastBuildDate>
    <atom:link href="https://blog.foamzou.com/tags/zsh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>fish shell切换到zsh</title>
      <link>https://blog.foamzou.com/posts/fish-shell-to-zsh/</link>
      <pubDate>Sat, 11 Apr 2020 20:52:51 +0800</pubDate>
      <guid>https://blog.foamzou.com/posts/fish-shell-to-zsh/</guid>
      <description>&lt;p&gt;fish shell 想来用了也3年多了，大部分时间并不是在用fish shell的语法特性，而是觉得自带的主题好看，以及自动补全功能。当时挑选 xx shell时还网上做了功课，也在zsh和fish之间徘徊，后面看了阮一峰老师的&lt;a href=&#34;http://www.ruanyifeng.com/blog/2017/05/fish_shell.html&#34;&gt;推荐文章&lt;/a&gt;后就入坑了fish-shell 😂 今天装了一个软件，要用到alias别名，翻了翻&lt;code&gt;~/.bash_profile&lt;/code&gt;，&lt;code&gt;~/.config/fish/config.fish&lt;/code&gt;，发现按我之前的习惯，需要将别名配置在这两个文件（后者是fish shell启动时会读取的配置文件，相当于bash shell 的 bash_rc/profile）。为什么不统一放到bash_profile，然后在fish的config文件里&lt;code&gt;source&lt;/code&gt;呢？因为fish shell不支持bash语法，而我的bash_profile有一些bash。 今天看了看我的bash_profile，看到了之前配置的autojump，因为fish不支持source该配置，导致换了fish后没用过了（不过貌似fish也有autojump插件？）。总之这算是一个契机吧，把fish换成支持bash语法的zsh，以后配置alias、exports就只配置在bash_profile就好了。&lt;/p&gt;
&lt;h2 id=&#34;mac安装zsh&#34;&gt;mac安装zsh&lt;/h2&gt;
&lt;p&gt;mac出厂就自带了zsh，&lt;code&gt;zsh --version&lt;/code&gt; 看到版本号应该蛮旧的，毕竟没更新过。重新装一个吧&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装zsh: &lt;code&gt;brew install zsh zsh-completions&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;切换默认shell为zsh: &lt;code&gt;chsh -s /bin/zsh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;安装oh my zsh: &lt;code&gt;sh -c &amp;quot;$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ps. 如果之前存在~/.zshrc文件，这次安装oh-my-zsh会将原来的文件备份为.zshrc.pre-oh-my-zsh，我将这个备份文件的配置追加到新的.zshrc里了。&lt;/p&gt;
&lt;h2 id=&#34;主题&#34;&gt;主题&lt;/h2&gt;
&lt;p&gt;主题很重要，影响日常工作的心情和效率呢。 主题列表：https://github.com/ohmyzsh/ohmyzsh/wiki/themes 可以在上面列表挑选个你喜欢的，在 ~/.zshrc 配置&lt;code&gt;ZSH_THEME=&amp;quot;主题名&amp;quot;&lt;/code&gt;。当然，如果你是一个随心主义者，也可以将其设置为&lt;code&gt;random&lt;/code&gt;，每次启动zsh都会随机一个主题。&lt;/p&gt;
&lt;h2 id=&#34;安装自动建议插件&#34;&gt;安装自动建议插件&lt;/h2&gt;
&lt;p&gt;fish shell有个很好用的功能: 输入命令时，会用灰颜色提示你最近的命令，使用方向键↑可以翻看相同前缀的历史命令。 zsh也有类似的&lt;a href=&#34;https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh&#34;&gt;插件&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;:-&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 编辑 ~/.zshrc，若有其他插件，则括号里面用空格隔开&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;plugins&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=(&lt;/span&gt;zsh-autosuggestions&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/fish-shell-to-zsh/e9a493e8-fda7-4a8c-bb27-e4f8f31fcce4.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;移除不必要的别名&#34;&gt;移除不必要的别名&lt;/h2&gt;
&lt;p&gt;oh-my-zsh添加了很多git的别名，例如git -&amp;gt; g, git fetch -&amp;gt; gf，恰好我有其它命令和这些别名冲突。所以我在bash_profile将这俩别名干掉了&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;unalias&lt;/span&gt; g
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;unalias&lt;/span&gt; gf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;其他&#34;&gt;其他&lt;/h2&gt;
&lt;p&gt;zsh 默认支持一个叫 &lt;code&gt;magic function&lt;/code&gt; 的功能，但这会给我带来困扰，粘贴url时会帮我自动转义，很烦。可以 &lt;code&gt;vim ~/.zshrc&lt;/code&gt; , 将 这行的注释去掉：`&lt;code&gt;DISABLE_MAGIC_FUNCTIONS=true&lt;/code&gt; 对了，最后还是安利下 autojump , 用的时间越长，越节省时间呢。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
