Contents

vim

summary

Vim 常用快捷键大全

Vim 是一个强大的文本编辑器,掌握基本快捷键能极大提升编辑效率。以下是常用的 Vim 快捷键,按功能分类整理。


📌 1. 模式切换

快捷键作用
i进入 插入模式(光标前插入)
I进入 插入模式(光标移到行首再插入)
a进入 插入模式(光标后插入)
A进入 插入模式(光标移到行尾再插入)
o在当前行下 新建一行 并进入插入模式
O在当前行上 新建一行 并进入插入模式
Esc / Ctrl + [退出 插入模式,回到普通模式
v进入 可视模式(选择字符)
V进入 可视模式(选择整行)
Ctrl + v进入 列块可视模式(选列操作)
:q退出 Vim
:q!强制退出(不保存)
:w保存文件
:wq / ZZ保存并退出

📌 2. 光标移动

快捷键作用
h左移一个字符
l右移一个字符
j下移一行
k上移一行
w移动到 下一个单词首字母
e移动到 当前/下一个单词末尾
b移动到 上一个单词首字母
0移动到 行首
^移动到 行首第一个非空字符
$移动到 行尾
gg移动到 第一行
G移动到 最后一行
:n跳转到 第 n 行(如 :10 跳转到第 10 行)
Ctrl + d向下翻半屏
Ctrl + u向上翻半屏
Ctrl + f向下翻一整页
Ctrl + b向上翻一整页

📌 3. 复制、剪切和粘贴

快捷键作用
yy (Y)复制 当前行
dd剪切 当前行
x删除 当前字符(相当于剪切一个字符)
D删除 从光标到行尾的内容
p粘贴 到光标后(或下一行)
P粘贴 到光标前(或上一行)
y{motion}复制指定范围(如 y$ 复制到行尾,yw 复制一个单词)
d{motion}剪切指定范围(如 d$ 剪切到行尾,dw 剪切一个单词)
:reg查看所有剪贴板内容

📌 4. 撤销、重做

快捷键作用
u撤销 上一步操作
Ctrl + r重做 上一步撤销

📌 5. 查找和替换

快捷键作用
/keyword向下查找 keyword
?keyword向上查找 keyword
n下一个匹配
N上一个匹配
:%s/old/new/g全局替换 oldnew
:%s/old/new/gc全局替换(逐个确认)

📌 6. 代码缩进

快捷键作用
>>右缩进 当前行
<<左缩进 当前行
V + >选中多行后 右缩进
V + <选中多行后 左缩进
=自动格式化当前行
gg=G格式化整个文件

📌 7. 窗口和标签管理

快捷键作用
:sp水平分割 新窗口
:vsp垂直分割 新窗口
Ctrl + w + h跳到左侧窗口
Ctrl + w + l跳到右侧窗口
Ctrl + w + j跳到下面窗口
Ctrl + w + k跳到上面窗口
:tabnew新建标签页
gt下一个标签页
gT上一个标签页

📌 8. 其他快捷键

快捷键作用
.重复 上次命令
Ctrl + n自动补全
J合并 当前行和下一行
:! command执行 shell 命令(如 :!ls
:w !sudo tee %以 root 权限保存文件

🚀 提高 Vim 效率的小技巧

  1. 启动 Vim 直接进入插入模式

    1
    
    vim +"startinsert"
    
  2. 启用行号
    在 Vim 内输入:

    :set number
    
  3. 启用语法高亮

    :syntax on
    
  4. 高亮搜索结果

    :set hlsearch
    
  5. 显示匹配括号

    :set showmatch
    

🎯 总结

  • 模式切换: i 进入插入模式,Esc 退出
  • 光标移动: h/j/k/lw/e/b 单词移动,gg/G 头尾跳转
  • 编辑操作: yy/dd/p 复制剪切粘贴,u 撤销,Ctrl + r 重做
  • 查找替换: /word 搜索,:%s/old/new/g 替换
  • 窗口管理: :sp / :vsp 分屏,Ctrl + w + hjkl 切换

Vim 需要不断练习才能熟练掌握,建议多使用 :help [command] 查看详细帮助,例如:

:help yank
:help visual

💡 熟练 Vim,可以大幅提高编辑效率! 🚀

代码补全

VIM代码自动补全_Jeremy_ku的博客-CSDN博客

vim自带的代码补全 (7.0以上版本)
对于在vim中前面已经输入过的字符串,只要再次输入前几个字符,然后按Ctrl+n 即可自动补全。

Ctrl+p 补全前面申明过的变量或者函数名。
前面声明了结构体T,想在输入T.时弹出成员供选择,只需在用之前按一下:CTRL+F12

ctrl+x ctrl+o(智能补全)
ctrl+x ctrl+f(补全文件名)有待验证

批量注释、选择

Vim中如何全选复制粘贴

Vim 多行注释

Vim技巧-快速/取消注释-腾讯云开发者社区-腾讯云

快速删除

在Vim中删除整行,可以使用以下几种方法:

dd:删除当前行。
ndd:删除从当前行开始的n行。例如,3dd会删除当前行及其下两行,共三行。
D:删除从光标位置到行尾的内容。
d$:与D相同,删除从光标位置到行尾的内容。
d0:删除从光标位置到行首的内容。
:n,d:删除第n行。例如,:5d会删除第5行。
:n,md:删除从第n行到第m行的内容。例如,:5,10d会删除第5行到第10行的内容。
在执行这些命令后,被删除的行会被存储在Vim的剪贴板中,可以使用p(粘贴到光标下方)或P(粘贴到光标上方)来恢复这些内容。
请注意,Vim中的命令区分大小写,因此d和D是不同的命令。在使用这些命令时,确保你处于Vim的正常模式(按下Esc键可以返回正常模式)。

doubao

在 Vim 编辑器里,有多种方法可实现选择多行并删除的操作,下面为你详细介绍:

可视模式删除

可视模式是 Vim 里用于可视化选择文本的模式,有三种不同类型,即可视模式(字符选择)、可视行模式(整行选择)和可视块模式(矩形块选择),可根据需求选择合适的模式。

可视行模式(适合整行删除)

  1. 把光标移到要删除的首行。
  2. 按下 V(大写的 V)进入可视行模式,此时当前行被高亮显示。
  3. 使用方向键(如 )上下移动光标,来选择要删除的多行。
  4. 选择好要删除的行后,按下 d 键,所选的行就会被删除。

示例

假设你有如下文本:

line 1
line 2
line 3
line 4
line 5

若要删除第 2 行到第 4 行,操作步骤如下:

  • 把光标移到第 2 行。
  • 按下 V 进入可视行模式。
  • 按两次 键,此时第 2 行到第 4 行被高亮显示。
  • 按下 d 键,所选的行就会被删除。

可视模式(适合非整行删除)

  1. 把光标移到要删除区域的起始位置。
  2. 按下 v(小写的 v)进入可视模式。
  3. 使用方向键移动光标,选择要删除的文本区域。
  4. 选择好后,按下 d 键,所选文本会被删除。

行号范围删除

若你知道要删除的行号范围,可直接使用行号范围来删除多行。

命令格式

:起始行号,结束行号d

其中,起始行号结束行号 是要删除的行的编号,d 代表删除操作。

示例

  • 删除第 3 行到第 6 行:
:3,6d
  • 删除当前行到第 10 行:
:.,10d

这里的 . 表示当前行。

  • 删除从第 5 行到文件末尾的所有行:
:5,$d

其中 $ 代表文件的最后一行。

快速删除指定行数

如果你想从当前行开始快速删除指定数量的行,可以使用 ndd 命令,其中 n 是要删除的行数。

示例

  • 从当前行开始删除 3 行:
3dd

这些方法可以帮助你在 Vim 中高效地选择多行并删除。你可以根据实际情况选择最合适的方法。

文件比较

如何用 vim 文本编辑器比较两文件 - klchang - 博客园

vimdiff 命令使用介绍

1
2
3
4
5
6
7
8
9
# vimdiff 常用命令
vimdiff <file1> <file2>
退出diff :qa

diff mode 常用命令速查表(cheat sheet)
[c    Jump to the previous diff 跳到前一个不同之处
]c    Jump to the next diff  调到下一个不同之处
do    diffget: Pull the changes to the current file  将所有的不同之处拉到当前文件使之与另一个文件内容相同
dp    diffput: Push the changes to the other file 将所有的不同之处推到另一个文件

主题、美化

设置vim 永久显示行号_vim 显示行号_electrocrazy的博客-CSDN博客

检索、跳转

  • 使用 / 进行搜索:
    • 按下 / 后,输入要搜索的内容,然后按 Enter 键。例如:/search_term
    • 按下 n 跳转到下一个匹配项,按下 N 跳转到上一个匹配项。

vim翻页

vim翻半页

  • ctr-d:向后翻半页
  • ctr-u:向前翻半页

vim整整页

  • ctr+f:向后翻整页
  • ctr+b:向前翻整页

vim跳转

vim跳首行

  • g+g
  • :1
    第二种方式需要输入:
    先按shift+:
    再输入1

vim跳尾行

  • shift+g
  • :$
    第二种方式需要输入:
    先按shift+:
    再输入$

如何在Vim/Vi中使用搜索

https://www.myfreax.com/vim-search/#:~:text=Vim允许您使用 %2F (正,不是整个单词来查找。

Linux—vim/vi 翻页跳转命令快捷键 - 掘金

Vim编辑器翻页控制命令详解

vi/vim使用进阶: 指随意动,移动如飞 (一)

撤销、回退

Vim 撤销 回退 操作

批量替换

在 Vim 中进行批量替换可以使用 :substitute 命令。以下是一个简单的示例:

1
2
3
4

:%s/old_text/new_text/g

# 这个命令会在整个文件中查找并替换所有匹配的 "old_text" 为 "new_text"。

解释一下:
%s: 表示在整个文件范围内进行替换。
old_text: 要查找的文本。
new_text: 要替换为的文本。
g: 表示全局替换,即每一行上所有匹配的文本都会被替换。


如果你只想替换每行的第一个匹配,可以省略 g:

:%s/old_text/new_text

如果你只想替换特定范围内的文本,可以在 : 命令中指定行范围。例如,替换从第 10 行到第 20 行的文本:

:10,20s/old_text/new_text/g

如果你要进行确认,可以在命令中添加 c 选项,这样每次替换时都会询问是否替换:

:%s/old_text/new_text/gc

这只是 Vim 替换的基础用法,Vim 提供了强大的正则表达式和其他选项,可以适应更复杂的替换需求。如果你有特定的替换模式或要求,可以查阅 Vim 文档或在 Vim 中使用 :help :substitute 进行详细了解。

其他文件操作

Linux的文件查看的常用命令

vim-notion

行号

设置vim 永久显示行号_vim行号永久-CSDN博客

取消显示

:set nonumber

查看隐藏符号

cat -A

:set list

:set nolist

:set invlist

FAQ

中文乱码

在 Ubuntu 中使用 vim 编辑文件时,如果中文显示乱码,通常是因为以下原因之一:


🚨 原因总结:

  1. 终端字符集(locale)不支持 UTF-8
  2. Vim 没有设置合适的编码
  3. 文件本身编码不是 UTF-8
  4. 使用的是 vim.tiny,功能太简化,UTF-8 支持不完整

✅ 解决步骤如下:


✅ 1. 检查终端环境支持 UTF-8

在终端中运行:

1
locale

你应该看到像这样的输出:

LANG=en_US.UTF-8
LC_ALL=
...

如果不是 UTF-8,你可以通过以下方式修改:

1
sudo update-locale LANG=en_US.UTF-8

然后重启终端或系统。


✅ 2. 检查 Vim 是否设置了正确编码

打开 .vimrc 配置文件(如果没有就创建):

1
vim ~/.vimrc

添加以下内容:

set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312,cp936
set termencoding=utf-8

这样 Vim 会:

  • 使用 UTF-8 显示界面
  • 优先尝试 UTF-8 打开文件,其次尝试 GBK 等中文编码
  • 适配终端编码

✅ 3. 确保使用的是完整版本的 Vim

如果你用的是 vim.tiny(功能简化,不支持中文好好显示),建议安装完整版:

1
sudo apt install vim

或者 GUI 版本(带剪贴板支持):

1
sudo apt install vim-gtk

✅ 4. 确认你的文件确实是 UTF-8 编码

file 命令检查编码:

1
file 文件名.txt

输出示例:

文件名.txt: UTF-8 Unicode text

如果不是 UTF-8,可以用 iconv 转码:

1
iconv -f gb2312 -t utf-8 原文件.txt -o 新文件.txt

💡小贴士:临时设置编码方式

你打开文件后发现乱码,可以用 Vim 命令行输入:

:set fileencoding=utf-8
:e!

或者尝试:

:e ++enc=gbk

:set fileencoding=utf-8 # 重新编码

:wq