iTerm2 的配置与美化

news2024/11/23 18:40:19

前言

iTerm2是默认终端的替代品,也是目前Mac系统下最好用的终端工具,集颜值和效率于一身。

最近换了一台新的 MacBook Pro ,需要重装电脑上的常用软件。为了将 ITerm2 DIY为自己喜欢的样子,花了不少时间。为了方便下次再配置,特地写下此文进行记录。

iTerm2 的下载链接:iterm2.com/

iTerm2 的配置

1. 设置默认 shell 为 zsh

查看系统所有的 shell 列表

cat /etc/shells
复制代码

设置默认 shell 为 zsh,它功能比较多,会好使一些。

chsh -s /bin/zsh
复制代码

2. 安装 oh-my-zsh

oh-my-zsh 是一款社区驱动的命令行工具,它基于 zsh 命令行,提供了主题配置,插件机制,大大提高了可玩(用)性。它的 Github 地址为:github.com/robbyrussel…

我们可以使用 curl 安装:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
复制代码

3. 配置命令自动提示

这里我们用到 zsh-autosuggestions 插件,它可以让终端提示我们接下来可能要输入的命令,按右键即可补齐,提高我们工作的效率。

首先,我们先将仓库克隆到 ~/.oh-my-zsh/custom/plugins 目录下

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
复制代码

然后,用 vim ~/.zshrc 打开文件,找到其中的插件设置,默认是 plugins=(git),我们将其修改为

plugins=(zsh-autosuggestions git)
复制代码

最后,需要重启终端让其生效。

4. 安装 HomeBrew

安装 HomeBrew 包管理工具,方便后续各种软件包的安装。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
复制代码

iTerm2 的美化

1. 设置 zsh 主题

我们可以通过 vim ~/.zshrc 命令打开 zsh 的配置文件,修改其中的 ZSH_THEME 字段的值,进行主题的修改。

大家可以在 github.com/ohmyzsh/ohm… 链接中,选择自己喜欢的主题。

我选择的主题的是 crcandy,因为它选择的信息比较全,而且它不依赖其他的特殊字体,可以在不同的终端下正常显示。

ZSH_THEME="crcandy"
复制代码

该主题的显示信息如下(忽略配色):

2. 设置配色方案

在 iTerm2 中,按照 iTerm2 -> Preferences -> Profiles -> Color 进行点击,在右下角的 Color Presets... 中选择配色方案,这里我选择 Solarized Dark。

之后,我们再进行一些微调,让显示的色彩变得更加美观一些。

3. 设置语法高亮

语法高亮效果需要 zsh-syntax-highlighting 插件支持,我们可以用 HomeBrew 进行下载:

brew install zsh-syntax-highlighting
复制代码

命令执行完后,我们记录一下插件安装成功后的路径。然后用 vim ~/.zshrc 打开 zsh 的配置文件,在其末尾添加:

source /usr/local/Cellar/zsh-syntax-highlighting/0.7.1/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
复制代码

PS:在 Vim 中,用 shift + g 可以直接跳转到最后一行。

最后,还要执行下面命令,让配置生效。

source ~/.zshrc
复制代码

4. 调整 Status Bar

在 Preferences -> Profiles -> Session 底部,勾选上 Status bar enabled,开启导航栏。

点击右边的 Configure Status Bar 按钮可设置 Status Bar 显示的内容,只要将 Menu 里面的内容拖拽到下面的 Active Components 区域即添加到 Status Bar 中,下面是我的设置(仅供参考):

接着,我们到 Preferences -> Appearance -> General 中,将 Theme 设置为 Minimal, 将 Status bar location 设置为 Bottom。

后续使用优化

1. 解决 oh-my-zsh 警告信息

我们发现每次打开 iTerm2 都伴随着 oh-my-zsh 的警告信息,这会影响我们的使用心情。我在网上找到了下面有两种解决方案。

方案一: 按照安装提示去修改对应目录的权限,在控制台执行如下命令

chmod 755 /usr/local/share/zsh

chmod 755 /usr/local/share/zsh/site-functions
复制代码

