[特殊字符] Linux 学习笔记(二):压缩、Vim 与配置

我最近在系统复习 Linux 基础,这次整理的是压缩解压、离线安装还有 Vim 编辑器。Vim 这块之前一直半懂不懂,这次终于把里面的细节搞明白了,顺便也踩了几个坑,比如压缩时忘记带 f 参数结果报错……下面把我的笔记和心得分给大家,希望能帮到同样在学 Linux 的同学。


一、压缩和解压缩

1.1 先了解背景

Linux 操作系统默认支持的压缩格式有 gzipbzip2,但有个坑——这两种格式只能压缩单体文件,不支持打包,而且压缩后原文件会消失。所以在 Linux 里,我们一般先用 tar 命令打包,再用 gzip/bzip2 压缩。tar 就是用来“打包”的。

1.2 压缩

压缩的格式是:

tar zcvf 压缩包名.tar.gz 压缩原材料

参数说明:

  • z:使用 gzip 压缩格式;如果用 bzip2,把 z 换成 j
  • c:创建压缩包(create)
  • v:显示压缩过程(verbose)
  • f:指定压缩包名,f 必须是最后一个参数,后面紧跟压缩包名称

💡 踩坑提醒:压缩包的后缀名系统不做强制要求,但为了以后自己知道是什么格式,建议按实际压缩格式命名,比如 .tar.gz.tar.bz2

实际命令示例:

# gzip 格式
tar zcvf test2vim.tar.gz testdir test.txt

# bzip2 格式
tar jcvf test2vim.tar.bz2 testdir test.txt

1.3 解压缩

解压缩的格式:

tar zxvf 压缩包名.tar.gz         # 直接解压到当前目录

参数 x 代表解压缩(extract)。示例如下:

tar zxvf test2vim.tar.gz

如果想解压到指定目录,用 -C 参数:

tar zxvf test2vim.tar.gz -C outdir

之前我老忘了加 -C,结果文件乱放,找半天。现在养成习惯,解压时先 mkdir 个目录再用 -C


二、离线安装(dpkg)

在 Linux 里离线安装 .deb 软件包用的是 dpkg 工具。

安装

sudo dpkg -i 安装包名.deb

卸载

sudo dpkg -r 软件名

注意卸载时用的是软件名,不是包名。比如 sudo dpkg -r vim,而不是 sudo dpkg -r vim.deb


三、Vim 编辑器

Vim 是我学习 Linux 以来最大的一道坎。刚接触时完全懵了,怎么退出都不知道。现在总算搞清楚了它的三种工作模式,下面详细说说。

3.1 Vim 的三种工作模式

  1. 命令模式:进入 vim 后默认的模式。所有输入都被当作命令执行。
  2. 编辑模式:可以输入文本、写代码。
  3. 末行模式:输入以 : 开头的命令(如保存、退出、搜索替换)。

Vim的三种工作模式示意图

3.2 切换编辑模式

从命令模式进入编辑模式有很多方式,我常用的有:

按键作用
i在光标前插入(首选)
a在光标后插入
o在光标下一行插入(首选)
I在光标所在行行首插入
A在光标所在行行尾插入
O在光标上一行插入
s删除光标选中的字符并进入编辑模式
S删除光标所在行的所有数据并进入编辑模式

我习惯用 io,尤其是写代码时,o 直接新起一行非常方便。

