文本编辑工具之vim使用介绍

前端之家收集整理的这篇文章主要介绍了文本编辑工具之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:]]\+\)\>@T\1@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

猜你在找的Bash相关文章