Featured image of post Linux Shell 与编辑器生态:vi/vim、ohmyzsh、tmux、NvChad 与 LunarVim

Linux Shell 与编辑器生态:vi/vim、ohmyzsh、tmux、NvChad 与 LunarVim

2018 视角下的 Linux 编辑器与 Shell 工具——vi/vim 光标移动速查、终端快捷键、ohmyzsh 主题与插件、NvChad/LunarVim Neovim 发行版、图形界面安装、history 痕迹清理

一、为什么是 2018 年这一份

2018 年这个时间点,Linux 编辑器与 Shell 生态进入"新派系萌芽"期:

  • vi/vim 8.x 仍是终端编辑器的事实标准
  • zsh + ohmyzsh 在 macOS 成为默认 shell 后反向推动 Linux 用户迁移
  • tmux 2.x 替代 screen 成为终端复用的主流选择(tmux 2.2 2015-2016,2.5 2017)
  • Neovim 在 0.2 之后开始获得关注,2018-2019 是 0.3 时代
  • SpaceVim 1.0 是 2018-01 发布的(一个早期 Neovim 发行版尝试)
  • 图形界面 + Wine 让 Linux 桌面也能跑部分 Windows 应用

这一篇覆盖 vi/vim 速查、终端快捷键、ohmyzsh 主题与插件、tmux 入门、NvChad/LunarVim Neovim 发行版、图形界面安装、history 痕迹清理——日常"在终端里干活"的全套工具。

阅读建议:先 vi/vim 速查 → 终端快捷键 → tmux → ohmyzsh → Neovim 发行版,按学习曲线由浅入深。

二、vi/vim 速查

vi 是 1976 年 Bill Joy 在 BSD 写的,1991 年 Bram Moolenaar 写 vim。至今仍是 Linux 终端编辑器的"必须会"。

2.1 模式

vi/vim 有三种模式:

  • Normal 模式(默认)—— 光标移动、删除、复制
  • Insert 模式i 进入)—— 文本输入
  • Visual 模式v 进入)—— 选中

Esc 回到 Normal 模式。

2.2 光标移动(Normal 模式)

移动
h / j / k / l左 / 下 / 上 / 右
0移到行首
^移到行首第一个非空字符
$移到行尾
b移到单词开头(按标点分界)
e移到单词末尾
w移到下一个单词
B / E / W同上,按空格分界
+ / -下一行 / 上一行开头
G文件末尾
gg文件开头
<n>G<n>gg跳到第 n 行
f<char>移到本行下一个指定字符
F<char>移到本行上一个指定字符
t<char> / T<char>移到字符前/后
; / ,重复上一次 f/F/t/T 查找(右/左)
H / M / L屏幕顶部 / 中间 / 底部
zz / zt / zb当前行滚到屏幕中 / 顶 / 底

2.3 段落 / 句子 / 代码块

移动
{ / }段落的开始 / 结尾
( / )句子的开始 / 结尾
[( / ])上一组 ( )
[{ / ]}上一组 { }
[[ / ]]上一函数 { / }
[# / ]#上一个 #if / #endif

2.4 编辑 / 选中

命令含义
dd删除当前行
ggvG全选(gg 到首行,v 进 Visual,G 到末行)
ggyG全部复制
dG全部删除(首行到末行)
y复制
d删除
"+y复制到系统剪贴板(vim)
p粘贴
u撤销
Ctrl+r重做
> / <缩进 / 回退一级
/pattern查找(n 下一个,N 上一个)

2.5 跳转 / 书签

命令含义
''跳到上次修改位置
`同上(反引号)
m<a>在当前行设书签 a
`<a>跳到书签 a
Ctrl+o / Ctrl+i跳转历史前后

实战技巧:要删大量内容时,在两端 mamb 设书签,然后 d'a 一键删除。

三、终端快捷键(bash 默认 emacs 模式)

3.1 模式切换

1
2
set -o vi      # 切换到 vi 模式
set -o emacs   # 切回 emacs 模式

3.2 编辑命令

功能
Ctrl + a移到命令行首
Ctrl + e移到命令行尾
Ctrl + f / Ctrl + b按字符前移 / 后移
Alt + f / Alt + b按单词前移 / 后移
Ctrl + x在命令行首和光标之间跳转
Ctrl + u从光标处删除到命令行首
Ctrl + k从光标处删除到命令行尾
Ctrl + w从光标处删除到字首
Alt + d从光标处删除到字尾
Ctrl + d删除光标处字符(空行时关闭 terminal)
Ctrl + h删除光标前字符
Ctrl + y粘贴至光标后
Alt + c从光标处首字母大写
Alt + u / Alt + l从光标处全部大写 / 小写
Ctrl + t交换光标处和之前的字符
Alt + t交换光标处和之前的单词
Alt + BackspaceCtrl + w 类似

3.3 历史命令

功能
Ctrl + r逆向搜索命令历史
Alt + n向前搜索(非增量)
Alt + p向后搜索(非增量)
!?string?执行最近含 string 的命令
Ctrl + g退出历史搜索
Ctrl + p / Ctrl + n上一条 / 下一条历史
Alt + .上一条命令的最后一个参数

3.4 控制命令

功能
Ctrl + l清屏
Ctrl + o执行当前命令并选择上一条
Ctrl + s阻止屏幕输出
Ctrl + q允许屏幕输出
Ctrl + c终止命令
Ctrl + z挂起命令(用 fg 恢复)

3.5 Bang(!)命令

命令功能
!!执行上一条命令
!blah执行最近以 blah 开头的命令
!blah:p仅打印不执行
!$上一条命令的最后一个参数
!^上一条命令的第一个参数
!*上一条命令的所有参数
^blah删除上一条命令中的 blah
^blah^foo替换上一条命令中的 blah 为 foo

3.6 终端窗口快捷键

功能
Ctrl + Alt + T打开新的终端窗口
Shift + Ctrl + N打开新的终端窗口
Shift + Ctrl + Q关闭终端窗口
Shift + Ctrl + T打开新标签页
Shift + Ctrl + W关闭标签页
Ctrl + PgUp / PgDn左移/右移标签页
Alt + <数字>切换至对应标签页
F11全屏切换

四、ohmyzsh 主题与插件

4.1 安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 安装 zsh
apt install zsh
chsh -s /bin/zsh
# 重新登录

# 安装 oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 查可用的 shell
cat /etc/shells
echo $SHELL

4.2 主题推荐

1
2
ll ~/.oh-my-zsh/themes
# 推荐:bira(清爽)、ys(花哨)、dst
1
2
3
4
5
vim ~/.zshrc
# ZSH_THEME="robbyrussell"  改为
ZSH_THEME="bira"

source ~/.zshrc

4.3 必备插件

1
2
3
4
5
6
7
# 自动提示历史记录
git clone https://github.com/zsh-users/zsh-autosuggestions \
    ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 语法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
    ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
1
2
3
4
5
6
7
8
vim ~/.zshrc
plugins=(
  git
  zsh-autosuggestions
  zsh-syntax-highlighting
)

source ~/.zshrc

4.4 root 也想用 ohmyzsh

1
2
3
4
5
6
7
su
cp ~/.zshrc /root
cp -r ~/.oh-my-zsh /root
cd /root
source .zshrc
# 权限问题
chmod -R 755 ~/.oh-my-zsh

五、NvChad:Neovim 发行版

NvChad 是 2021-04 发布的 Neovim 发行版,基于 Neovim 0.5+,提供"开箱即用"的配置、LSP、TreeSitter、自动补全等现代编辑器特性。

5.1 安装

1
2
# 前置:Neovim 0.7+(2022-02 发布的 0.7 才是 0.5+ 真正稳定)
git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 && nvim

关于时间点:NvChad 严格说在 2018 年还没发布(2021 才出来)。但写 2018 这篇是为了完整介绍 Neovim 发行版生态——历史地看,“Neovim 化"的趋势从 2018-2019 的 Neovim 0.3 时代就开始了。

5.2 卸载

1
2
3
4
# linux/macos
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

六、LunarVim:另一个 Neovim 发行版

LunarVim 是 2020-12 起步、2021-12 发布 1.0 的 Neovim 发行版,比 NvChad 配置更"傻瓜化”。

6.1 前置

1
2
3
4
5
6
# Neovim 0.7 以上
python3 python -V
git

# 能连 GitHub(proxychains + v2ray 通用方案)
curl --socks5 127.0.0.1:1080 https://www.google.com/

6.2 安装 Neovim 0.7.2

1
2
3
4
5
wget https://github.com/neovim/neovim/releases/download/v0.7.2/nvim-linux64.tar.gz
tar -xvf nvim-linux64.tar.gz
mv nvim-linux64 /usr/local/
cd /bin
ln -s /usr/local/nvim-linux64/bin/nvim nvim

6.3 安装 LunarVim

1
2
3
4
5
6
7
8
9
bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)