方案二:~/.zshrc 文件中添加如下内容

ZSH_DISABLE_COMPFIX=true
复制代码

2. 关闭 iTerm2 的每日提示

Preferences > Advanced > 搜索 Tip of the Day > Disable the Tip of the Day 改为 Yes

参考资料

  • www.jianshu.com/p/405956cda…
  • sspai.com/post/63241

作者:VeggieOrz
链接:https://juejin.cn/post/6994453537690222599
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python五子棋代码最简单的,python五子棋代码画棋盘

大家好,本文将围绕python五子棋代码输赢逻辑判断展开说明,如何用python制作五子棋游戏是一个很多人都想弄明白的事情,想搞清楚python五子棋代码最简单的需要先了解以下几个事情。 1、求解用python 编写五子棋怎样编写判断输赢的函数&#xff…

C++项目——高并发内存池(1)--介绍及定长内存池

1.什么是内存池 1.1 池化技术 将程序中需要经常使用的核心资源先申请出来,放在一个池内,由程序自己管理,这样可以提高资源的使用效率,也可以保证本程序占有的资源数量。 比如之前博文实现的线程池,就是预先的申请出…

CRM哪家好?这5个CRM管理系统很好用!

CRM哪家好?这5个CRM管理系统很好用! CRM(Customer Relationship Management)即客户关系管理,能够帮助提高客户的价值、满意度、赢利性和忠实度,缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道,…

浅谈c++引用

浅谈c 在这里开设 <<浅谈C>> 系列专题,针对C重点内容展开探讨与观察底层,同时也是一个面试专栏,所选知识大多为面试常见问题.前期较为基础,难度会逐渐上升哦~ 本专栏采用经典的哲学三段论编写:是什么|为什么|怎么做 力图精简,高效. 第一章: 浅谈C函数重载 传送门…

ansible剧本(playbook)

目录 一、playbooks 概述以及实例操作 1、playbooks 的组成 2、操作示例一&#xff1a; 2.1 编写yaml文件也就是playbook 2.2 修改配置文件并放入/opt/目录下 2.3 运行playbook 3、操作实例二&#xff1a;定义、引用变量 4、操作示例三&#xff1a;指定远程主机sudo切换…

音频格式、参数、开发相关总结

常见的语音格式介绍PCM&#xff1a;音频纯裸数据。WAV&#xff1a;微软在windows存储的一种纯裸数据格式。AIFF&#xff1a;苹果在Mac上存储的一种纯裸数据格式。MP3&#xff1a;为ISO/IEC国际标准&#xff0c;是现在最普及的一种数字音频编码和有损压缩格式&#xff0c;几乎所…

Android Spider XX兔 Wechat Cookie 校验 注册案例(二)

声明 此次案例只为学习交流使用&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;切勿用于其他非法用途&#xff1b; 文章目录声明前言一、资源推荐二、任务说明三、App抓包分析四、还原JS加密1、Date类2、MD5类3、组合调用还原 api_token 参数4、execjs模…

04- 图像卷积及图片的模糊和边缘检测 (OpenCV基础) (机器视觉)

知识重点 padding指的就是填充的0的圈数重构图片大小: img cv2.resize(img, dsize(300, 300))模糊操作: dst cv2.filter2D(img, -1, kernel) kernel np.ones((5, 5), np.float32)/ 25 dst cv2.filter2D(img, -1, kernel) # 卷积操作 模糊操作: 方盒滤波: dst cv2.b…

AD使用教程 图文并茂 AD2020四层板

文章目录设计流程图&#xff1a;资源下载&#xff1a;自定义快捷键&#xff1a;&#xff08;按照个人习惯&#xff09;默认快捷键&#xff1a;一、软件主页面1.主界面2.Panels面板3.系统设置3.自定义快捷键4.新建工程二、原理图库1.原理图库面板2.管脚属性三、原理图绘制绘制步…

C++011-C++循环+枚举

文章目录C011-C循环枚举枚举枚举思想枚举举例题目描述 统计因数题目描述 质数判定错误方法一&#xff1a;优化方法1&#xff1a; 用break实现优化优化方法2&#xff1a; sqrt(n)题目描述 水仙花数题目描述 7744问题实现方法1优化方法2题目描述 余数相同问题题目描述 特殊自然数…

