vim编辑器整理(无演示)

vim编辑器

vim编辑器是linux中最强大的全屏幕纯文本编辑器,他是vi编辑器的增强版。

文本编辑器:
	文本:纯文本,在ASCII角度讲是纯粹的不加任何修饰的文本信息
    支持Unicode编码方式
文本编辑器种类:
	行编辑器:sed
	全屏编辑器:nano,vi

		vi : (VIsual Interface)		
		vim: VI IMproved
	其他编辑器:
		gedit: 一个简单的图形编辑器		
		gvim:一个vim编辑器的图形版本

vim: 模式化的编辑器,

基本常用模式:
	命令模式
	编辑模式,也叫插入模式
	末行模式:也叫扩展命令模式,内置的命令行接口

打开文件:
	  vim [options] [file ..]
  	如果vim打开的文件不存在,他会自动创建此文件,并把编辑的内容保存在此文件中。如果文件事先存在,则会打开此文件,并且光标默认处在第一行的第一个字符上。
	关闭vim:两个大写ZZ。就可以保存关闭
  		+#:打开文件后,字节让光标处于第#行行首
  		+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行首。
  		vim +  file  :打开文件后,光标自动处在尾行行首  		
		+#:  打开文件后,直接让光标处于第# 行的行首
		+/ PATTERN :打开文件后,直接让光标处于第一个被PATTERN 匹配到的行的行首		
                vim + file  直接打开file, 光标在 最后一行行首[object Object]
vim –b file  二进制方式打开文件		
vim –d file1 file2… 比较多个文件:在文件不同的位置会有高亮显示
vim -m file 只读打开文件

		ex file 或 或 vim –e 直接进入ex


模式转换:
	命令模式:默认模式
		命令模式--> 编辑模式:
	
	        i:insert,在光标所在处前方输入
		a: append,在光标所在处后方输入
		o: 在光标所在处下方打开一个新行,光标直接处于新行行首		I:在当前光标所在行的行首输入。
		A:在当前光标所在行的行尾输入。
		O: 在光标所在的行的上方打开一个新行。
		
		编辑模式-->命令模式
	        
	        只需要敲Esc键

		命令模式-->末行模式:扩展命令模式
		    :
		末行模式:扩展命令模式-->命令模式
		    按Esc

		锁定和解锁:CTRL+s,Ctrl+q
		    锁定后通过键盘输入的操作,不通过输出设备显示,但是在解锁之后会插入到光标所在位置后方插入前面输入设备输入的数据。


关闭文件:
	ZZ:保存并退出
	ZQ:不保存退出

末行模式下:输入q退出
	q!强制退出,不保存此前的编辑操作。
	wq保存修改并退出
	x保存并退出
	w/PATH/TO/SOMEFILE 保存至新文件FILE并退出,相当于另存为的效果

光标跳转:

字符间跳转:	

        h:光标向左跳转一个字符	
        l:光标向右跳转一个字符
	j:光标向下跳转
	k:光标向上跳转

	#COMMAND:跳转由#指定的个数的字符
	
单词间跳转
	w:光标跳转到下一个单词的词首	
	e:光标跳转到当前或者下一个单词的词尾
	b:光标跳转到当前或前一个单词的词首

	#COMMAND :跳转由#指定的个数的单词
	
行首行尾跳转
	^:光标跳转至行首的第一个非空白字符
	0:跳转至行首
	$:光标跳转至行尾

行间跳转

	#G:光标跳转至由#指定的行
	1G或者gg:光标跳转至第一行	
	G:跳转至最后一行

