Configure your terminal

- 5 mins

抛弃bash,享受zsh

>表示命令行

需要从github下载一些工具

更多好的插件遇到了尽量会在这个文档中补充

Nerd Font

Iconic font aggregator, collection, and patcher

提供了大量的图标,也提供了很多编程用的字体。

安装这些字体,以便下面这些插件的效果可以在你的终端上正常显示。

安装字体后,需要修改系统字体选项;或者,只修改终端的字体选项。

nerd

下载

官网:nerd font

选择自己喜欢的字体下载,并在系统中安装。如果你GUI桌面,可以直接打开下载的字体文件,并点击安装。如果用的非GUI桌面,参考下面示例。

如果你有选择恐惧症,可以使用下面推荐设置(但不是最好的)

> mkdir -p ~/.local/share/fonts
> cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
> fc-cache -f -v

设置默认字体

系统设置:在你的系统设置里搜索字体选项。实在不会,试试STFW方法?

具体每个终端的修改方法:https://github.com/romkatv/powerlevel10k#manual-font-installation。

Zsh

zshPaul Falstad开发,但取名于Zhong Shao教授。

安装

> sudo apt update; sudo apt install zsh

设置zsh为你的默认shell

> sudo chsh -s $(sudo which zsh)

重启电脑后可完成设置。

zsh 框架

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout…

“Oh My ZSH!”

oh my zsh官方效果图:

zsh

获取Oh My ZSH

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

重启shell,你会看到默认配置的oh my zsh。现在看看用户的主目录的.zshrc文件,你基本可以靠自己阅读配置注解改改他的默认配置。

.bashrc中复制你原来自己增加的配置,原来自带的配置不要复制,尤其是PATH这样的配置(否则,你会发现原来bash可以运行的程序在zsh中提示不存在该命令?)。像.zshrc的第一个配置,你需不需要加上~/.local/bin呢?

主题

themes,这里有完整的zsh自带主题介绍,选择你自己喜欢的吧。在页面的最下端还有非自带的主题的介绍,这些非自带主题就需要自己花时间折腾,但是最终效果一般会比自带的好,比如下面推荐的非自带主题。

推荐

主题和官网链接:powerlevel10k

官方效果图:

p10k

安装:

>>> git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

之后,修改.zshrc中的主题选项为p10k

配置方法:

再次重新运行zsh会有p10k引导教程。更细的配置(比如添加显示的内容,修改分隔符号等等)请查看官方文档,网页连接已经在超连接中给出。

插件

plugins,这里有完整的插件介绍,选择你需要的插件来提高你的工作效率。

推荐

Tmux

宁愿开多个终端/ssh连接, 也不愿意花时间找找有没有tmux ,

于是用鼠标来回切换, 浪费不必要的时间。 ——出自ysyx

从引语就知道为什么要用tmux了吧。

tmux wiki:https://github.com/tmux/tmux/wiki

安装

>>> sudo apt install tmux

配置

在你的主目录下创建.tmux.conf,初步的配置:

set -g prefix C-a # 设置前缀键,默认的C-b有点不人性化 

# 新建窗口用父亲的工作目录
bind-key c new-window -c "#{pane_current_path}"
bind-key % split-window -h -c "#{pane_current_path}"
bind-key '"' split-window -c "#{pane_current_path}"

# 导航方式如同vi,默认是emac
set-window-option -g mode-keys vi

插件

默认的下面的状tmux太丑?试试.tmux或者是powerline

.tmux

oh my zsh,当然就有oh my tmux(毫无逻辑关系)。.tmux就是这样的oh my tmux

同时他也是可以tmux的配置包。

仓库地址:https://github.com/gpakosz/.tmux

官方效果图:

tmux

安装
> cd
> git clone https://github.com/gpakosz/.tmux.git
> ln -s -f .tmux/.tmux.conf
> cp .tmux/.tmux.conf.local .

不要忘记命令中的点

配置

.tmux.conf.local文件已经有详细的注释,可以按照注释修改配置文件。

比如,修改状态块分隔符,文件中搜索seperator

powerline

全面的状态栏工具,不仅仅只向tmux提供,同时也向bash, zsh, nvim等提供状态栏。

安装

安装方法见官方文档

tmux状态栏

安装方法见官方文档

配置

这个就需要自己阅读配置文档,然后修改或着自己编写相应的代码了。

