更新(2020):
(当了一年社畜,终于有空来发文了,空白的19年真是令人窒息)
- Window Manager: 原本只有 Terminal 支持分屏,现在用了 i3,全世界都可以分屏了 🙂
- Terminal: 似乎没啥变化???
- Shell: 似乎没啥变化???
- Vim: 似乎没啥变化???
(自行把文中脚本里出现的版本号换成最新的)
简介
i3
一个让你再也不用狂按 <Alt+Tab> 或者 摸鼠标 的窗口管理器
Tilix
一个实用(分屏、密码本),美观(透明、自定义背景图)的终端
Zsh
各种比 Bash 好用(一堆补全、别名、插件)和 好看(一堆主题)
Vim
充分利用键盘空间提高效bi率ge
安装
(以ubuntu16.04 64位为例???都2020年了。。。
前置
依赖包
1 2 3 4 5 6 7 8 9 10 |
# common sudo apt install git build-essential autoconf cmake python python-dev python3 python3-dev python3.7 python3.7-dev curl https://sh.rustup.rs -sSf | sh # searchers: rg ag fzf wget https://github.com/BurntSushi/ripgrep/releases/download/12.1.1/ripgrep_12.1.1_amd64.deb sudo dpkg -i ripgrep_12.1.1_amd64.deb sudo apt install silversearcher-ag git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install |
字体
选用 Microsoft YaHei Mono(等宽 + 中文 Microsoft YaHei + 英文 Consolas),再给其 patch 上 各种好qi看guai的图标
你可以直接下载我服务器上已经 patch 好的字体
也可以自己下载 Microsoft YaHei Mono,然后再用 Nerd Fonts Patcher 为其添加上你喜欢的图标
准备好字体之后,还要安装一下:
1 2 |
sudo cp Microsoft\ YaHei\ Mono\ Nerd\ Font\ Complete.ttf /usr/share/fonts/ sudo fc-cache -fv |
其他
1 2 |
git clone http://git.kernel.org/pub/scm/docs/man-pages/man-pages sudo cp -r man-pages/man[1-8] /usr/share/man/ |
1 2 3 4 5 |
wget ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api-4.5.2.man.tar.bz2 tar -xvf libstdc++-api-4.5.2.man.tar.bz2 cd libstdc++-api-4.5.2.man/man3/ rename "s/^std:://" * sudo cp * /usr/share/man/man3 |
i3
首先是安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# i3 /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2020.02.03_all.deb keyring.deb SHA256:c5dd35231930e3c8d6a9d9539c846023fe1a08e4b073ef0d2833acd815d80d48 sudo dpkg -i ./keyring.deb sudo bash -c 'echo "deb https://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list' sudo apt update sudo apt install i3 # rofi sudo add-apt-repository ppa:jasonpleau/rofi sudo apt update sudo apt install rofi # bumblebee-status pip3 install --user bumblebee-status netifaces psutil # i3-resurrect python3.7 -m pip install --user i3-resurrect # wmfocus sudo apt install libxcb-keysyms1-dev cargo install --features i3 wmfocus # gnome sudo apt install ubuntu-gnome-desktop gnome-panel |
然后是配置:
1 2 3 4 |
# 下载我的 i3 配置 # (还要自己删掉自动生成的 ~/.config/i3,我的配置放在了 ~/.i3/config 里) git clone https://github.com/gou4shi1/.i3 ~/.i3 echo 'export PATH="$HOME/.i3/bin:$PATH"' >> ~/.profile |
纵然 i3 百般好,gnome 的各种特性(比如截屏键,i3需要额外配置才能做到)也令人难以割舍,小孩子才做选择,我全都要:
1 2 3 |
sudo wget -P /usr/share/xsessions https://cloud.goushi.me/i3/gnome-i3.desktop sudo wget -P /usr/share/gnome-session/sessions https://cloud.goushi.me/i3/gnome-i3.session sudo wget -P /usr/share/applications/ https://cloud.goushi.me/i3/i3.desktop |
重启之后,在登陆界面里,点击用户头像隔壁的小圆圈,选择
GNOME with i3
第一次进去会发现最下面的 i3-status 上面多出了一条很丑的 gnome 的底边栏,按住
<Alt> 鼠标右键 这玩意,点击 “删除该面板”
还可以按住
<Alt> 鼠标右键 顶边栏,点击 “添加到面板”,增加一些有用的工具,比如
Netspeed 会在顶边栏里显示 实时上下行流量
Tilix
首先是安装:
1 2 3 4 |
sudo add-apt-repository ppa:webupd8team/terminix sudo apt update sudo apt install tilix sudo update-alternatives --config x-terminal-emulator |
然后是配置:
1 2 3 |
# My configuration wget https://cloud.goushi.me/tilix/tilix.dconf dconf load /com/gexperts/Tilix/ < tilix.dconf |
Zsh
首先是安装:
1 2 3 4 5 6 7 8 9 10 |
# 安装 zsh sudo apt install zsh chsh -s /bin/zsh # 安装 oh-my-zsh sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" # 额外下载一些插件(oh-my-zsh 里没有自带) # zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
然后是配置:
在
~/.zshrc 里
把
ZSH_THEME="robbyrussell" 改成你喜欢的主题,比如
ZSH_THEME="agnoster"
(传送门:更多主题)
添加下面这行,则默认用户登录时 prompt 隐藏 user_name@machine_name
DEFAULT_USER="gou4shi1"
(要把 gou4shi1 改成你的用户名)
把
plugins=(git) 改成
plugins=(git vi-mode z extract sudo debian systemd command-not-found colored-man-pages fzf zsh-syntax-highlighting history-substring-search)
即可启用这些插件
之后重启终端或者
source ~/.zshrc
(agnoster 这个主题要使用 Powerline Fonts,所以要先完成前置里的步骤,安装带 Powerline Fonts 的字体)
Vim
首先是安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Vim sudo add-apt-repository ppa:jonathonf/vim sudo apt update sudo apt install vim # Pygments pip install Pygments # Universal Ctags git clone https://github.com/universal-ctags/ctags --depth 1 cd ctags ./autogen.sh ./configure make sudo make install # Gtags wget http://tamacom.com/global/global-6.6.2.tar.gz tar xvf global-6.6.2.tar.gz cd global-6.6.2 ./configure --with-universal-ctags=/usr/local/bin/ctags make -j4 sudo make install |
然后是配置:
原本是想直接用 Vim 8 自带的 packages 管理插件,然后再自己写个脚本方便操作
结果发现 GayHub 上已经有人写好了这个脚本 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 安装插件管理工具 pack wget https://github.com/maralla/pack/releases/download/v0.2.3/pack-v0.2.3-x86_64-unknown-linux-gnu.tar.gz tar -vxf pack-v0.2.3-x86_64-unknown-linux-gnu.tar.gz cp pack ~/.local/bin/ # 下载我的 vim 配置 # (如果之前已经有别的 vim 配置,先 mv 一下 # mv ~/.vimrc ~/.vimrc.bak # mv ~/.vim ~/.vim.bak cd && git clone https://github.com/gou4shi1/.vim # 根据配置安装插件 ~/.vim/install.sh |
使用
i3
- 切换布局: <Win+w/e/d>(分别对应 tab/tile/stack)
- 聚焦相邻窗口: <Win+h/j/k/l/u/d>(分别对应 left/down/up/right/parent/child)
- 移动窗口: <Shift+Win+h/j/k/l>(分别对应 left/down/up/right)
- 聚焦特定窗口: <Win+f> 然后每个窗口隔壁都会出现一个大大的字母,再输入对应字母就会跳转到对应窗口,类似于vim-easymotion
- 打开程序: <Win+;> 然后输入关键字(支持模糊匹配和按使用频率排序)
- 锁屏关机重启: <Win+0> 然后输入关键字(跟打开程序一样,调用了 rofi)
其他快捷键可以看看 ~/.i3/config
Tilix
- 在右边分屏 <Ctrl+Shift+r>
- 在下边分屏 <Ctrl+Shift+d>
- 关闭分屏 <Ctrl+d>
- 切换分屏 <Alt+方向键>
其他快捷键可以看看配置和官网的介绍
Zsh
补全
各种强大的补全
比如要关闭名字带有 nautilus 的进程,不再需要先查询 PID 再 kill
直接输入
kill nautilus,再按
<Tab>
还支持通配符补全等等
总之,多多按
<Tab>,会有新发现
(可以看看 这里 的视频演示)
别名
oh-my-zsh 自带了各种方便的 alias
比如直接输入
take xxx 等同于
mkdir xxx && cd xxx
还支持针对文件类型的补全
比如
alias -s cpp=vim
将会使输入
xxx.cpp 等同于
vim xxx.cpp
点击 这里 查看更多
插件
这年头,没有一个丰富的插件生态,怎么出来混?
下面介绍了刚刚的 安装部分 里启用的插件
- git
一系列 git 命令的 alias - vi-mode
给终端添加 vi 模式 - z
根据 cd 历史提供智能跳转目录功能(支持多关键字哟) - extract
忘掉那一大堆解压命令、参数吧,现在只需要 x - sudo
按两次 <ESC> 将自动在当前命令开头 添加/删除 sudo - debian
一系列与 apt 相关的 alias 和 function - systemd
一系列与 systemctl 相关的 alias 和 function - command-not-found
调用 ubuntu 的 command-not-found 包,在找不到命令时会给出建议 - colored-man-pages
给 manual 加点颜色 - zsh-syntax-highlighting
给 shell 加点颜色(类似 fish 那样的语法高亮) - history-substring-search
根据已输入的内容 搜索命令历史 - fzf
<Ctrl-T> 模糊搜索当前目录文件
<Ctrl-R> 模糊搜索命令历史
Vim
请转至本站的另一篇文章:
https://samsaffron.com/archive/2019/04/09/my-i3-window-manager-setup
You can write some scripts with the i3 IPC to do anything you want 🙂