《第一行代码》 第六章:数据库与存储方案

一&#xff0c;持久化技术简介 也就是数据存储在内存中&#xff0c;会丢失。需要存储在存储设备中。而持久化技术&#xff0c;就是提供了手段&#xff0c;让数据再试瞬时状态和持久状态之间转换。 安卓开发提供了三种数据的持久化技术&#xff1a; 二&#xff0c;文件存储 …

【HDFS】FsDatasetImpl#getReplicaVisibleLength

调用点 DataNode.getReplicaVisibleLength(ExtendedBlock) (org.apache.hadoop.hdfs.server.datanode) // ClientDataNodeProtocolBlockChecksumComputer in BlockChecksumHelper.BlockChecksumComputer(DataNode, ExtendedBlock, BlockChecksumOptions) (org.apache.hadoop.hd…

ros中时间的概念:ros::Time、ros::Duration、定时器ros::Timerros::Rate、ros::WallTime

1. ros时间格式说明 有时刻和持续时长(可以是负数)&#xff0c;分为秒和纳秒&#xff0c;换算关系&#xff1a;1sec1e9nsec。Time指的是某个时刻&#xff0c;而Duration指的是某个时段。 int32 sec int32 nsec 2. ros::Time::now() 记录当前时刻 3. ros::Duration 代表持续的…

Linux 输出重定向 “>”、“>>”、“freopen”

有时候&#xff0c;我们编码时会使用printf或fprintf去打印输出调试信息或者报错信息&#xff0c;但正常这样去打印&#xff0c;只会显示在终端&#xff0c;如果终端关闭了&#xff0c;或者系统宕机了等&#xff0c;这些输出信息就没有了&#xff0c;为了将这些重要的信息保存下…

java诊断与调优常用命令jmap、jstack、jstat使用实战

java应用运行过程中难免会出现问题&#xff0c;特别是在生产环境&#xff0c;发生异常或宕机情况&#xff0c;需要诊断与分析&#xff0c;定位原因&#xff0c;进行优化&#xff0c;避免下次再次出现问题。 虽然现在有很多可视化工具&#xff0c;使用起来比命令行更方便&#x…

开学季好用电容笔有哪些?好用实惠的电容笔推荐

随着科学技术的快速发展&#xff0c;ipad的影响力越来越大&#xff0c;而且ipad的用户也越来越多&#xff0c;如果要提高ipad的功能&#xff0c;让ipad更加有趣&#xff0c;那么就需要一款非常适合自己&#xff0c;并且非常实用的电容笔。那么&#xff0c;究竟该选择哪个品牌的…

SpringBoot整合分布式锁redisson

1、导入maven坐标<!-- 用redisson作为所有分布式锁&#xff0c;分布式对象等功能框架--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.5</version></dependency>2、red…

蓝牙 - BLE中的连接和扫描参数设定

连接参数 / Connection Parameters 连接参数由发起设备与连接请求一起发送&#xff0c;当连接建立后&#xff0c;任何一个设备都可以修改。这些参数如下&#xff1a; 连接间隔 / Connection Interval 在低功耗蓝牙连接中&#xff0c;使用了跳频方案。两台设备发送各自数据和接…

day48【代码随想录】动态规划之最长递增子序列、最长连续递增序列、最长重复子数组

文章目录前言一、最长递增子序列&#xff08;力扣300&#xff09;二、最长连续递增序列&#xff08;力扣674&#xff09;三、最长重复子数组&#xff08;力扣718&#xff09;前言 1、最长递增子序列 2、最长连续递增序列 3、最长重复子数组 一、最长递增子序列&#xff08;力扣…

rocketmq延时消息自定义配置;topic下tag使用

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分&#xff1a; nameserver&#xff1a;保存路由信息broker&#xff1a;保存消息生产者&#xff1a;生产消息消费者&#xff1a;消费消息 延时消息的处理是在其中的broker中。 但是…