# 一.模式切换

# 1.编辑模式

#在当前位置前面插入
i

#在当前位置后面插入
a

#在当前位置下一行插入,很常用
o
1
2
3
4
5
6
7
8

# 2.底线命令行

# 后面可以跟命今或者正则表达式
:

# 向下搜索指定字符
/字符

# 向上搜索指定字符
?字符

# 按下 n 键将定位到下一个匹配项,
n

# 按下 N 键将定位到上一个匹配项。
N
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 二.一般模式

# 1.方向键

h·j·k·l   #左·下·上·右
1

# 2.向上翻一页

forward

ctrl+f
1

# 3.向下翻一页

backword

Ctrl+b
1

# 4.向上移动半页

up

Ctrl+u
1

# 5.向下移动半页

down

Ctrl+d
1

# 三.定位跳转

# 1.跳转定位

很重要也很实用

命令 含义
gg 跳到首行
shift+gg 跳到末行
:n 跳到第 n 行
0 行内跳转,绝对行首
shift+0 行内跳转,绝对行尾
$ 行内跳转,绝对行尾,等价于 shift+0
^ 行内跳转,行首的第一个非空白字符

# 2.跳到首行

gg
1

# 3.跳到尾行

shift+gg
1

# 4.跳到 n 行

:n
1

# 5.绝对行首

行内跳转,绝对行首

0
1

# 6.绝对行尾

行内跳转,绝对行尾

$
1

# 7.第一个非空白

行内跳转,行首的第一个非空白字符

^
1

# 四.增删改查

# 1.复制

命令 含义
np 复制多遍
yw 光标移到想要被复制词的词首,输入
p 光标移到想到粘贴的位置,输入
5yl 光标移到想要被复制字符的首位置,若想复制 5 个字符输入:
yy 复制当前行
nyy 复制多行 (比如 3yy,复制 3 行)

# 2.撤销

命令 含义
u undo,取消上一步操作
Ctrl + r redo,返回到 undo 之前,恢复撤销
r 替换光标所在处的字符
R 从光标所在处开始替换,按 Esc 键结束
nu 撤销 n 次

# 3.翻屏

  • Ctrl+f: 向下翻一屏
  • Ctrl+b: 向上翻一屏
  • Ctrl+d: 向下翻半屏
  • Ctrl+u: 向上翻半屏

# 4.修改文本

命令 含义
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
O 在光标当前行的上一行插入新行
:wq 保存并退出

# 5.常用快捷键

命令 含义
Shift+ zz 保存退出,与“:wq"作用相同
v 进入字符可视模式
V 进入行可视模式
CtrI + v 进入块可视模式

# 6.移动行


# 显示行号
:set nu

# 移动到第num行
:m num

# 向下移动num行
:m +num

# 向上移动num行
:m -num

# 移动多行到指定行
[起始行],[结束行]m [指定行]
:10,15m 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 7.添加批量注释

  • 注意是大写的 I
# 假设我们有以下代码:
int a = 10;
int b = 20;
int c = 30;

# 我们想要在每一行的末尾添加注释 //
1. 按 `Ctrl + v` 进入可视块模式。
2. 按 `j` 选择下一行。
3. 按 `I` 在所有选中的行的同一列开始插入。
4. 输入 `//` 作为注释。
5. 按 `Esc` 退出插入模式。
6. 再次按 `Esc` 退出可视块模式。
1
2
3
4
5
6
7
8
9
10
11
12

# 五.单词操作

# 1.ciw

在 Vim 中,要修改光标所在的单词,可以使用 ciw 命令。这个命令可以删除当前单词并进入插入模式,允许你输入新的单词。

具体步骤如下:

  1. 将光标移动到要修改的单词上。
  2. 按下 ciw 进入插入模式,并删除当前单词。
  3. 输入你想要替换的新单词。
  4. 按下 Esc 退出插入模式。
  5. 你就完成了对当前单词的修改。

# 2.dw

dw:删除从当前光标位置开始到下一个单词开头的字符,包括当前光标所在的字符。

d 表示删除,w 表示单词(word)

# 3.db

db:删除从当前光标位置开始到当前单词开头的字符,包括当前光标所在的字符。

d 表示删除,b 表示当前单词开头

# 4.daw

daw:删除光标所在的单词,包括前后的空格。

d 表示删除,w 表示单词(word),a 表示当前单词(around)。

# 5.cw

如果你不想删除当前单词,而只是想修改光标所在单词的内容,可以使用下面的命令:

  • cw:修改光标所在的单词。这个命令会删除当前单词后进入插入模式,你可以输入新的内容。

这里的 cw 由两部分组成:c 表示修改(change),w 表示一个单词(word)。

例如,要修改光标所在的单词,只需按下 cw 进入修改模式,然后输入新的内容,按下 Esc 键退出插入模式即可。

# 六.底线命令行

