标签:bsp 位置 5.6 6.2 set 操作 down 执行 nbsp
5.5 进入编辑模式
小写i
在当前光标所在位置进入编辑模式
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
-- 插入 --
大写i
在光标所在行行首进入编辑模式
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
-- 插入 --
小写o
从光标所在行后面另起一行进入编辑模式
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
-- 插入 --
大写o
从光标所在行上面另起一行进入编辑模式
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
-- 插入 --
小写a
光标向后移动一位并进入编辑模式,向当前位置后面插入内容
大写a
移动到当前行的行末并进入编辑模式
进入编辑模式后,一般模式下的所有快捷键均无法使用
5.6 vim命令模式
搜索字符(串):输入:进入命令模式,再输/跟要查找的内容回车即可
使用/查找
…
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
已查找到文件结尾,再从开头继续查找
所有匹配搜索条件的字符(串)会高亮显示;
按n光标会向下逐一移动到对应的字符(串)上;
按shift+n会向上逐一移动到对应字符(串)上;
使用?查找
…
hyc:x:1000:1000::/home/hyc:/bin/bash
hyc1:x:1001:1001::/home/hyc1:/bin/bash
hyc2:x:1006:1001::/home/hyc2:/bin/bash
hyc3:x:1007:1005::/home/hyc111:/sbin/nologin
hyc4:x:1008:1008::/home/hyc4:/bin/bash
hyc5:x:1014:1001::/home/abc:/sbin/nologin
hyc6:x:1015:1015::/home/hyc6:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
?hyc
按n会逐一向上匹配字符(串);
按shift+n会逐一向下匹配字符(串);
替换字符(串)
…
99 boot1:x:1001:1001::/home/boot1:/bin/bash
100 boot2:x:1006:1001::/home/boot2:/bin/bash
101 hyc3:x:1007:1005::/home/hyc111:/sbin/nologin
102 hyc4:x:1008:1008::/home/hyc4:/bin/bash
103 hyc5:x:1014:1001::/home/abc:/sbin/nologin
104 hyc6:x:1015:1015::/home/hyc6:/bin/bash
105 root:x:0:0:root:/root:/bin/bash
106 bin:x:1:1:bin:/bin:/sbin/nologin
107 daemon:x:2:2:daemon:/sbin:/sbin/nologin
108 adm:x:3:4:adm:/var/adm:/sbin/nologin
:1,100s/hyc/boot/g :替换文档中1到100行中的所有字符串hyc为boot
g:不加g则仅替换第一次遇见的条件匹配的字符(串),后面匹配条件的字符(串)将不被替换
s:表示替换
1,100:1到100行
命令行模式下按上下方向键可以调出之前用过的命令
当要被替换的字符(串)里也包含/时:
:1,$s//home/hyc/uuu/g 用uuu替换/home/hyc
这种情况下系统将第一个/后的内容识别为空,第二个/后识别为home,一般第三个/后应为g或不应再有字符,但此时第三个/后出现其他字符,系统无法识别,此时产生报错信息“多余的尾部字符”
解决办法:
1 脱义
:1,$s/\/home\/hyc/uuu/g
在上面写法中home左侧和hyc左侧的/会被识别为命令行命令的一部分而不是普通字符,此处使用脱义符\将两个/字符识别为纯字符命令即可正常执行
2 更换命令使用的符号
:1,$s#uuu#/home/hyc#g
将命令使用的/用#代替;
/可以用#或@代替;
保存、退出
:q 退出
:w 保存
:wq 保存并退出
:x 保存退出
:w! 强制保存
:q! 强制退出
:x和:wq的区别:
当用户打开文件后未做任何操作时,可以用这两个命令保存退出;
当执行时,:x不会修改文件的mtime,因为未做任何操作;
执行:wq时,不管是否修改文件内容,文件的mtime都会改变;
其他
:set nonu 不显示行号
:set nu 显示行号
:nohl 取消高亮显示
5.7 vim实践
1 分别向下、右、左、上移动6个字符
向下:6+j
向右:6+l
向左:6+h
向上:6+k
2 分别向上和下翻两页
向上:ctrl+b
向下:ctrl+f
3 移动光标到第49行
行号 shift+g
4 把光标移动到行尾,再移动到行首
行尾:shift+$
行首:shift+^
5 移动到文件的最后一行
shift+g
6 移动到文件的首行
gg
7 搜索文件中出现的字符(串),并数出该字符串出现的次数
搜索root
从文件末尾开始:?root;使用n指出有多少root
从文件开头开始:/root;使用n指出有多少root
8 把从第一行到第十行出现的root替换为fff
:1,10s/root/fff/g
9 还原上一步操作
u
10 把整个文件中的所有fff替换成root
:1,$s/fff/root/g
11 把光标移动到第25行,删除字符串hyc
25 shift+g
移动光标到相应位置;
使用v选中字符串按x删除
或 直接使用x删除
12 还原上一步操作
u
13 删除第50行
50 shift+g
dd
14 还原上一步操作
u
15 删除第37到42行的所有内容
37 shift+g
5dd
16 还原上一步操作
u
17 复制第48行的内容并粘贴到第52行下面
48 shift+g
yy
52 shift+g
P
18 还原上一步操作
u
19 复制第37-42行的内容并粘贴到44行上面
37 shift+g
6yy
44 shift+g
shift+p
20 还原上一步操作
u
21 把37-42行的内容移动到19行下面
37 shift+g
6dd
19 shift+g
P
22 还原上一步操作
u(此时需要按两次u)
23 把光标移动至首行,把第一行内容修改为“#!/bin/bash”
gg
按字母A进入编辑模式
编辑完成后按esc键退出编辑
24 在第一行下面插入新的一行,并输入”hello!”
gg
输入o进入编辑模式
输入hello!
按esc键退出编辑
25 保存文档并退出
:wq
标签:bsp 位置 5.6 6.2 set 操作 down 执行 nbsp
原文地址:http://blog.51cto.com/12216458/2131528