3.3 保存和退出

  • 命令模式下:按 ZZ(大写)直接保存退出。
  • 末行模式下(按 : 进入):
    • w:保存
    • q:退出
    • q!:强制退出不保存
    • x:保存退出(相当于 wq

3.4 光标移动

操作效果
h j k l左下上右(熟练度要练到和 WASD 一样)
G跳转到文件末行
gg跳转到文件首行
gg=G自动排版(缩进对齐)
0移动到本行行首
$移动到本行行尾
NG跳转到第 N 行(如 50G 跳到第 50 行)
:N 回车末行模式跳转到第 N 行

3.5 复制粘贴

  • 单行复制:光标移到行上任意位置,按 yy 复制,移动光标到目标行,按 p 向下粘贴,按 P 向上粘贴。
  • 多行复制Nyy,例如 3yy 复制光标所在行及以下 3 行。
  • 片段复制
    • 移动光标到要复制的首个字母,按 v 进入可视模式,移动光标选中文字,按 y 复制,然后 p/P 粘贴。
  • 复制一个单词:光标移到单词首字母,按 yw,然后 p/P 粘贴。

3.6 撤销和反撤销

  • 撤销:命令模式下按 u
  • 反撤销Ctrl + r

这个组合我记了好久,后来用多了就肌肉记忆了。

3.7 剪切、删除

Vim 中剪切后如果不粘贴,就是删除。操作和复制类似,只是把 y 换成 d

  • 单行剪切dd,然后 p/P 粘贴。
  • 多行剪切Ndd,例如 3dd 剪切 3 行。
  • 片段剪切:可视模式下按 d
  • 剪切一个单词:光标移到单词首字母,按 dw
  • 剪切光标至行首:光标移动到起始位置,按 d0
  • 剪切光标至行尾:光标移动到起始位置,按 D(大写的 D)。

3.8 查找和替换

查找
  • 正向查找:命令模式下按 /,输入关键词,回车,按 n 找下一个,N 找上一个。找到文件末尾会循环。
  • 逆向查找:光标放在单词上,按 * 向后查找,按 # 向前查找。
替换
  • 单行替换:末行模式下输入 :s/旧/新,只替换该行第一个匹配。如果替换该行所有匹配,加 g:s/旧/新/g
  • 通篇替换: %s/旧/新/g
  • 多行替换起始行号,结束行号s/旧/新

例如将文件中的 printf 全部替换成 cout

:%s/printf/cout/g

3.9 分屏

Vim 可以分屏操作,特别适合对比文件或拷贝内容。

  • 水平分屏:sp (当前文件)或 :sp 新文件名
  • 垂直分屏:vsp:vsp 新文件名
  • 切换分屏Ctrl + w 后按 w(即 Ctrl-w-w
  • 退出分屏:在某个窗口中执行 qwq 退出该窗口,wqall 退出所有窗口。

我经常用 vsp 同时打开两个文件,然后复制粘贴,非常高效。


四、Vim 配置

Vim 的配置主要在系统配置文件中,路径:/etc/vim/vimrc(系统级),或者自己在家目录下建 ~/.vimrc。每次启动 Vim 时都会执行这些配置。

下面是我整理的一份常用配置,可以直接复制到 .vimrc 里。注意:注释用双引号 " 开头。

" -------------------------- 基础设置 --------------------------
set nocompatible              " 关闭vi兼容模式,开启vim专属功能
filetype off                  " 先关闭文件类型检测
filetype plugin indent on     " 开启文件类型检测、插件、缩进支持
syntax enable                 " 开启语法高亮

" -------------------------- 界面优化 --------------------------
set number                    " 显示行号
set relativenumber            " 显示相对行号(可选jfka,不习惯可以删掉)
set cursorline                " 高亮当前行
set showcmd                   " 右下角显示输入的命令
set showmode                  " 左下角显示当前模式(插入/命令/可视)
set laststatus=2              " 始终显示状态栏
set ruler                     " 右下角显示光标位置
set scrolloff=5               " 光标上下至少保留5行
set sidescrolloff=5           " 光标左右至少保留5列
set termguicolors             " 开启真彩色(终端支持的话)
set background=dark           " 背景设为深色(可选,看终端主题)

" -------------------------- 缩进与格式 --------------------------
set tabstop=4                 " 一个tab显示为4个空格
set shiftwidth=4              " 自动缩进的宽度
set expandtab                 " 把tab自动替换为空格(可选,写Python建议开)
set autoindent                " 自动缩进
set smartindent               " 智能缩进(代码更规范)
set smarttab                  " 智能处理tab
set softtabstop=4             " 按退格键时删除4个空格

" -------------------------- 搜索优化 --------------------------
set hlsearch                  " 搜索结果高亮
set incsearch                 " 边输入边搜索
set ignorecase                " 搜索不区分大小写
set smartcase                 " 搜索包含大写字母时自动区分大小写

" -------------------------- 编辑体验 --------------------------
set encoding=utf-8            " 文件编码设为utf-8
set fileencodings=utf-8,gbk  " 支持打开gbk编码文件
set wrap                      " 自动换行
set linebreak                 " 不在单词中间换行
set clipboard=unnamedplus     " 开启系统剪贴板支持(Linux/macOS用unnamedplus,Windows用unnamed)
set mouse=a                   " 开启鼠标支持(点击、滚轮、选中)
set backup                    " 开启备份(可选,建议开启防误删)
set writebackup               " 写入前备份
set undofile                  " 开启持久化撤销(重启vim后仍可撤销)
set undodir=~/.vim/undo/      " 撤销文件保存路径(需要先mkdir ~/.vim/undo)
set backupdir=~/.vim/backup/  " 备份文件保存路径(需要先mkdir ~/.vim/backup)
set swapfile                  " 开启交换文件(防止崩溃丢失内容,建议开启)
set splitbelow                " 水平分屏时新窗口在下方
set splitright                " 垂直分屏时新窗口在右侧

" -------------------------- 快捷键映射 --------------------------
nnoremap <C-s> :w<CR>         " 普通模式下Ctrl+s保存
nnoremap <C-q> :q<CR>         " 普通模式下Ctrl+q退出
inoremap <C-s> <Esc>:w<CR>a   " 插入模式下Ctrl+s保存并回到插入模式
nnoremap <C-h> <C-w>h         " Ctrl+h切换到左分屏
nnoremap <C-j> <C-w>j         " Ctrl+j切换到下分屏
nnoremap <C-k> <C-w>k         " Ctrl+k切换到上分屏
nnoremap <C-l> <C-w>l         " Ctrl+l切换到右分屏

这段配置我是从网上学来再自己修改的,特别推荐 set clipboard=unnamedplus,这样可以直接用系统剪贴板复制粘贴,省去了很多麻烦。


小结

这次 Linux 笔记主要记录了:

  • tar 压缩解压:注意参数顺序和 -C 指定目录。
  • dpkg 离线安装:简单但要注意软件名 vs 包名。
  • Vim:三种模式、光标移动、复制剪切、查找替换、分屏,这些是日常使用最频繁的功能。
  • Vim 配置:一份比较全面的配置,拿来即用,可以大幅提升编辑体验。

Vim 的学习曲线确实陡峭,但只要坚持用两天,就会觉得离不开了。我现在写代码、改配置文件都用 Vim,效率提升不少。如果大家有更好的配置或技巧,欢迎一起交流!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值