# 添加到 PATH
vim ~/.zshrc
export PATH=$PATH:/root/.local/bin
source ~/.zshrc

# 启动
lvim

6.4 卸载

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
bash ~/.local/share/lunarvim/lvim/utils/installer/uninstall.sh
# 或
bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.sh)

# 完全清理
find / -name "lvim"
rm -rf /root/.config/lvim
rm -rf /root/.local/share/lunarvim/lvim
rm -rf /root/.local/share/lunarvim/lvim/lua/lvim
rm -rf /root/.local/share/lunarvim/lvim/tests/lvim
rm -rf /root/.local/bin/lvim
rm -rf /root/.cache/lvim

6.5 配置

1
2
3
4
5
# 配置文件
~/.config/lvim/config.lua

# 启动
/root/.local/bin/lvim

6.6 更新

1
2
3
4
5
6
7
8
9
# 在 LunarVim 内
:LvimUpdate

# 命令行
lvim +LvimUpdate +q

# 更新插件
:LvimUpdate
:PackerUpdate

七、tmux 入门

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# 安装
yum install -y tmux

# 新建会话
tmux new -s session_name

# 退出(不关会话)
# ctrl + b 然后按 d

# 进入已有会话
tmux attach -t session_name

# 列出所有会话
tmux ls
# ctrl + b 然后按 s    交互式切换

# 关闭会话
tmux kill-session -t session_name

# 关闭所有会话
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

八、清理历史命令与文件时间

1
2
3
4
5
6
# 清理 bash 历史命令
history -c
history -w

# 当前会话用过的命令
history -r

8.1 清理登录日志

日志文件查看命令日志内容
/var/log/wtmplast登录成功日志
/var/log/btmplastb登录失败日志
/var/log/lastloglastlog各用户最近登录
/var/log/securecat各类需要输入口令的登录
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 全部清空(动静大)
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/btmp
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/secure

# 局部清理(删指定 IP)
sed -i '/222.137.129.138/d' /var/log/wtmp
sed -i '/222.137.129.138/d' /var/log/btmp
sed -i '/222.137.129.138/d' /var/log/lastlog
sed -i '/222.137.129.138/d' /var/log/secure
sed -i '/222.137.129.138/d' /var/log/auth.log

# 全局替换 IP
sed -i 's/原IP/新IP/g' /var/log/secure

8.2 修改文件时间

1
2
# 把文件 1 的时间复制给文件 2
touch -r 1.php 2.php

8.3 清理 ohmyzsh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 换回 bash
chsh -s /bin/bash

# 清理文件
rm -rf /root/.oh-my-zsh

# 彻底擦除(用 wipe)
apt install wipe
wipe -rfi /root/.oh-my-zsh
wipe -rfi /root/.zsh_history
wipe -rfi /root/.zshrc

九、安装图形界面

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo apt update
sudo apt upgrade

sudo apt -y install task-gnome-desktop
sudo apt install tasksel

sudo tasksel install desktop gnome-desktop

sudo systemctl set-default graphical.target

sudo reboot

十、前置知识 / 下一步

  • 想看 NvChad / LunarVim 进阶配置(自定义 LSP、自动补全)→ 翻独立文章
  • 想看 zsh 高级用法(prompt 自定义、completion 调优)→ 翻独立文章
  • 想看 tmux 进阶(脚本化、tmuxinator)→ 翻独立文章
  • 想看 vi/vim 进阶(宏、寄存器、:command)→ 翻独立文章
  • 想看 Wine 在 Linux 跑 Windows 应用 → 翻本系列《Deepin 与 Kali 发行版实战》

十一、参考资源


2024 视角:Neovim 已经"主流化"

2018 那篇是 Neovim 0.3 时代的"前瞻性"介绍。6 年过去,Neovim 已经从"小众新派"变成主流选择

一、Neovim 1.x 全面成熟

  • Neovim 0.9(2023-05)开始支持 Lua 配置的完整稳定 API。
  • Neovim 0.10(2024-03 发布):进一步稳定 vim.lsp / vim.treesitter / vim.diagnostic
  • Neovim 1.0(2024-07 计划 / 实际 2024 年中)正式成为"1.x 时代"——这是 Neovim 的"iPhone 4 时刻"
