草庐IT

Mac 使用 iTerm2 + Oh My Zsh 配置个性化终端

_涼城 2023-10-24 原文

安装 iTerm2

iTerm2Terminal 的替代品,可以提供更多自定义的操作

iTerm2

  • 前往iTerm2 官方首页 下载,解压后移动至 /Applications
  • 直接点击 这里 下载,解压后移动至 /Applications
  • 使用 brew cask install iterm2 安装

iTerm2 主题配置

打开 iTerm2-> Preferences (或者 Command + ,),然后 Profiles -> Colors -> ColorPresets

ZSH

Zsh 全称为 Z shellZsh 是一种为交互式使用而设计的 Shellbashkshtcsh 的许多有用特性都被合并到 Zsh 中。

Z shell

在安装 Oh My Zsh 之前我们需要将 Zsh 设置为当前用户的默认 Shell。可以通过以下几个命令查看并配置。

  • more /etc/shells 查看当前全部的 Shell

    more /etc/shells

  • echo $SHELL 查看当前的 Shell

    echo $SHELL

  • chsh -s /bin/zsh 设置 ZSH 为当前用户的默认 Shell

安装 oh my zsh

Oh My Zsh 用于管理 Zsh 配置。它捆绑了数千个有用的功能、助手、插件、主题。官方建议使用下面脚本安装 Oh My Zsh

    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Oh My Zsh安装过程

安装好之后,可以在当前用户目录 ~/ 下通过 ls -a 查看到新增 .oh-my-zsh 文件夹 和 .zshrc 文件

zshrc 配置文件

zshrcZSH 的配置文件 ,如果之前没有此文件,会通过 Oh My ZSH 安装自动生成,里面会存放一些环境变量及配置,在终端启动时运行。当然了,也可以配置自定义的环境变量。

~/.zshrc 文件中,可以看到:

  • export ZSH="$HOME/.oh-my-zsh" 是 oh-my-zsh 默认的安装路径,如果想要更换目录,需要修改这里 ZSH 的环境变量。

  • ZSH_THEME="robbyrussell" 设置终端渲染的主题,

  • zstyle ':omz:update' mode disabled 可以设置是否自动更新

    • disabled :关闭
    • auto 自动
    • reminder 提醒
  • ZSH_CUSTOM=/path/to/new-custom-folder 用户自定义的文件夹,默认路径在 .oh-my-zsh/custom

  • plugins=(git) oh-my-zsh 可以配置多个插件,这里默认配置了 git

  • source $ZSH/oh-my-zsh.sh 加载 oh-my-zsh.sh ,请勿删除

Oh My ZSH 主题

Oh My ZSH 内置了许多主题,除了默认的 robbyrussell 主题以外,还有其他的可以参考文档oh-my-zsh Themes,例如:agnoster ,也可以设置 random 随机主题,当然了也可以寻找其他资源存放在 '.oh-my-zsh/custom/themes' 目录下。例如 powerlevel10k

agnoster

agnoster

agnoster 主题的替换只需要将 ZSH_THEME="robbyrussell 更改为 ZSH_THEME="agnoster 即可,但是不同的主题可能需要指定的字体支持,agnoster就需要 Meslo 字体 支持,不然会出现乱码。字体仓库地址:powerline/fonts
官方推荐快速安装脚本如下:

git clone https://github.com/powerline/fonts.git --depth=1
./install.sh

之后打开 iTerm2-> Preferences (或者 Command + ,),然后 Profiles -> Text -> Font -> Chanage Font, 选择 Meslo LG M Regular for Powerline

Powerlevel10k

Powerlevel10k styles

Powerlevel10k 是一款 ZSH 主题,可以通过下面步骤安装在 Oh My Zsh 中,

  1. 克隆仓库

    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$ZSH/custom}/themes/powerlevel10k
    
  2. ~/.zshrc文件中设置 ZSH_THEME="powerlevel10k/powerlevel10k".

  3. 在终端中直接输入 p10k configure 通过内置配置向导进行配置。

Oh My ZSH 插件

zsh-syntax-highlighting

zsh-syntax-highlighting 是 一款高亮插件,下面是安装步骤:

  1. 克隆仓库

    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$ZSH/custom}/plugins/zsh-syntax-highlighting
    
  2. ~/.zshrc 文件中激活插件

    plugins=( 
     # other plugins...
     zsh-syntax-highlighting
    ) 
    source $ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
    
  3. 重启 iTerm2

zsh-autosuggestions

zsh-autosuggestions 是一款 ZSH 自动化补齐插件。

  1. 克隆仓库

    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$ZSH/custom}/plugins/zsh-autosuggestions
    
  2. ~/.zshrc 文件中激活插件

    plugins=( 
    # other plugins...
    zsh-autosuggestions
    ) 
    
  3. 重启 iTerm2

有关Mac 使用 iTerm2 + Oh My Zsh 配置个性化终端的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