vim指令
vim指令
一、Vim 是什么?
Vim(Vi IMproved)是 Unix 系统上经典编辑器 vi
的增强版。它有以下特点:
- 模态编辑器:这是 Vim 最独特也最强大的地方。它拥有不同的模式,在不同的模式下,相同的按键会执行不同的操作。
- 纯文本界面:在终端中运行,无需图形界面,通过 SSH 管理远程服务器时必不可少。
- 高度可定制:可以通过配置文件
.vimrc
和插件来扩展功能,打造专属的编辑环境。 - 高效:一旦熟悉了按键操作,编辑文本的速度会非常快,手几乎不需要离开键盘主区。(不过很反常识那些键位)
在 CentOS 中,通常已经预装了 vim
。如果没有,你可以使用我们之前学的 yum
来安装:
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 |