句间跳转

	):跳转到下一句
	(:跳转到上一句
段间跳转

	}:跳转到下一段
	{:跳转到上一段
翻屏操作;
	Ctrl + f :向文件尾部翻一屏
	Ctrl + b :向文件首部翻一屏
	Ctrl + d :向文件尾部翻半屏
	Ctrl + u : 向文件首部翻半屏
	Enter : 按行向后翻

vim的编辑命令:

  • 字符编辑:

x:删除光标所在处的字符;	    
    #x:删除光标所在处起始的#个字符
    xp:交换光标所在处的字符与其后面字符所在的位置
    替换命令:(replace)
    	rCHAR:替换光标所在处的字符为CHAR
  • 删除命令

d:删除命令,可结合光标跳转字符,实现范围删除;	
d$:删除当前光标所在处至行尾的字符	
d^:删除当前光标所在处至行首第一个非空白字符位置
	dd:删除光标所在行的整行字符
		#dd:删除光标所在处的行起始的共#行字符;
删除的字符不会被清掉,会保留在缓冲区当中,但是只能粘贴最后一次操作的东西
  • 粘贴命令:(put paste)

p:缓冲区的内容如果为一整行,或者为多个整行,则粘贴在当前光标所在行的下方;否则粘贴至当前光标所在出的后方。
P:缓冲区的内容如果为一整行,或者为多个整行,则粘贴在当前光标所在行的上方;否则粘贴至当前光标所在出的前方。
  • 复制命令:(yank)

y:复制,工作行为相当于d命令;
	y$:从光标所在位置复制到行尾
	y^:从行首非空白字符开始复制到光标所在位置		
	y0:从行首复制到光标所在位置

改变命令(change ,c)
	编辑模式--> 输入模式,实现删除操作;
	cc:删除光标所在处的行,并转换为输入模式		
	#cc:删除光标所在处以及后面的#行,并转换为输入模式
  • 其他的编辑操作:

可视化模式:
	v:按字符选定
	V:按行选定
	结合编辑命令:d , c , y
撤销操作:(undo)	
    u:撤销此前的操作,一般默认可以撤销50次。前提是此前操作都保存在缓冲区当中。
    #u:撤销此前#次的操作

撤销此前的撤销操作:
	Ctrl + r :恢复此前的撤销操作

重复执行前一个编辑操作:
	. :重复此前的编辑操作。

vim自带的练习教程:vimtutor

vim末行模式:(扩展命令行模式)

内建的命令行接口

(1)地址定界:
:start_pos[,end_pos]	#:特定的第#行,例如5就表示第5行
	.:点号表示当前行
	$:表示最后一行	#,#:从第#行到第#行,左侧为起始行,右侧为结束行
	#,+#:指定行范围,左侧为起始行的绝对编号,右侧为相对左侧行号的偏移量。
	%:表示全文
	/pattern/:第一次被指定的模式所匹配到的行,光标所在处起始,到文件尾部的第一次。
		/first/,$,从第一次first所匹配到的行到最后一行
	/pattern1/,/pattern2/:从光标所在处起始,第一次由pattern1匹配到的行开始,至第一次pattern2匹配到的的行之间的所有行。
可同编辑命令一同使用,实现编辑操作:
	d:删除匹配到的内容
	y:复制匹配到的内容
	c:替换匹配到的内容
	w /PATH/TO/SOMEFILE:将范围内的文本保存在指定的文件中
	r /PATH/FROM/SOMEFILE:将制定文件中的文本读取并插入至指定位置。
	!COMMAND	在末行模式下执行命令,不对当前文件产生影响
	r!COMMAND 将命令执行结果插入当前光标所在位置的后方

(2)查找
	/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串
	?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
		n:下一个,与命令方向相同
		N:上一个,与命令方向相反

(3)替换查找并替换

s:末行模式的命令:使用格式:
	s/要查找的内容/替换为的内容/修饰符
	要查找的内容:可使用正则表达式
	替换为的内容:不能使用正则表达式,但可以引用;
		如果“要查找的的内容”部分在模式中使用了分组符号:在“替换为的内容”中使用向后引用。
		直接引用查找模式匹配到的全部文本;
	修饰符:主要是用来实现修饰查找替换时的某些功能。
		i:查找时忽略大小写
		g:全局替换,意味着一行中如果匹配到多次,则均替换。

	可把分隔符替换为其它非常用字符:
		s@@@
		s###

vim的多文件模式;

多文件:
vim FILE1 FILE2 。。。

在文件间切换:
	next :下一个
	prev :上一个
	first: 第一个
	last:最后一个
退出所有文件:
	wqall 保存所有文件并退出
	wall 保存所有文件
	qall 退出所有文件
多窗口:
	-o:水平分割窗口	-O: 垂直分割窗口		
	切换窗口:Ctrl+w 摁完松开 在摁向上或者向下键上下切换窗口
	Ctrl+w 摁完松开 在摁向左或者向右键左右切换窗口

定制vim的工作特性

对vim的修改要想永久有效,需要对其配置文件进行修改:
    全局永久有效:/etc/vimrc
    个人永久有效:~/.vimrc
在末行模式(扩展命令模式)下修改,只对当前vim进程有效。
(1)行号
    显示:set number ,简写为set nu
    取消显示:set nonumber ,简写为set nonu
(2)括号成对匹配
    匹配:set showmatch ,简写set sm
    取消:set noshowmatch , 简写 set nosm
(3)自动缩进
    启用:set ai
    禁用:set noai
(4)高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch(5)语法高亮
    启用:syntax on
    禁用:syntax off
(6)忽略字符的大小写
    启用:set ic
    禁用:set noic
(7)文件格式
    启用:fileformat = unix
    不忽略:fileformat = dos
(8)设置文本高度    set textwidth = 65
    set wrapmargin = 15

当天作业:

  • 1、如何设置tab缩进为4个字符?

    set ts=4
  • 2、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

    [root@localhost ~]#sed  's@/etc/sysconfig/init@/var/log@g' /tmp/functions
  • 3、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

    [root@localhost ~]# sed -r 's@^#([[:space:]]+)@\1@' /tmp/functions

原创文章,作者:dxkboke,如若转载,请注明出处:http://www.178linux.com/32548

(0)
dxkbokedxkboke
上一篇 2016-08-10
下一篇 2016-08-10

相关推荐

  • cp和ln命令简述

    cp和软ln命令简述 cp          备注: 1.       该命令可以自动判断你所复制的是文件还是目录 2.       当源是一个文件,目标(目的…

    2017-08-19
  • Linux下的SSH端口转发

    通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意的端口的访问。端口转发可以分为三种,正向端口转发,反向端口转发和动态端口转发。为了演示这三种端口转发方式的用法我们先假设存在有2个网域Office和Prod,在…

    Linux干货 2015-02-09
  • 服务器故障的解决方法以及基本脚本的编写

    1,当开机时一直重新启动怎么办? 在开机时就如字符界面后按下a键然后进入单用户模式,通过设置 [root@CentOS6 boot]# vim /etc/inittab 这个文件,将里面的开机启动项改为多用户模式就可。 # id:3:initdefault: “/etc/inittab” 26L, 884C 讲id这项设置完成后重新启动就好。 2,忘记roo…

    Linux干货 2017-05-15
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@centos7 ~]# who|cut -d' ' -f1|sort -u fedora gentoo root 2、取出最后登录到当前系统的用户的相关信息。 [root@ce…

    Linux干货 2017-01-16
  • Linux用户及用户组管理

    马哥网络教育22期第三周练习 Linux用户及用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的…

    Linux干货 2016-09-19
  • shell 脚本之数组 和 yum 【下】

    shell 脚本之数组 和 yum 【下】 数组   变量:存储单个元素的内存空间   数组:存储多个元素的连续的内存空间,相当于多个变量的 集合。   数组名和索引        索引:编号从0开始,属于数值索引        注意:索引可支…

    Linux干货 2016-08-24