Vim

还在使用普通编辑器,还在用鼠标或者键盘上下进行代码片段跳跃?来用用vi吧。

什么?你还在用vi,来用用vi改进版vim吧。

不会还有人用vim吧,来试试全新内核nvim(neovim)neovim

nvim配置太麻烦了,来用用基本免配置的lvim吧。

vim的插件都来自github上的开源软件,建议以适当的方式访问

Nvim

安装

对于Ubuntu用户,不要在apt中安装,版本太老,建议在Github上下载安装包。

发行版下载源和安装说明:https://github.com/neovim/neovim/releases/tag/stable

配置

这个我还真没法教,每个人都有独特的代码习惯和审美特点。这里有全部的插件介绍,选择自己喜欢的进行配置吧。

neovimcraft集聚了优秀的插件和最新的插件,还有插件排行榜。

但是我还是有我自己的配置文件,并在Github建有仓库,名叫Ynvim。基本满足了我自己需求;安装方法和配置参见nvim Config

自己配置的效果图:

image-20230207113218071

但是都是一些简单的配置,具体配置方法,请在上文中的插件链接中找到对应的插件文档,阅读文档进行配置

Lvim

不想自己配置,想直接使用现代化编辑器,lvim确实是一个不错的选择。

官网:lunarvim

官方效果图:

lvim

安装

> LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/fc6873809934917b470bff1b072171879899a36b/utils/installer/install.sh)

安装完成后,运行lvim,开箱即用。

NvChad

目前排行榜第一,但是该项目只提供了基本的nvim配置,更多的选项需要自己配置,所以,该项目需要有一定配置经验和水平的人使用。初学者使用该项目较为困难。

建议能用lvim就用lvimlvim的名气正在快速增长中。

官网:https://nvchad.com/

官方效果图:

NvChad banner screenshot

安装

> git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 && nvim

使用他们

上述介绍的两个版本,以及我自己提供的配置,为了更好的使用他们(比如快捷方式),需要你去读读他们的文档。不然,就不如使用你原来的IDE啦。

如果你想学习如何使用vim,可以试试下面这个命令:

>>> nvim +Tutor

杂项

Linux扩展工具

ripgrep

grep的替代品,使用和速度上都要好于grep。

安装:

> sudo apt install ripgrep

autojump

一种更快的方式进行目录跳转。

对于oh-my-zsh的安装方法:在.zshrc的插件中,添加autojump

其他平台的安装方法:https://github.com/wting/autojump#installation

fdfind

find的替代品,更加的好用和快捷。

安装源:https://github.com/sharkdp/fd#installation

> sudo apt install fd

lazygit

宁愿把项目简单复制好几份, 也不愿意用git来做版本控制,

于是版本管理越来越混乱, 将来不得不投入更多时间。 ——出自ysyx

但是,git接口是在太难用了;好在有tmuxgit插件,但是还有更好用的。

链接:lazygit

效果预览:

lg

安装根据系统安装方法不同,请自己阅读官网文档

pwndbg

原始的gdb的调试也不够人性化,试试这个

链接:pwndbg

效果图:

image-20230206213710490

安装方法:

> git clone https://github.com/pwndbg/pwndbg
> cd pwndbg
> ./setup.sh

mobile ssh

ssh 是一个强大工具,但是存在一个小小的问题,网络一不小心断了,连接也就断了。

mosh的想法就是解决这个问题,它采用UDP建立连接,即使断了,也会尝试连接。

链接:mosh官网

安装方法:

> sudo apt install mosh

nvm

用于管理nodenpm版本,可以使用root权限。

链接:nvm

安装方法:

>>> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

More

更多好用的工具需要你我的探索

终端模拟器

Windows

对于Windows用户,我推荐Tabby,比较现代化。同样它提供了LinuxMac版本。

链接:tabby

img

Linux

网上的推荐是kitty,采用了GPU加速,提供了更多的设置选项,包括主题。

优点:提供了类似tmux的多路复用操作,便捷键要比tmux友好,但是UI不如自己配置的tmux。

效果图:

image-20230206214056682

链接:kitty

学习使用工具

即使给你推荐再多的工具,你不知道怎么用,这不有点浪费电脑空间

学习方法:

Pei Meng

Pei Meng

Someone who interested in Computer Architecture.