Iterm2的配置

使用powerlevel10k主题

今天想换个主题,发现powerlevel10k主题很流行,就按照github官方库方式做了替换,写下来做个细节备份。

  1. 安装方式
    公司的mac是直接用的官方推荐方式直接download到用户目录下,我的这台mac则是download到oh my zsh的自定义主题目录下了,本质上没有区别,source的sh不一样,不过作为自定义主题感觉更方便管理和切换。
  2. 字体安装
    推荐安装nerd font。推荐安装字体方式,在iterm2终端输入p10k configure,提示安装nerd font时 输入yes即可
  3. 配置
    输入p10k configure,根据提示傻瓜式输入对应选项即可,这个shell交互gui做的真不错
  4. vs code终端字体兼容配置
    在设置setting.json中增加"terminal.integrated.fontFamily": "MesloLGS NF"配置即可
  5. 最后就可以快乐地体验了

Iterm2主题

有很多人觉得mbp原生终端Terminal.app的界面很丑,不过我个人很喜欢,就像喜欢vs code的default dark主题一样,官方、简约、质感(这一点可能terminal没有)。然后我在给Iterm2找原生terminal的默认主题时,可能因为不可抗拒力的影响,先后四五次花了大量的时间都未果。最后准备放弃的时候,蓦然回首,那人却在灯火阑珊处。主题地址Terminal Basic

  1. 在setting > Profiles > Colors > Color Presets > Import 导入主题,记得选中主题后将MInimum ConoTrast的设置值拉到最左。
  2. 在setting > Profiles > Text 中光标Cursor选择Box,不勾选Blinking cursor,字体渲染Text Rendering选择Draw bold text in bold font,Use thin Strokes for anti-aliased text选择Never,Font选择有两种,一种是vs code的默认首选字体Menlo,一种是原生terminal.app的SF Mono Regular 11 磅。字体我更偏向于Menlo,有一定的信仰值在其中,不过强迫症最后为了一致性,还是选择了Mono记得是常规体 11 size。勾中Anti-aliased。时间有点久了,不过记得这里当时选择字体的时候是有个坑的,Mono默认在选择项中是找不到的,因为苹果个坑爹玩意很多终端的字体都给隐藏起来,不属于系统字体,就像不通过finder的前往文件夹或者shell你根本到不了/根目录。你可以通过google **iterm2 use system font**找到这么一篇教程How to Install & Use SF Mono Font on Mac with Other Apps,挺容易明白的,如果看不懂,该提高一下英语水平了。
  3. 在setting > Profiles > Window 中将Setting for New WindowsColumns设置为80,Rows设置为24

oh my zsh 主题

oh-my-zsh有很多漂亮的主题,你可以从官方的主题wiki中看,或者在电脑的~/.oh-my-zsh/themes路径下找到,我使用的是steeef这款主题,在mbp的显示屏上是相当的细腻好看。然后还要安装一些oh-my-zsh的插件来提升效率:

  1. 自动补齐插件

    使用的是zsh-autosuggestions,clone这个项目到~/.oh-my-zsh/plugins目录,在配置文件.zshrc的插件选项栏中加上

    1
    2
    3
    4
    5
    plugins=(
    # git
    # autojump
    zsh-autosuggestions
    )

    然后可以通过source命令立即生效修改后的配置文件,source ~/.zshrc

  2. 自动跳转插件

    安装autojump,brew install autojump
    在配置文件.zshrc的插件选项栏中加上

    1
    2
    3
    4
    5
    plugins=(
    # git
    autojump
    # zsh-autosuggestions
    )

    记得source立即生效

iTerm2 支持lrzsz

公司的服务器运维部署的有Jumpserver,不能像以前那样使用rsynz一键上传文件/文件夹了。找到了lrzsz这个服务,在同事的电脑上体验还可以,也不想安装多余的软件,就尝试在iTerm2上支持lrzsz服务。

  • 安装lrzsz服务,brew install lrzsz

  • git拉取iterm2-zmodem的两个shell文件,并拷贝到/usr/local/bin/

  • 在iTerm2 > setting > proofiles > advanced > triggers > edit 中创建触发器。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Regular expression: rz waiting to receive.\*\*B0100
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-send-zmodem.sh
    Instant: checked

    Regular expression: \*\*B00000000000000
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
    Instant: checked

    如下图所示:
    iTerm2-trigger

zsh终端下切换java版本

1
2
3
4
5
6
7
8
9
10
# JDK 8
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home"
#JDK 11
export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home"

export JAVA_HOME=$JAVA_8_HOME

# alias动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"

效果如下图
java版本切换

Nodejs的yarn包管理器与Hadoop的yarn命令冲突解决办法

1
2
3
# alias动态切换yarn
alias nodeyarn="ln -snf /usr/local/Cellar/yarn/1.19.1/bin/yarn /usr/local/bin/yarn"
alias hadoopyarn="ln -snf /usr/local/Cellar/hadoop/3.2.1_1/bin/yarn /usr/local/bin/yarn"