# 1.显式行号

:set nu
1

# 2.取消行号

:set nonu
1

# 3.注释

多行注释:

  1. 首先按键盘上的 ESC 进入命令行模式
  2. 再按 Ctrl+V 进入 VISUAL BLOCK 模式
  3. 利用上下左右键调整需要注释多少行以及行的宽度
  4. 再按 Shift+i 或 s 进入插入模式
  5. 输入代表注释的符号,比如#/
  6. 再次按 ESC 键,这时就可完成多行注释 可能需要等上一会,不要着急

删除注释:

前三步与加注释相同

  1. 首先按键盘上的 ESC 进入命令行模式
  2. 再按 Ctrl+V 进入 VISUAL BLOCK 模式
  3. 利用上下左右键调整需要去注释多少行以及行的宽度
  4. 再按 d 即可完成去注释

# 4.脚本参数

PROFILE=$1
PROFILE=$2
PROFILE=$3
1
2
3

数字表示第几个参数

# 5.查找字符串

需求 命令 下一个匹配 上一个匹配
从头开始搜 /字符串 n shift+n
从尾开始搜 ?字符串 n shift+n

# 6.保存

:w
1

# 7.退出

:q
1

# 8.强制执行

:!
1

# 9.替换

在 Linux 中使用 Vim 编辑器时,:%s/true/false/g 是一个替换命令,用于在整个文件中查找所有的 "true" 并将其替换为 "false"。下面是这个命令的详细解释:

  • ::进入命令模式。
  • %:表示对整个文件进行操作。
  • s:表示替换(substitute)操作。
  • true:查找的模式,即要查找的字符串。
  • false:替换模式,即要替换成的字符串。
  • /g:全局替换标志,表示对每一行中的所有匹配项进行替换。

# 七.vim 乱码

# 1.乱码处理

在 Linux 系统中,如果在使用vim时遇到中文乱码问题,但使用cat命令查看文件时中文显示正常,这通常是因为vim的编码设置不正确。以下是一些解决这个问题的步骤:

  1. 检查 Vim 的编码设置: 打开 Vim 后,输入:set encoding?来检查当前的编码设置。如果显示的是encoding=latin1或其他不是 UTF-8 的编码,那么需要将其更改为 UTF-8。

  2. 设置 Vim 的文件编码: 使用:set fileencodings=utf-8,gbk,gb2312,latin1命令来设置 Vim 的文件编码优先级。这将告诉 Vim 在打开文件时首先尝试使用 UTF-8 编码,如果失败则尝试 GBK 等其他编码。

  3. 设置 Vim 的终端编码: 使用:set termencoding=utf-8命令来设置 Vim 的终端编码为 UTF-8。

  4. 设置 Vim 的系统默认编码: 在.vimrc配置文件中添加以下行,以确保每次启动 Vim 时都使用 UTF-8 编码:

    set encoding=utf-8
    set fileencodings=utf-8,gbk,gb2312,latin1
    set termencoding=utf-8
    
    1
    2
    3
  5. 检查文件本身的编码: 确保你的文件是以 UTF-8 编码保存的。如果不是,你可以使用iconv命令将其转换为 UTF-8:

    iconv -f 原始编码 -t utf-8 原始文件 > 新文件
    
    1
  6. 更新 Vim: 如果你的 Vim 版本较旧,可能不支持某些编码。尝试更新 Vim 到最新版本。

  7. 使用其他编辑器: 如果以上方法都不能解决问题,你可以考虑使用其他支持 UTF-8 编码的文本编辑器,例如geditsublimevscode

  8. 检查系统语言环境: 确保你的系统语言环境支持中文。在某些情况下,系统的 locale 设置可能影响 Vim 的编码行为。

通过上述步骤,你应该能够解决在 Linux 下使用 Vim 时遇到的中文乱码问题。如果问题依旧存在,请检查你的具体环境配置,或者提供更多的信息以便进一步诊断问题。

# 2.vimrc 文件的位置

.vimrc 是 Vim 的配置文件,它用于存储用户自定义的 Vim 配置。.vimrc 文件的位置取决于操作系统和用户账户。下面是一些常见的 .vimrc 文件位置:

  1. 全局配置文件:通常位于 /etc/vim/vimrc。这个文件中的设置将应用于所有用户。

  2. 用户配置文件:对于每个用户,.vimrc 文件通常位于用户的主目录下,即 ~/.vimrc(在某些系统上可能只是 .vimrc,因为点文件在主目录下默认是隐藏的)。

  3. 用户目录下的隐藏文件夹:有时 Vim 的配置可能会放在用户目录下的一个隐藏文件夹中,例如 ~/.vim/vimrc

  4. 环境变量:Vim 也会查找环境变量 VIMINITEXINIT 指定的文件。

要找到当前用户的 .vimrc 文件,你可以使用以下命令:

