vim指令
一、Vim 是什么?
Vim(Vi IM proved)是 Unix 系统上经典编辑器 vi 的增强版。它有以下特点:
- 模态编辑器 :这是 Vim 最独特也最强大的地方。它拥有不同的模式,在不同的模式下,相同的按键会执行不同的操作。
- 纯文本界面:在终端中运行,无需图形界面,通过 SSH 管理远程服务器时必不可少。
- 高度可定制 :可以通过配置文件
.vimrc和插件来扩展功能,打造专属的编辑环境。 - 高效:一旦熟悉了按键操作,编辑文本的速度会非常快,手几乎不需要离开键盘主区。(不过很反常识那些键位)
在 CentOS 中,通常已经预装了 vim。如果没有,你可以使用我们之前学的 yum 来安装:
bash
sudo yum install vim
二、Vim 的核心概念:模式
理解模式是学习 Vim 的钥匙。主要模式有:
-
普通模式 (Normal Mode)
- 功能 :这是 Vim 的默认模式和命令中心。用于移动光标、删除、复制、粘贴、撤销等操作。
- 进入方式 :在任何其他模式下,按
ESC键。(我们用vim打开文件的时候默认的模式就是普通模式)
-
插入模式 (Insert Mode)
- 功能 :在这个模式下,你才可以像使用记事本一样输入和编辑文本。
- 进入方式 :在普通模式下按以下任意键:
i:在光标当前位置前插入 (insert)a:在光标当前位置后追加 (append)o:在当前行的下方开启新行 (open new line)I:在当前行的行首插入A:在当前行的行尾插入O:在当前行的上方开启新行
-
底行模式 (Command-Line Mode)
- 功能:用于执行保存、退出、搜索替换等高级命令。
- 进入方式 :在普通模式下按
:(冒号)。
-
可视模式 (Visual Mode)
- 功能:类似于用鼠标选中文本,用于高亮选择文本块并进行操作。
- 进入方式 :在普通模式下按
v(字符可视)或V(行可视)。
三、启动、保存和退出(最最最重要的第一步)
这是新手使用 Vim 遇到的第一个坎。
| 操作 | 命令 | 解释 |
|---|---|---|
| 启动 Vim | vim filename |
打开或新建一个文件 |
| 保存文件 | :w |
写入 (write) |
| 退出 Vim | :q |
退出 (quit) |
| 保存并退出 | :wq 或 :x 或 ZZ |
最常用的退出方式 |
| 强制退出(不保存) | :q! |
放弃所有修改,强行退出 |
| 另存为 | :w new_filename |
将当前文件另存为一个新文件 |
记忆技巧 :在底行模式下,命令后的 ! 通常表示"强制"执行。
四、基本移动和编辑(普通模式下的核心操作)
在普通模式下,你才能高效地移动和编辑。
1. 光标移动
- 基本移动 :
h(左),j(下),k(上),l(右) --- 代替方向键(方向键当然也可以用)。
- 单词移动 :
w- 移动到下一个单词的词首b- 移动到上一个单词的词首e- 移动到下一个单词的词尾
- 行内移动 :
0(零) - 移动到行首$- 移动到行尾^- 移动到行首第一个非空白字符
- 屏幕移动 :
gg- 跳到文件第一行G- 跳到文件最后一行:n- 跳到第 n 行(例如:55跳转到第 55 行)Ctrl + f- 向下翻页 (forward)Ctrl + b- 向上翻页 (backward)
2. 文本编辑
- 删除 :
x- 删除光标下的字符dw- 删除一个单词 (delete word)dd- 删除整行 (非常常用)d$或D- 删除从光标到行尾
- 复制( Yank )与粘贴 :
yy- 复制整行 (yank line)yw- 复制一个单词p- 在光标后粘贴 (paste)P- 在光标前粘贴
- 撤销与重做 :
u- 撤销 (undo) 上一次操作Ctrl + r- 重做 (redo),即撤销掉撤销操作
Vim 的哲学:操作符 + 动作
你会发现编辑命令是组合的:d (删除操作符) + d (动作,在这里代表当前行) = dd (删除当前行)。
同理:d + w = 删除一个单词;y + y = 复制一行。
五、高级功能与实用技巧
-
搜索与替换(在底行模式下)
- 搜索 :在普通模式下按
/,然后输入关键词,按回车。按n跳转到下一个匹配项,N跳转到上一个。- 例如:
/hello
- 例如:
- 替换 :
:%s/old/new/g- 将文件中所有的old替换 为new。%表示整个文件范围。s表示替换 (substitute)。g表示全局(一行内所有匹配项),如果没有g则只替换一行中的第一个匹配项。
:10,20s/old/new/g- 只替换第 10 行到第 20 行之间的内容。
- 搜索 :在普通模式下按
-
显示行号
:set number或:set nu- 显示行号:set nonumber或:set nonu- 隐藏行号- 可以将
set number写入~/.vimrc配置文件使其永久生效。
-
复制多行/删除多行
5yy- 复制从光标处开始的 5 行5dd- 删除从光标处开始的 5 行
六、学习路径和建议
- 不要死记硬背 :打开一个测试文件(如
vim test.txt),跟着指令一步步练习。 - 遵循学习曲线 :
- 第一阶段:学会
i进入插入模式,输入文字,然后ESC回到普通模式,再:wq保存退出。 - 第二阶段:熟练使用
h,j,k,l移动,dd,yy,p进行编辑,u撤销。 - 第三阶段:掌握单词移动(
w,b,e)、搜索(/)、替换(:s)。
- 第一阶段:学会
- 玩游戏学习 :在终端中输入
vimtutor并回车。这是 Vim 自带的一个交互式教程。 - 个人看法:喜欢就练。不习惯还是用Windows的编译器吧,反正我是不太喜欢用Linux的编辑器。在Windows上写好,然后传到Linux系统里就好了。
七、vim的配置
说实在的,我感觉vim怎么配置都不如vs好用。大家可以注意到,vim没配置好是很难用的,什么功能都没有。这个大家可以上网搜一下vim的配置,网上有很多很多,如果喜欢用vim编辑的,那你可以好好折腾。
八、修改sudoers文件


总结:Vim 极简备忘录(新手必备)
| 任务 | 命令 |
|---|---|
| 打开文件 | vim filename |
| 保存 | :w |
| 退出 | :q |
| 保存并退出 | :wq |
| 强制退出不保存 | :q! |
| 进入插入模式 | i (插入), a (追加), o (新行) |
| 返回普通模式 | ESC |
| 删除一行 | dd |
| 复制一行 | yy |
| 粘贴 | p |
| 撤销 | u |
| 搜索 | /keyword 然后按 n/N |
| 显示行号 | :set nu |