VIM工具
VIM工具vim介绍前面学过vi的一些操作和命令,而vim和vi其实可以说是一个东西,为什么这么说呢?因为vim是vi的升级版本。想使用vim这个命令需要先行安装,用命令:yum instaill -y vim-enhancedvim是带有颜色显示的,而vi则是黑白显示的。vi /etc/passwd[root@zyshanlinux-01 ~]# vi /etc/passwdroot:x:..
vim介绍
vim命令图解
vim键位图
前面学过vi的一些操作和命令,而vim和vi其实可以说是一个东西,为什么这么说呢?
因为vim是vi的升级版本。
想使用vim这个命令需要先行安装,用命令:yum install -y vim-enhanced
[root@zyshanlinux-01 ~]# yum install -y vim-enhanced 已加载插件:fastestmirror base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 Loading mirror speeds from cached hostfile * base: mirrors.njupt.edu.cn * extras: mirrors.163.com * updates: mirrors.163.com 正在解决依赖关系 --> 正在检查事务 . . . 已安装: vim-enhanced.x86_64 2:7.4.160-4.el7 作为依赖被安装: gpm-libs.x86_64 0:1.20.7-5.el7 perl.x86_64 4:5.16.3-292.el7 perl-Carp.noarch 0:1.26-244.el7 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-3.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7 perl-Pod-Escapes.noarch 1:1.04-292.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7 perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-292.el7 perl-macros.x86_64 4:5.16.3-292.el7 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7 vim-common.x86_64 2:7.4.160-4.el7 vim-filesystem.x86_64 2:7.4.160-4.el7 完毕!
vim是带有颜色显示的,而vi则是黑白显示的。
vi /etc/passwd
[root@zyshanlinux-01 ~]# vi /etc/passwd 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 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 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin user1:x:1000:1001::/home/user1:/bin/bash user2:x:1005:1002::/home/user2:/bin/bash user3:x:1007:1002::/home/test:/sbin/nologin user6:x:1009:1009::/home/user6:/bin/bash user5:x:1010:1011::/home/user5:/bin/bash user9:x:1013:1013::/home/user9:/bin/bash "/etc/passwd" 27L, 1179C
vim /etc/passwd
用vim打开了/etc/passwd千万不要进行改动,改错了会造成系统启动受影响。
vim分3种模式:
一般模式:dd命令,把一行删除,复制某行粘贴等。
编辑模式:进入编辑模式需要按【i】这个按键过程,用键盘对文档字、符进行修改,还有回车、换行等。
命令模式:像less命令,/+关键字,可以查找等。把文档里的123改为456,可以批量操作的。包括:wq也是命令模式。
vim颜色显示和移动光标
相同的文件在不同的目录下,就有可能会导致颜色不存在;在centos里面/etc/下面的文件往往是配置文件,在/etc/下面就会显示颜色,把它放到其他地方它就不会显示颜色,这是它的一个特性。
但是/etc/fstab移到/tmp/passwd仍然有颜色,这是为什么呢?这是因为vim的颜色还与文件的具体内容有关系,不只如此,它的颜色还与名字有关;
vim有自己的配置文件:
/etc/vimrc
vim的高级用法就需要进入该配置文件进行配置。
vim一般模式下的移动光标
空格也是向右移动一个字符的,但是在空格键和h、l、k、j键前面加上数字,光标就会移动到你指定数字的行列去。
按键 | 作用 |
---|---|
h或者向左的方向键 | 光标向左移动一个字符 |
l或者向右的方向键 | 光标向右移动一个字符 |
k或者向上的方向键 | 光标向上移动一个字符 |
j或者向下的方向键 | 光标向下移动一个字符 |
Ctrl+f或PageUp键 | 屏幕向前移动一页 |
Ctrl+b或PageDown键 | 屏幕向后移动一页 |
数字0或者Shift+6 | 移动到本行行首 |
Shift+4 | 移动到本行行尾 |
gg | 移动到首行 |
G | 移动到尾行 |
n+G(n是任意数字) | 移动到第n行 |
一般模式下复制剪切粘贴
按键 | 作用 |
---|---|
x,X | x表示向后删除一个字符,X表示向前删除一个字符 |
n+x | 向后删除n个字符 |
dd | 删除/剪切光标所在的那一行 |
ndd(n为number缩写) | 删除/剪切光标所在行之后的n行 |
yy | 复制光标所在行 |
p | 从光标所在行开始,向下粘贴已经复制或者粘贴的内容 |
P(大写) | 从光标所在行开始,向上粘贴已经复制或者粘贴的内容 |
nyy | 从光标所在行开始,向下复制n行 |
u | 还原上一步操作(最多恢复50次);Ctrl+r反向恢复。 |
v | 按v后移动光标会选中指定字符,然后可以实现复制、粘贴等操作 |
进入编辑模式
进入编辑模式:
可以进入到了可以编辑文本文档的一种模式。
不同的按键方式可以产生不同的作用。
【i】在当前字符前插入
【I】在光标所在的行行首插入
【o】在当前行的下一行插入新的一行
【O】在当前行的上一行插入新的一行
【a】在当前字符后插入
【A】在光标所在行的行尾插入
在编辑模式中,判断一行是否是同一行,可以看右下角的行列提示,或者用上下键操控光标移动观看。
命令模式
命令 | 作用 |
---|---|
/word | 向光标之后查找一个字符串word,按n向后继续搜索 |
?word | 向光标之前查找一个字符串word,按n向前继续搜索 |
:n ,n2s/word1/word2/g | 在n1-n2行之间查找word1并替换为word2,不加g则只替换每行的第一个 word1 |
:1,$s/word1/word2/g | 将文档中所有(不指定)的word1替换为word2,不加g则只替换每行的第一个word1 |
:w | 保存文本 |
:q | 退出vim |
:w! | 强制保存,在root用户下,即使文本只读也可以完成保存 |
:q! | 强制退出,所有改动不生效 |
:wq | 保存并退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
特殊情况:需要替换的内容本身带有/号
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 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 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin user1:x:1000:1001::/home/user1:/bin/bash user2:x:1005:1002::/home/user2:/bin/bash user3:x:1007:1002::/home/test:/sbin/nologin user6:x:1009:1009::/home/user6:/bin/bash user5:x:1010:1011::/home/user5:/bin/bash user9:x:1013:1013::/home/user9:/bin/bash user19:x:1014:1015::/home/user19:/bin/bash user4:x:1015:1016::/home/user4:/bin/bash ~ ~ ~ ~ ~ ~ :1,$s//sbin/nologin/zyshan/g #当需要替换的内容是带有“/”就会和它原有的/发生冲突,无法识别出第3个/后的内容,报E488错误。 E488: 多余的尾部字符 13,1 全部
出现这种情况怎么办?这时我们就可以考虑用不同的符号去替换分割的/号。
用\对命令进行脱义
systemd-network:x:192:192:systemd Network Management:/:zyshan dbus:x:81:81:System message bus:/:zyshan polkitd:x:999:997:User for polkitd:/:zyshan postfix:x:89:89::/var/spool/postfix:zyshan sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:zyshan chrony:x:998:996::/var/lib/chrony:zyshan user1:x:1000:1001::/home/user1:/bin/bash user2:x:1005:1002::/home/user2:/bin/bash user3:x:1007:1002::/home/test:zyshan user6:x:1009:1009::/home/user6:/bin/bash user5:x:1010:1011::/home/user5:/bin/bash user9:x:1013:1013::/home/user9:/bin/bash user19:x:1014:1015::/home/user19:/bin/bash user4:x:1015:1016::/home/user4:/bin/bash ~ ~ ~ ~ ~ ~ :1,$s/\/sbin\/nologin/zyshan/g #成功替换带/号的内容
也可以用“#”或者“@”来代替“\”
当某些内容是高亮的时候,你不想看高亮的,可以输入命令:nohl
user19:x:1014:1015::/home/user19:/bin/bash user4:x:1015:1016::/home/user4:/bin/bash ~ ~ ~ ~ ~ ~ :nohl #no high light不要高亮
:x命令在更改文件之后去操作的效果和:wq是一摸一样的。
如果打开文件但没有操作过,使用:wq它会更改mtime更改你查看文件那一刻的时间,使用:x则不会更改mtime
延伸阅读
vim常用快捷键总结 http://ask.apelearn.com/question/407
vim快速删除一段字符 http://ask.apelearn.com/question/842
更多推荐
所有评论(0)