vim --version | grep -A1 'runtime files'
1

这个命令会列出 Vim 启动时加载的所有运行时文件的路径,包括 .vimrc。你也可以使用 which 命令来查找 Vim 的可执行文件路径,然后查看其 --version 信息:

which vim
vim --version
1
2

如果你是 Vim 的新手,并且不确定 .vimrc 文件是否存在,你可以创建一个。使用以下命令在用户的主目录下创建或编辑 .vimrc 文件:

vim ~/.vimrc
1

如果文件不存在,Vim 会自动创建它。之后,你可以添加或修改配置项,保存并退出 Vim。

# 八.删除

Vim 是一款功能强大的文本编辑器,它以其高效的编辑能力和高度的可定制性而闻名。对于程序员和日常需要处理大量文本的用户来说,掌握 Vim 的使用技巧可以极大提高工作效率。

# 1.Vim 编辑器简介

Vim 是从 Vi 发展出来的一个文本编辑器,Vi 是 Unix 和类 Unix 系统中的一个标准文本编辑器。Vim 不仅兼容 Vi 的所有功能,还增加了许多新的功能,使其更加强大和灵活。Vim 的全称是 Vi IMproved,意味着它是 Vi 的改进版。Vim 支持多种模式,包括普通模式、插入模式、命令模式等,用户可以在这些模式之间快速切换,以执行不同的编辑任务。

# 2.删除操作的重要性

在文本编辑中,删除操作是最常见的任务之一。无论是修正错误、重构代码还是格式化文档,删除不需要的文本都是编辑过程中不可或缺的一部分。Vim 提供了多种删除命令,可以帮助用户以不同的方式快速删除文本。

# 3.删除当前字符到行尾的操作

在 Vim 中,如果你想要删除从当前光标位置到行尾的所有字符,可以使用以下命令:

d$
1

这里的d代表删除(delete),$是一个运动命令,表示到行尾。组合起来,d$就是删除从当前光标位置到行尾的所有内容。这个命令非常实用,尤其是在你需要清除一行中光标之后的所有内容时。

# 4.命令解析

  • d:这是 Vim 中的删除操作符,用于删除文本。
  • $:这是一个运动命令,表示移动光标到当前行的末尾。

# 5.使用场景

这个命令在多种场景下都非常有用,例如:

  1. 清除代码注释:当你需要删除一行代码中的注释部分时,可以将光标放在注释的开始位置,然后使用d$命令。
  2. 修正错误:在编写代码或文档时,如果一行的后半部分有错误,可以使用d$快速删除错误的部分。
  3. 格式化文本:在编辑文档时,如果需要删除每行末尾的多余空格或特殊字符,d$命令可以帮助你快速完成这个任务。

# 6.与其他删除命令的比较

Vim 中还有其他删除命令,例如:

  • x:删除光标所在位置的单个字符。
  • dd:删除整行。
  • D:与d$类似,也是删除从当前光标位置到行尾的所有内容,但是D是大写,表示这是一个操作符,可以与其他运动命令结合使用。

# 九.Vim 中的其他删除技巧

# 1.删除汇总

命令 含义
x 删除光标所在处字符
nx 删除光标所在处后的 n 个字符
dd 删除光标所在行。ndd 删除 n 行
dG 删除光标所在行到末尾行的所有内容
D 删除光标所在处到行尾的内容
:5,7d 删除指定范围的行
dw 删除一个单词/光标之后的单词剩余部分
d$ 删至行尾
d0 删至行首
d3l 删除 3 个字符
dt) 删除到右括号的内容
c$ 删除到行尾并插入

# 2. 删除到行首

如果你需要删除从行首到当前光标位置的所有内容,可以使用以下命令:

d0
1

这里的0是一个运动命令,表示移动光标到当前行的开头。

# 3. 删除整行

如果你需要删除整行内容,可以使用以下命令:

dd
1

这个命令会删除光标所在的整行,并将其放入 Vim 的寄存器中,以便之后可以粘贴。

# 4. 删除多个字符

如果你需要删除多个字符,可以使用以下命令:

d3l
1

这里的3l表示向右移动 3 个字符。d3l命令会删除从当前光标位置开始的 3 个字符。

# 5. 删除到特定字符

如果你需要删除到特定字符,可以使用以下命令:

dt)
1

这里的t)表示移动到右括号)的位置。dt)命令会删除从当前光标位置到下一个右括号之间的所有内容。

# 6. 删除并替换

Vim 还允许你在删除的同时替换文本。例如,如果你想要删除当前光标位置到行尾的所有内容,并替换为新的内容,可以使用以下命令:

c$
1

这个命令会删除从当前光标位置到行尾的所有内容,并进入插入模式,允许你输入新的内容。

# 7.删除到结束

从当前字符一直到结束都删除

d$
1
上次更新: 1/12/2025, 11:44:05 PM