zoukankan      html  css  js  c++  java
  • Linux06 vim文本编辑器的使用

    vim编辑器

    vi:Visual Interface
    vim:Visual Interface # vim是vi的增强版    
    
    编辑模式(命令模式),默认处于编辑模式
    输入模式:输入文件内容,输入的内容会被保存下来。
    末行模式:在末行模式下,可以输入编辑模式以外的文件管理类的命令,末行模式所提供的命令支持能力比编辑模式更多。要想进入末行模式,必须从输入模式转到编辑模式(按ESC),之后输入 :  
    
    
    输入模式 <------>编辑模式<------>末行模式
    
    
    模式转换:
    编辑-->输入:
    	i:在当前光标所在字符的前面,转为输入模式;
    	a:在当前光标所在字符的后面,转为输入模式;
    	o:在当前光标所在行的下方,新建一行,并转为输入模式;
    	I:在当前光标所在行的行首,转为输入模式;
    	A:在当前光标所在行的行尾,转为输入模式; 
    	O:在当前光标所在行的上方,新建一行,并转为输入模式   
    输入-->末行: 按下ESC,输入 :
        10d  # 删除第10行
    	10,20d  # 删除10到20行
    	set nu # 显示行号
    	
    	在末行模式下,使用  "! 命令",还可以在在操作当前文件的同时执行其他命令:
        	:! cat /etc/passwd  # 执行之后可以按ENTER键返回
    
    末行-->编辑:按ESC
    
    一、打开文件    
    # vim /path/to/somefile    
    vim +number 文件名  # 表示打开此文件,光标并停留在该文件的第number行的行首
    vim + 文件名  # 表示打开该文件时,光标在该文件的底部
    vim +/PARTTERN 文件名 # 表示打开文件,定位至第一次被PARTTERN匹配到的行的行首
    
    二、关闭文件:
    1.末行模式关闭文件
    	:q # 仅退出,并未保存文件
    	:wq # 保存并退出
    	:q! # 不保存并退出
    	:w # 保存
    	:w! # 强行保存
    	:x # wq的简写,也能实现保存并退出
    2.编辑模式下退出:
    	ZZ(shift+zz) # 保存并退出,无须转到末行模式退出
    	Ctrl+z
    
    三、移动光标
    1.逐字符移动:(编辑模式)
        h:  左
        l:  右
        j:  下
        k:  上
    	5h:  表示一次向左移动5个字符
    	5l:  表示一次向右移动5个字符
    	5j:  表示一次向下移动5行
    	5k:  表示一次向上移动5行
    2.以单词尾单位移动:(编辑模式)
        w # 表示移到下一个单词的词首
        e # 跳至当前或下一个单词的词尾
        b # 跳至当前或前一个单词的词首
        这三个字母也支持其前加数字,表示一次跳多少个单词:
        5w  5e  5b
    
    3.行内跳转:(编辑模式)
        0: 表示跳到行首(绝对行首)
        ^: 表示跳到行首的第一行个非空白字符(shift+6)
        $: 表示跳到行尾(绝对行尾)
    4.行间跳转:(编辑模式)
    	#G:跳转至第#行
    	G:最后一行
    	
    	末行模式下,直接给出行号即可
    
    四、翻屏
    在编辑模式下:
    	Ctrl+f:向下翻一屏
    	Ctrl+b:向上翻一屏
    	Ctrl+d:向下翻半屏
    	Ctrl+u:向上翻半屏
    
    五、删除单个字符(编辑模式)
    	x:删除光标所在处的单个字符
    	#x:删除光标所在处及向后的共#个字符
    
    六、删除命令:d
    	按下d,表示要删除内容了,至于是从当前光标处向上还是向下删除,删除多少行,还需要指定:
    		d0:表示从当前光标处删到行首  
    		d$:从当前光标处删除到行尾
    		#d,#dw,#db
    
    	dd:删除当前光标所在行
    	#dd: 删除包括当前光标所在行之内的#行
    	
    	末行模式下:
    		startNumber,EndNumberd
    		.:  表示当前行
    		$:最后一行
    		+#:向下的#行
    		.,$-3d  表示从当前行删到倒数第2行
    		比如:
    			3,8d  # 从第3行删到第8行
    
    七、粘贴命令 p
    
    vim删除的内容会被保存到缓冲区,最后一次删除的内容可以被粘贴到别的地方。
    
    P: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的的后面;
    p: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的的前面;
    
    八、复制命令 y
    	用法同d命令
    	末行模式下:
    		1,100y  # 复制从1到100行
    	编辑模式下:	
    		y$:复制当前行光标处到行尾的内容
    		y0:复制当前行光标处到行首的内容
    		yy:复制当前行内容
    
    九、先删除内容,再转换为输入模式
    	c(change):用法同d命令
    	cc:表示删除当前行内容,并再其下方再创建一行
    	c$: 表示删除光标当前处到行末的内容,并进入到输入模式
    	
    十、替换
    	r6: 表示替换当前光标处的单个字符,此处表示将当前光标处字符替换成6
    	
    十一、撤销编辑操作
    u(undo):可连续撤销此前的n次操作,但只在内存缓冲区保存50次的操作,最多只能撤销50次的操作。
    #u: 直接撤销最近#次编辑操作
    
    撤销最近一次的撤销操作:Ctrl+r
    
    十二、重复前一次编辑操作
    	.
    
    十三、可视化模式
    v:按字符选取
    V:按矩形块选取(一次选中一行)
    
    十四、查找 (末行模式)
    /PARTTERN  # 输入完后按ENTER键,会将匹配到的内容,高亮显示,这是再敲 n 键,会逐个向下显示,敲 N 键会逐个向上显示;
    ?PARTTERN  当前光标往首部查找
    
    十五、查找并替换(末行模式)
    g:全局替换
    i:忽略大小写
    :.,$-1s/c/C/g  # 表示将当前行到倒数第2行的c替换成C   和sed命令相似
    
    1,$: 表示从第1行到最后一行,表示全文查找,可以使用 % 取代 1,$
    %: 表示全文
    
    十六、使用vim编辑多个文件
    vim FILE1 FILE2 FILE3
    :next 切换到下一个文件
    :prev 切换到前一个文件
    :last 表示切换到最后一个文件
    :first 切换至第一个文件
    
    退出
    :qa   全部退出
    
    十七、分屏显示一个文件
    Ctrl+w,s  水平拆分窗口  先按Ctrl+w松开,再按s
    Ctrl+w ,向下箭头  #进入拆分的下一个窗口
    要想退出:输入q退出当前窗口,输入 qa 退出所有窗口
    
    Ctrl+w,v   垂直拆分窗口  先按Ctrl+w松开,再按v
    Ctrl+w ,向右箭头  # 切换到另一个拆分窗口
    要想退出:输入q退出当前窗口,输入 qa 退出所有窗口
    
    
    十八、分窗口显示多个文件
    vim -o FILE1 FILE2  # 分窗口水平显示多个文件
    vim -O ILE1 FILE2   # 分窗口垂直显示多个文件
    
    十九、将当前文件中部分内容另存为另外一个文件
    末行模式下使用w命令
    :w
    :ADDR1,ADDR2w /path/to/somewhere
    
    二十、将另外一个文件中的内容填充再当前文件中光标所在行下方位置
    :r /path/to/flie
    
    二十一、跟shell交互
    末行模式下:
    	:!COMMAND   # 不用退出文件的情况下执行其他命令,执行完,再次按ENTER键返回来
    
    二十二、高级话题
    1.显示或取消显示行号
    :set number
    :set nu  显示行号
    :set nonu 取消行号
    
    
    2.显示忽略或区分字符大小写
    :set ignorecase
    :set ic
    
    :set noignorecase
    :set noic  # 取消忽略大小写
    3.设定自动缩进
    :set autoindent  # 写脚本时自动缩进比较方便
    :set ai
    :set noai  # 取消自动缩进
    
    4.查找到的文本高亮显示或取消
    :set hisearch
    :set nohisearch  # 取消搜索到的文本高亮显示
    
    5.语法高亮
    :syntax on # 开启语法高亮
    :syntax off  # 关闭语法高亮
    
    二十三、vim配置文件
    /etc/vimrc  # 全局配置文件
    ~/.vim
    
    想让某个文件在使用vim打开时自动显示行号:
    	在/etc/vimrc文件中,随便找个位置,添加一行:
    		set nu  # 在这个配置文件中的设置,对所有用户都生效
    
    如果仅想对某个用户设置行号,可以修改此用户家目录下的 .vimrc文件,此文件如果不存在,可以自己创建一个:
    	set nu
    
    vimtutor: 此命令是关于vim的一个使用手册
    

    练习:

    将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum
    
    %s/ftp://instructor.example.com/pub/http://172.16.0.1/yum/gi
    
    %s@ftp://instructor.example.com/pub@http://172.16.0.1/yum@g
    
  • 相关阅读:
    java国际化---native2ascii.exe 的使用方法
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十四)谈谈写博客的原因和项目优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十二)数据层优化-explain关键字及慢sql优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14692187.html
Copyright © 2011-2022 走看看