1
2
3
4
5
6
7
8
# 2024 装 Neovim
apt install neovim                  # Ubuntu 24.04 默认 0.10+
brew install neovim                 # macOS

# 用 nightly 拿最新特性
apt install software-properties-common
add-apt-repository ppa:neovim-ppa/unstable
apt update && apt install neovim

二、NvChad / LunarVim 的"接班人"

  • NvChad v2.4+(2023-2024)已经支持 lazy.nvim + mason.nvim + conform.nvim 的"现代三件套"——开箱即用。
  • LazyVim(2023 推出,作者 folke 同时是 lazy.nvim 维护者)成为 2024 Neovim 发行版的新王——比 NvChad 启动更快、配置更现代、社区最活跃。
  • AstroNvim v4+(2024 主流):另一派"全家桶"配置,对 VS Code 用户迁移最友好
  • Kickstart.nvim(2024):官方"极简起点"配置,适合想自己学的用户。
1
2
3
4
# 2024 推荐:LazyVim
git clone https://github.com/LazyVim/starter ~/.config/nvim
nvim
# 自动安装所有插件

三、Neovim 内置 LSP(已无需 LanguageClient-neovim)

2018 那篇提到"Neovim 0.5+ 才真正稳定 LSP",2024 这个能力已经"内置 + 完善":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
-- ~/.config/nvim/lua/lsp.lua (LazyVim 风格)
vim.api.nvim_create_autocmd('LspAttach', {
  group = vim.api.nvim_create_augroup('lsp-attach', { clear = true }),
  callback = function(event)
    local opts = { buffer = event.buf }
    vim.keymap.set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', opts)
    vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>', opts)
    vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', opts)
  end,
})

四、Helix editor 2024 已成"另一种主流"

  • Helix(2021 推出,Rust 写的"模态编辑器")2024 已是 1.0+ 稳定版。
  • 模态模式 + 多选 + 内置 LSP/TreeSitter + 不需要配置——VS Code 用户 5 分钟就能上手。
  • 和 Neovim 互补:Neovim = 高度可定制、Helix = 开箱即用。
1
2
3
# 装
apt install helix              # Ubuntu 24.04+ 已收
cargo install helix-term       # 从源码(最新版)

五、tmux 3.x 的"现代化"

2018 那篇用的是 tmux 2.x。2024 用 tmux 3.x:

  • status-line 字符串插值#{...} 语法):可以显示 CPU 占用、电池、git status。
  • popup 弹窗display-popup):可以弹出一个浮动的命令窗口。
  • mouse 模式默认开启(配置后)。
1
2
3
4
5
6
7
# ~/.tmux.conf (2024 现代版)
set -g mouse on
set -g default-terminal "tmux-256color"
set -g status-interval 5
set -g status-left-length 32
set -g status-left "#{?client_prefix,#[fg=red],#[fg=green]}#S #[fg=white]| "
set -g status-right "#[fg=yellow]%H:%M "

六、oh-my-zsh 的"接班人":Starship + Zim

2024 大量新用户从 oh-my-zsh 迁到 Starship(Rust 写的 prompt)+ Zim(更轻量的 zsh 配置框架):

  • Starship:跨 shell(bash/zsh/fish/PowerShell)一致 prompt,速度比 oh-my-zsh 快 10 倍
1
2
3
4
# 装 Starship
curl -sS https://starship.rs/install.sh | sh
# ~/.zshrc 加
eval "$(starship init zsh)"
  • Zim(比 oh-my-zsh 启动快 3 倍,模块化更好):
1
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

七、图形界面在 2024 的"轻量级"新选择

2018 那篇提到用 Wine 跑 Windows 应用。2024 的"轻量级"选择:

  • Wayland 已成为默认(Ubuntu 24.04 / Fedora 40 / RHEL 9 默认 Wayland session)。
  • GNOME 46(2024-03)改用 GTK 4 + libadwaita,UI 更现代。
  • KDE Plasma 6(2024-02)从 Qt 5 升 Qt 6,性能更好。
  • 国产
    • UKUI(银河麒麟)
    • DDE(Deepin 23 用 Qt 6 重写,2024 已 4K HiDPI 友好)
    • CutefishOS(小众但美观)
使用 Hugo 构建
主题 StackJimmy 设计