未加星标

强大的文本处理工具:vim编辑器

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

一:引言

系统管理员的重要工作就是修改与设置某些软件的重要配置文件,而vim作为vi编辑器的升级版本,不仅能够以不同颜色来显示文字内容,还能够进行诸如shell脚本、C等程序的编写,所以,它还是一个程序编辑器,接下来,就让我们一起来看看vim的有哪些好玩的用法和特征。

二:vim三种模式及其常见用法


强大的文本处理工具:vim编辑器

虽然vim有非常庞大甚至说它复杂也不为过的功能体系,但用结构图的方式把它表现出来,就一目了然了,那么接下来就让我们庖丁解牛,来更加详细的了解 vim命令的基本用法 及其 vim三种模式都有哪些重要功能 。

※vim
options:

-m filename 只读打开文件(注意:当以只读方式打开文件时,只有root与文件所属者能够强制修改保存并退出)

-b filename 打开二进制文件

-o file1 file2 同时打开多个文件

-d file1 file2 比较多个文件,结果会高亮显示出不同内容所在的行及字符,效果如下:


强大的文本处理工具:vim编辑器

※ 命令模式(默认模式)下的常见用法

当处于命令模式下时,常见的用法大致有以下几种:

文本编辑(删除d、复制y、粘贴p、修改c、撤销与反撤销) 切换至visual模式,进行批量操作 翻屏和行间跳转

用法一:文本编辑:

1.删除(d):

①删除字符

x 删除光标处字符

#x 删除以光标起始的#个字符

②删除行

d 删除命令(常与w,e,b,^,0,$ 一起使用)

dd 删除光标所在行

#dd 多行删除

2.复制(y):

y 复制命令(常与w,e,b,^,0,$ 一起使用)

#y 多行复制

yy 复制当前行

3.粘贴(p):

p 若复制的为整行,则粘贴到下边一行。否则,粘贴到当前光标后面

P 若复制的为整行,则粘贴到上边一行。否则,粘贴到当前光标前面

4.修改(c)

含义:先删除,后插入

cc/C:删除光标所在行后进入插入模式(=‘dd+i’)

#cc 修改多行

5.撤销:

u 撤销最近的更改

ctrl+r 反撤销

#u撤销之前多次更改

. 重复前一个操作

n.重复前一个操作n次

6.替换模式(R) :同时完成多个字符的替换

用法二:visual模式:

v 面向字符

V 面向行

ctrl+v 面向块

优点:能够自由的选择多个字符或行来对文本内容进行批量的复制、粘贴、删除等操作。

用法三: 翻屏和行间跳转:

ctrl +f 向下翻一屏

ctrl +b 向上翻一屏

ctrl +d 向下翻半屏

ctrl +u 向上翻半屏

G : 尾行

gg:首行

H:跳到当前页的首行

L: 跳到当前页的尾行

M: 跳到当前页的中间行

※拓展命令模式常见用法

用法一:查找和替换

1.查找:

从当前光标处向尾行查找 :/要查找的内容

从当前光标处向首行查找 :?要查找的内容

2.单个字符替换: r

替换任意多个字符:R (进入替换模式)

3.查找并替换(重点)

① 格式: :内容定界符s/要查找的 内容 /要替换为的内容/修饰符

② 分隔符 : 除常用的 “/” 以外,还有@与#。

相关例题: 复制/etc/rc.d/init.d/functions文件至/tmp目录,替换/tmp/functions文件中的/etc/sysconfig/init为/var/log

正解: :%[email protected]/etc/sysconfig/[email protected]/var/[email protected]

看到这里,相比大家已经知道@与#存在的意义了吧,那就是 当替换内容中含有如 / 这些特殊字符时,为了简化操作,减少转译,我们常用@或#来代替/分隔符。

③内容定界符:

:% 全文查找

:m 查找m行

:m,n m-n行

:$ 只在最后一行中查找(注意啦
强大的文本处理工具:vim编辑器
强大的文本处理工具:vim编辑器
爱举一反三的小伙伴,并不存在^表示在首行中查找)

④要查找的内容: 支持基本的正则表达式

⑤要替换为的内容: 不支持正则表达式,但支持 后向引用 与 &

注意 :&表示引用之前模式匹配的整体,并不同于后向引用。

相关例题 : 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号

正解: :%s/^#\([[:space:]]\+\)/\1/gc 错解: :%s/^#\([[:space:]]\+\)/$/gc 错误原因:\1才代表 \([[:space:]]\+\)这个整体,而 $代表引用 ^#\([[:space:]]\+\)这个整体,所以此时#与其后的空格并没有被替换

⑥修饰符:

g 全局替换(默认不加g时,只替换每行第一次出现)

i 忽略字母的大小写

c 每次替换前询问

查找替换相关例题:

1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

正解: :%s/^[[:blank:]]\+//g

2.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

正解: :%s/^[[:space:]]\+/#&/g 其中&匹配 ^[[:space:]]\+

用法二:多文件模式

vim -o file1 file2………..

:next 切换到下一个文件

:previous 切换到上一个文件

:last 切换到最后一个文件

:first 切换到第一个文件

:wqall 保存所有文件并退出

用法三:定义窗口属性

设置全局窗口属性: /etc/vimrc

设置用户窗口属性: ~/.vimrc

:set all 显示当前文件所有set

:set nu /nonu 显示行号

:set ai/noai 自动缩进

:set ic/noic 忽略字符大小写

:set sm/nosm 括号匹配

:set tabstop=num 设置tab键为num个字符

syntax on /off 语法高亮

:set hlsearch/nohlsearch 搜索高亮显示(也可通过/kugkufguewgfuew搜索任意字符来取消高亮)

相关例题 : 在vim中设置tab缩进为4个字符

编辑配置文件/root/etc/vimrc―->插入一行 set tabstop=4

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: 删除法大
分页:12
转载请注明
本文标题:强大的文本处理工具:vim编辑器
本站链接:http://www.codesec.net/view/561378.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(21)