Vim编辑器

一、vim编辑器的三种模式

1、命令行模式

vim 文件名 打开的就是命令行模式

命令行可以进行一些基本的复制、删除、跳转、撤销、移动等操作

命令含义备注
yy复制光标所在行3yy表示复制3行
p(小写p)光标所在行后面粘贴
P(大写P)光标所在行前面粘贴
gg光标快速跳到文件首行,并且定位到首字符3gg表示快速跳到文件第3行行首字符
G光标快速跳到文件尾行,并且定位到首字符
home键跳转到行首Shift+6 即 ^ 符号表示行首
end跳转到行尾Shitf+4 即 $ 符号表示行尾
dd删除光标所在行3dd表示删除3行(包括光标所在行)
d^从光标位置删至行首,不包括光标位
d$从光标位置删至行尾,包括光标位,与D作用相同
dG删除光标所在行以及下面所有行
dgg删除光标所在行以及上面所有行
x(小写)删除光标所在字符后面一个字符,3x删除3个字符类似于windows下的delete键
X(大写)删除光标所在字符前面一个字符,3X删除3个字符类似windows下的backspace键
u撤销操作ctrl+r 取消撤销

代码实例

1)环境准备
  1. 删除/tmp目录里的所有内容
  2. 将/etc/passwd文件拷贝到/tmp目录里
2)使用vim工具打开文件

用法1:vim 文件名 默认进入命令行模式

[root@localhost ~]# vim /tmp/passwd

用法2:vim +数字 文件名 打开指定的文件,并且将光标移动到指定行

[root@localhost ~]# vim +5 /tmp/passwd

用法3:vim+/关键字 文件名 打开指定的文件,并且高亮显示关键词

[root@localhost ~]# vim +/shutdown /tmp/passwd

2、编辑模式

功能:编辑文件内容

进入方式:

在命令行模式下按:

命令含义
i在光标所在字符前开始插入
a在光标所在字符后开始插入
o在光标所在行的下面另起一新行插入
I(大i)在光标所在行的行首开始插入,如果行首有空格则在空格之后插入
A在光标所在行的行尾开始插入
O在光标所在行的上面另起一行开始插入
S删除光标所在行并开始插入

3、底行模式

1)如何进入底行模式
  • 命令行模式进入底行模式——>按冒号**:**
  • 编辑模式进入底行模式——>先按Esc退出到命令行模式,然后再按冒号**:**
2)底行模式功能
  1. 保存和退出
    1. 保存文件,命令**:w**;另存为到其他文件,命令**:w 文件名**
    2. 保存退出,命令 :wq ;强制保存退出 :wq!
    3. 退出不保存,命令 :q ;强制退出 :q!
    4. 命令 :x 在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)
  2. 搜索替换
搜索摸索 
:/root     n往下匹配;N往上匹配 

替换模式 
:%s/root/ROOT/ 全文搜索,替换每一行匹配到的第一个关键字 :%s/root/ROOT/g 全文搜索,替换每一行所有匹配的关键字 :%s/root/ROOT/gc 交互式替换 :%s/\/sbin\/nologin/\/bin\/bash/ \转义符 :%s#/sbin/nologin#/bin/bash#g 更换分隔符 :7s/shutdown/SHUTDOWN/g 只替换第7行的内容 
取消高亮 
:noh (no highlight)
  1. 其他功能
临时设置行号 
:set number 或 :set nu 
永久设置行号 
echo "set number" >> /etc/vimrc 

:set list 查看控制符 

地址定位 
:1,5 w /tmp/5.txt 保存前5行内容到/tmp/5.txt 
:r /tmp/5.txt 在光标所在行下面读取/tmp/5.txt文件内容 
:3r /tmp/5.txt 在当前文本的第3行后读取/tmp/5.txt文件 
:1,8d 删掉文本的1到8行 
:nr !command 在第n行下面读取命令所执行的结果 
:n! command 用命令的执行结果替换第n行内容

二、多窗口编辑问题

当两个终端同时打开或者意外结束文件时,会产生一个.swap文件 (交换文件)

举例说明:

你在两个终端同时打开/tmp/passwd文件,会产生/tmp/.passwd.swp。这时,有六个按钮可以使用:

O(pen for Read-Only):打开成只读文件。 
E(dit):用正常方式打开要编辑的文件,并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。 
R(ecover):加载暂存文件的内容。 
D(elete):如果你确定这个暂存文件是没有用的,则可以删除。 
Q(uit):不进行任何操作,回到命令行。 
A(bort):忽略这个编辑行为,和Q类似。 

需要注意的是: 这个暂存文件不会因为你结束vim后自动删除,必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。

三、可视化模式

  • 按键:ctrl + v(可视块)或V(可视行),然后按下↑ ↓ ← →方向键来选中需要复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴

  • 退出可视模式按下Esc

Q.E.D.


Read The Fucking Source Code!