文本编辑工具之vim使用介绍
1、文本编辑器: 纯文本编辑器,ascii码(127个字符),unicode(全球统一编码) 2、文本编辑器分类: 行编辑器:sed 全屏编辑器:nano、vi、vim 3、vim编辑器模式介绍: 编辑模式:(也叫命令模式) 输入模式: 末行模式:内置命令行接口 4、vim编辑器模式之间转换: 编辑模式-->输入模式 i:insert;在光标所在处输入 a:append;在光标所在处后方输入 o:在光标所在处下方打开一个新的行 I:在光标所在行行首输入 A:在光标所在处行尾输入 O:在光标所在行上方打开一个新的行 输入模式-->编辑模式 ESC键 编辑模式-->末行模式 : 末行模式-->编辑模式 ESC键 5、vim新建或打开文件 格式: vim [options] [file ..] vim [options] - vim [options] -t tag vim [options] -q [errorfile] option: +#: 打开文件后,光标直接处于第#行的行首,如果不加#,+则代表处于文件尾行行首; +/PATTERN:打开文件后,直接让光标处于被模式PATTERN匹配的第一次匹配的字符行的行首 6、vim退出 ZZ: 在编辑模式下,输入两个大写Z q:不保存退出,在末行模式下输入q q!:强制不保存退出,末行模式下 wq:保存退出,末行模式下 x:保存退出,末行模式下 w /path/to/somefile :保存至指定路径文件,末行模式下 7、编辑模式下(即命令模式)的相关操作 7.1、实现光标跳转:字符间跳转、单词间跳转、行首行尾跳转、行/句间跳转、段间跳转 字符间跳转: h:向左跳转一个字符 l:向右跳转一个字符 j:向下跳转一个字符 k:向上跳转一个字符 #[hjkl]:向相应方向一次跳转#个字符;如2h,向左跳转2个字符一次 单词间跳转: w:跳转至下一个单词的词首; b:跳转至当前或前一个单词的词首 e:跳转至当前或下一个单词的词尾; #[wbe]:跳转指定的#单词; 行首行尾跳转: ^:跳转至行首的第一个空白字符; 0:零;跳转至行首,绝对行首(包括空白字符) $:跳转至行尾,绝对行尾,包括空白字符 行间跳转: #G:跳转指定的#行 1G:跳转至第一行 G:跳转至最后一行; gg:跳转至第一行 句间跳转: ):跳转至下一句(右括号) (:跳转至前一句(左括号) #[()]:跳转至第#句 段间跳转: }:跳转至下一段落 {:跳转至上一段落 #[{}]:跳转至第#段落 7.2、翻屏操作: ctrl+f:向文件尾部翻一屏; ctrl+b:向文件首部翻一屏; ctrl+d:向文件尾部翻半屏 ctrl+u:向文件首部翻半屏 enter:按行向后翻 7.3、编辑模式下的命令 有如下:字符编辑、替换操作、删除操作、粘贴操作、复制操作、改变操作等命令 字符编辑命令: x:删除光标所在处的字符 #x:删除光标所在处及其后的指定个数#的字符 xp:将光标所在处的字符与其后的位置字符交换位置 替换命令:replace r:替换光标所在处的字符,r后跟要替换的单个字符; 删除命令:d d:删除命令,可结合光标跳转字符,实现范围删除 [#]d[hjklweb]:结合光标跳转字符操作 dd:删除光标所在的行 #dd:删除光标所在处及其后的共#行; 粘贴命令:p p:小写p;缓冲区中的内容如果为整行,则粘贴在当前光标所在处的下行,如果不为整行,则粘贴至当前光标所在处的后方; P:大写P;缓冲区中的内容如果为整行,则粘贴在当前光标所在处的上方,如果不为整行,则粘贴至当前光标所在处的前方; 复制命令:yank,y y:复制,工作行为相似于“d”命令 yy:复制一整行 #yy:复制共#行 y[^$0web] 改变命令:c 改变命令c和删除命令d一样,只是比d命令多了模式切换。从编辑模式切换到输入模式。 c: #cc 撤销命令: u:撤销此前的操作,默认最多可撤销前50次操作 #u:撤销此前的#次操作 撤销此前的撤销命令: ctrl+r :恢复此前的撤销操作。 重复执行前一次编辑操作:. (点号) . 可视化模式:支持上下左右键框选。 v:小写v;按字符选定 V:大写V;按行选定; vim自带的练习教程:vimtutor 8、末行模式操作: 末行模式是内建的命令行接口。 他包括以下:地址界定、查找、查找替换等操作。 8.1、地址界定:可同编辑命令一同使用,实现编辑操作,如:d,y,c,w,r;注意编辑操作直接跟在界定后面,不用再加空格 地址界定格式: :start_pos[,end_pos]//开始位置[,结束位置] :# : 第#行; 如::5 表示第5行, :#,N :指定范围,左侧为起始行,右侧为结束行 如::9,100 :表示从第9行到第100行 :#,+# :指定行范围,左侧为起始行绝对编号,右侧为相对左侧的偏移量; 如::3,+7 :表示从第三行到第10行 :. :点好表示当前行。 :$ :最后一行 如::.,$ :表示当前行到最后一行 :% :表示全文 相当于:1,$ :/pattern/ :从光标所在处开始,第一次被模式所匹配的行 如: :/fstab/ :表示查找第一次匹配到的fstab。 :/fstab/,$ :表示从光标所在处第一次匹配到的fstab到末行之间的行。 :/pattern1/,/pattern2/ :第一次被模式1匹配到的和第一次被模式二之间匹配到额行,很少用。 地址界定后跟编辑操作: :5w /path/to/somefile:把第5行内容写到特定文件中 :5r /path/from/somefile:在第五行后追加其他文件的内容 :w/path/to/somefile :将范围内的文本保存到指定的文件中 :r/path/from/somefile :将指定文件中的文本读取并插入指定位置; 8.2、查找 :/pattern :从当前光标所在处向文件尾部查找,能够被当前模式匹配到的所有字符串;注意和地址界定中的:/pattern/ 的区别。 :?pattern :从当前光标所在处向文件首部查找,能够被当前模式匹配到的所有字符串; 注意: /pattern和?pattern可以配合n和N进行定位,n和命令方向相同,N和命令方向相反; 8.3、查找并替换: s 格式::s/要查找的内容/替换为的内容/[修饰符] 要查找的内容:可使用正则表达式 替换为的内容:不能使用正则表达式,但是可以引用。 注意:如果“要查找的内容”部分在模式中使用分组符号,在替换为的内容中使用后项引用; 直接引用查找模式匹配到的全部文本,要使用 & 符号。 修饰符: i:查找时忽略大小写 g:全局替换。默认为替换每行中的第一个匹配项 注意:如果分隔符与查找的或替换的内容有冲突,可以将分隔符“/”替换成其他的非常用字符,如@、# :s@要查找的内容@替换为的内容@[修饰符] :s#要查找的内容#替换为的内容#[修饰符] 如::%s@&;t([[:alpher:]]+)&;@T1@g//匹配到t开头的单词,然后换成T开头的单词 :%s@&;t[[:alpher:]]+)@&er@g//匹配到t开头的单词,在其后加上er :%s@#@@//将#号开头的行替换成空 练习1:复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首空白字符 [root@localhost ~]# cp /etc/grub2.cfg /tmp/ :%s/^[[:space:]]+// 练习2:复制/etc/rc.d/init.d/functions文件至tmp中,用查找替换命令为/tmp/functions文件中的每个以空白字符开头的行的行首加上“#” [root@localhost tmp]# cp /etc/rc.d/init.d/functions /tmp/functions :%s/^[[:space:]]+/#1/g 练习3:为/tmp/grub2.cfg文件的前三行的行首加上# :1,3s/.*/#&/ 练习4:将/etc/yum.reposd/centos-base.repo文件中将所有enabled=0替换为enabled=1,所有的gpgcheck=0,替换为gpgcheck=1 [root@localhost tmp]# cp /etc/yum.repos.d/CentOS-Base.repo /tmp/centos-base.repo :%s/(enabled|gpgcheck)=0/1=1/g 9、vim多文件功能 vim file1 file2 ... //依次新建、打开多个文件,默认打开的第一个,在新建的文件中进行切换,在末行模式下输入:next(下一个文件)、prev(上一个文件)、first(第一个文件)、last(最后一个文件)。 退出所有文件,末行模式下输入: wqall :保存退出所有文件 wall:保存所有文件 qall:推出所有文件 如:[root@localhost tmp]# vim fstab issue //依次打开fstab、issue文件,如果不存在,则新建。 9.1、vim文件的多窗口功能: 多文件的多窗口显示: vim -o file1 file2 //小写“o”水平分割同时显示file1和file2 vim -O file1 file2 //大写“o”垂直分割同时显示file1和file2 文件窗口之间的切换:按住ctrl+w松开后,用上下左右箭头选择需要操作的文本窗口。 单文件的多窗口显示: 打开文件后,按住ctrl+w松开,按s键水平分割; 打开文件后,按住ctrl+w松开,按v键垂直分割; 关闭展开的窗口,正常退出操作即可。 10、定制vim的工作特性: 末行模式下的设定,仅对当前vim进程有效; 如果要vim特性永久有效,需要修改配置文件: 全局配置文件:/etc/vimrc 个人配置文件:~/.vimrc //可能需要自己创建此文件。 如:vim /root/.vimrc set number//显示行号。 vim特性:(末行模式下设定) 行号: 显示行号:set number 简写为set nu 取消行号:set nonumber 简写为set nonu 括号匹配,高亮显示: 匹配显示:set showmatch ;set sm 取消显示:set noshowmatch;set nosm 自动缩进: 启用缩进:set ai 停用缩进:set noai 高亮搜索结果: 启用设置:set hlsearch 停用设置:set nohlsearch 语法高亮显示: 启用设置:syntax on 停用设置:syntax off 忽略字符大小写:(查找替换中的修饰符g) 启用设置:set ic 停用设置:set noic 11、末行模式下的帮助命令: help help 关键字 12、设置vim编辑器中的tab缩进为四个字符 在.vimrc中添加以下代码,实现按tab键产生4个空格 set ts=4 (注:ts是tabstop的缩写,设置tab宽4个空格) set expandtab (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |