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 13:58
下一篇 2016-08-10 13:59

相关推荐

  • 初探VIM_第六周练习(02)

    引言—什么是Vim? 接触Linux这么久,想必对于一切皆文件的哲学思想已经不陌生了。因此,学习并掌握用一款Linux文本编辑器,对于玩转LInux来说,是很有必要的。 vi编辑器是Unix系统最初的编辑器,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。 在GNU项目将vi编辑器移植到开源世界时,…

    Linux干货 2016-12-18
  • linux哲学思想

    有关运维,在哲学上的思想。 正确的哲学思想在我看来就是公理,就是像1+1=2一样大家都必须得遵守的公理。 当然,所有的公理都是有前提的,而有关linux的哲学思想当然是在linux环境这个大前提下。才是公理。在我看来,公理就是在学习知识之前所要依靠的准则,linux下的一切都在这些准则下。 比如: 一切接文件  linux下所有都是以文件的形式保存…

    2017-07-22
  • tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,循环的特殊用法. select循环菜单,函数function,rpm包查询,yum

    tar  tar -cf 路径+文件名字后续.tar  +路径 创建归档压缩 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解压过程 tar tvf 预览作用 tar xvf 解压文件  tar zcvf /testdir/etc2.tar.gz /etc/ 解压再压缩到指定路径,文件格式 …

    Linux干货 2016-08-21
  • linux文件管理命令及用法

    Linux目录和路径   说到linux的文件管理,就不得不说文件的路径,在linux系统中,路径分为绝对路径和相对路径:绝对路径是从根目录/开始的,相对路径是以 . 或 ..开始的.  .  :表示当前目录; ..  :表示当前目录的上一级目录; –   :表示前一个工作目录; ~ &…

    Linux干货 2016-11-06
  • Linux基础之软件包管理

    一.概述 在redhat系列的发行版中,采用rpm软件包管理器,rpm原名是Red Hat Package Manager,后来当其他发行版也采用这种软件包管理机制以后,重新命名,改为RPM Package Manager,它所能提供的功能是将编译好的应用程序文件打包成一个或几个程序文件,从而使得用户能够方便的安装,升级,卸载软件,而yum则是rpm包管理器…

    Linux干货 2016-11-16
  • Linux Basics-重定向与管道:第一部分

    Linux Basics-重定向与管道:第一部分 概述 本教程将介绍 Linux 中重定向标准 IO 流的基本技术。学习: 什么是重定向与标准 IO 流:标准输入、标准输出和标准错误 各种流和管道的实际应用   前提条件 你应该了解 Linux 基本知识以及拥有一个正常工作的 Linux 系统,在本文说明的实例中,我采用是CentOS 7 内核版本…

    Linux干货 2016-10-29