关于VIM编辑器

vim编辑器
             vi 是一种文本编辑器,所谓文本数据是基于字符编码的文件,常见的编码有ASCII编码,

UNICODE编码等

文本编辑种类分为:
                行编辑器:所谓航编辑器就是至一行一行来编辑处理的工具,比如sed
                全屏编辑器:编辑空间占据整个屏幕,比如 nano ,vi
                vim 就相当于vi的增强版,vim是模式化的编辑             
vim 在工作过程中有三种模式:
                1命令模式(默认状态)也叫做编辑模式 :可以进行移动光标, 剪切/粘贴复制文本内容
                2输入模式(插入编辑)在文本文件当中进行输入内容;
                3扩展命令模式(末行模式) vim内置的命令行接口 ,执行vim 的内置命令 ;

输入 保存退出等命令
                Esc 键 退出当前所在模式,可以从输入模式转换到编辑模式
               
vim 的使用:
    vim [选项] file
    +#  打开文件后,直接让光标处于第#行的行首

例如 ~]# vim +5 f1 命令 打开进入编辑模式光标处于第5行的行首

+/pattern (正则表达式) 打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

例如 ~]# vim +/root f  匹配第一个root匹配到的字符的行的行首

vim + file    直接打开file,光标在最后一行

例如  ~]# vim + f1
    vim -b file   二进制方式打开文件 ,处理二进制文本的时候用,

例如 ~]# vim -b /bin/cat   后面跟的是二进制程序
    vim -d file1 file2 比较多个文件

例如 ~]# vim -d f1 f2  比较两个文件内容,不一样的地方会显示出来      
    vim -m file   只读方式打开文件

例如 ~]# vim -m f1   如果对此文本进行修改保存,会提示不能用,打开方式为只读            
    vim -e file   或者使用ex file  直接进入ex模式    扩展命令模式(ex) 这是文本命令执行模式

在命令终端 切换到此模式
   
    注:如果该file存在,file被打开并显示其中内容; 如果该file不存在,

当编辑后第一次存盘时创建该file
               
模式转换:
    1,ESC键可以从插入编辑模式到命令模式
    2, 从命令模式到 插入编辑 可以使用以下命令
      i : insert,在光标所在处进行输入内容编辑
      I :在当前所在光标所在行的行首输入内容编辑
      a : append,在光标所在的字符后面输入内容编辑               
      A : 在当前光标所在行的行尾输入内容编辑         
      o : 在当前光标所在行的下方打开一个新行输入内容编辑         
      O :在当钱光标所在行的上方打开一个新行输入内容编辑         
    3,插入编辑模式 > 到命令模式   可以使用ESC
    4  命令模式 > 扩展模式(末行模式)  直接输入冒号:  即可在窗口的最下方显示冒号,文本内的命令行
    5  扩展模式 > 命令模式   ESC  
    6  插入编辑模式 > 命令模式 > 扩展模式    插入模式不能直接转换到扩展模式
    锁定和解锁:
        Ctrl+s  锁定编辑界面不能进行其它操作不能ESC,输出界面不给任何反应       
        Ctrl+q  解锁编辑界面可以看到锁定时,对键盘输入的某些字符

关闭和退出文本:           
       扩展模式:(末行模式)        
       按‘:’进如文本内的命令行扩展模式;处于底部的屏幕最左侧
                :q   退出
                :q!  强制退出     不存盘退出,即使更改都将丢失
                :wq  保存退出     写入内容并保存退出
                :wq! 强制保存退出 
                :x   保存退出
                :w   写(存)磁盘文件      w /root f2  可以将文件内容写入另一个文件中
                :r   可以读取别的文件到当前光标所在处 例如 在扩展模式下操作 :r /etc/issue  
                :!   command 可以不用退出当前处理的文本,可进行别的命令操作    例如 :!ifconfig   查看过后按回车又回到当前处理的文本中,非常方便快捷
                :r!  command 可以使用r!将命令执行结果读取到正在处理的文本当中  例如 :r!ifconfig  将执行结果,读取添加到当前文本所在光标的下面
       命令模式:
               保存退出的快捷键:
                ZZ   保存退出
                ZQ   不保存退出

命令模式光标跳转:
        字符之间移动跳转:
                h   左 ←
                l   右 →
                j   下 ↓
                k   上 ↑
                #h,l,j,k #代表数字        
                还可以自定义指定跳转指定的个数的行;比如我想从当前光标往右移动10个  用键盘输入10l 
                注意,这时候的输入是不显示出来了,把字符输入成功后观察光标是否移动,其它的我就不举例了
         单词之间移动跳转:
                w   下一个单词的词首
                e   当前或下一个单词的词尾
                b   当前或前一个单词的词首
                #w,e,b  #代表数字   
                单词之间也支持自定义跳转移动;比如我想从当前所在光标跳转到距离有10个单词的词首。用键盘输入10w 此时光标就会移动到此
         当前页面跳转:      
                H   页首
                M   页中间的行
                L   页底
         行首行尾跳转:
                ^    跳转至行首的第一个非空白字符  
                0    跳转至绝对行首   包括空白符
                $    跳转至绝对行尾
         行之间移动跳转:
                G    最后一行
                #G   #为数字比如我输入10#  这时候光标会在文本的第10行处; 在扩展模式下可以:10 这样也行,一个概念       
                1G   跳转光标到第一行所在 ,跟小写gg 一样使用
               
         句子间移动:     
                (    上一句
                 )   下一句
         段落之间移动:
                {    上一段
                 }   下一段
         翻屏操作快捷键:
                Ctrl+f   向文件尾部翻一屏       
                Ctrl+b   向文件首部翻一屏
                Ctrl+d   向文件尾部翻半屏
                Ctrl+u   向文件首部翻半屏
命令模式操作:
         字符编辑:
                 x    删除所在光标处的字符        
                 #x   删除所在光标起始的#个字符 #表示数字
                 xp   交换光标所在处的字符以及其后面字符的位置
                 ~    转换大小写内容
         替换命令:
                 r   替换光标所在处的字符  比如按下r键后输入数字5 原先的内容就会被替换掉
                 R   切换到替换的模式   可以直接输入内容将原先的内容给替换掉
         删除命令:
                 d   删除命令,可结合光标跳转字符,实现范围删除 
                 d$  删除到行尾
                 d^  删除到非空行首
                 d0  删除到行首
                 dw  删除下一个单词的词首                      
                 de  删除当前或下一个单词的词尾
                 db  删除当前或前一个单词的词首
                 #command #代表数字  使用举例 10dw 10de ....
                 dd  删除当前光标所在行
                 #dd 多行删除    例如 10dd
                 D   从当前光标位置一直删除到行尾,会留下空行,同等与d$一样的概念
          复制命令:
                 y  复制,整行的复制 ,可以结合光标跳转字符使用,复制跳转范围内的字符       
                 y$ 复制当前所在光标处之后的行内容
                 y0 复制当前所在光标处之前到非空白行首的内容
                 y^ 复制当前所在光标处之间到行首的内容不包括空白行
                 ye 复制当前所在光标处在词首的位置,复制其整个单词;如果光标处在词尾,则复制下一个单词的内容
                 yw 复制当前所在光标处以词首开头的位置复制整个单词内容;如果光标在词尾,则复制单词尾的单个字符内容
                 yb 复制当前所在光标之前的单词
                 yy 复制行内容
                 #yy #为数字  可以复制多行 例如10yy  复制10行内容,可以配合 上面的命令进行操作
          粘贴命令:
                 p  缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
                 p  缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
          修改命令:
                 c 修改后切换到插入模式进行修改
                 c$
                 c^
                 c0
                 cb
                 ce
                 cw
                 #command #为数字,例如 10cb 10ce
                 cc 删除当前行并输入新内容
                 #cc  #为数字, 删出当前光标所在处一下的行, 比如删除当前光标之下的10行   就输入10cc
                 C   删除当前光标到行尾,并且换成插入模式
命令模式撤销更改:
              u    撤销最近的的更改,在此之前的操作
              #u   撤销之间多级的更改  #为数字
              U    撤销光标落在这行后所有此行的更改
              .    重复前一个操作
              n.   重复前一个操作n次
              Cert+r 重做最后一次撤销的更改

扩展模式地址定界:
                 #  表示第几行,例如5表示第5行
                 #,# 表示从左侧#表示行起始,到右侧#表示行结尾      例如 从第1,5行,直接跳转到第1行和第5行                        
                 #+# 从左侧#表示的行起始,加上右侧#表示的行数    两个数字相加 ,例如5+5行
                 .   当前行
                 $   最后一行  还可以 $-5   表示当前行到倒数第5行
                 %   全文,相当于1,$
                 /pat1/,/pat2/  从第一次呗pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
                 #,/pat/      从第#行开始到第一次匹配到第一次匹配到pat为止  例如3,/^r/  第三行开头为r的字符
                 /pat/,$       从第一次匹配到pat到最后一行
                 使用方式:后面可以跟一个编辑命令 比如,c,d,y c进行修改,d进行删除,y进行复制 可以直接附加在地址范围后使用
                 w /dir/file   将范围内的行另存至指定文件中去
                 r file       在指定位置插入指定文件中的所有内容  
扩展模式查找:
            /pat     从当前光标所在出向文件尾部查找
            ?pat     从当前光标所在出向文件首部查找
            n        与命令同方向查找
            N        与命令反方向查找
扩展模式查找并且替换:
            s 在扩展模式下完成查找替换操作
            格式为: s/要查找的内容/替换为的内容/修饰符
            要查找的内容:可使用增则表达式,
            替换为的内容:不能使用模式,仅能使用分组引用比如\1,\2..等后向引用符号,还可以使用&引用前面查找时查找到的整个内容
            修饰符:
                 i  忽略大小写
                 g  全局替换;默认情况下,每一行只替换第一次出现的内容
                 gc 全局替换,每次替换前询问
            查找替换中的分隔符/可替换为其他的字符 例如 [email protected]@@gi #s###gi 等
练习
1 复制/etc/profile 至 /tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符           
~]# cp /etc/profile /tmp/   vim /tmp/profile     扩展模式  :%[email protected]^[[:space:]]\{1,\}@@g

2 复制 /etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号
~]# cp /etc/rc.d/init.d/functions /tmp/      :%[email protected]^[[:space:]]\{1,\}.*@#&@        
           
           
           
   关于vim的寄存器           
有26个命名寄存器和1个无名名寄存器,经常存放不同的剪贴板内容,可以不同会话之间进行共享使用         
这26个命名寄存器分别用26为英文字母表示, 用"寄存器表示,放在数字和命令之间
例如  5"wyy   表示复制5行内容到w寄存器中    "wp  表示将w寄存器内容粘贴
如果未指定的话,将默认使用无命名的寄存器
另外还有10个数字寄存器,用0-9表示,0存放最近复制内容,1存放最近伤处内容,当新的文本变更和删除的时候,1将转存到2,2转存到3,以此类推。
数字寄存器不能在不同会话之间共享。        
           
           
  处理编辑二进制文件
 以二进制方式打开文件
  vim -b 二进制文件
  扩展命令模式下,利用xxd命令转换为可读的十六进制   例如 %!xxd
                  转换回二进制    %!xxd -r         
           
vim 可视化模式
    v   光标走过的字符
    V   光标走过的行        
    Ctrl+v 可视块       
    可以结合编辑命令,d,c,y  还可以结合移动键等          
    突出显示的文字可以被删除,复制,变更,过滤,搜索,替换等操作。          
           
vim 多文件模式
           vim file1 file2 file3
           在扩展模式下输入
           next       下一个
           prev       前一个
           first      第一个
           last       最后一个
           wall       保存所有
           qall       退出所有
           wqall      保存所有     
           
vim 多窗口模式
           多文件分割:
            vim -o file1 file2
            -o     水平分割显示窗口     
            -O     垂直分割显示窗口
            在窗口之间进行切换操作:Ctrl+w ,Arrow
            单文件窗口分割:
            Ctrl+w s     单个文件水平分割
            Ctrl+w v     垂直分割
            Ctrl+w q     取消相邻窗口      
            Ctrl+w o     取消全部窗口
            :wqall       退出
            注意:快捷键使用是不会显示的,按过快捷键后跟字母选项,就能达到效果 
定制vim的工作特性
         配置文件:永久有效
          全局  /etc/vimrc
          个人  ~/.vimrc
         
    扩展模式下窗口属性定义
         set nu   显示行号
         set nonu 取消显示
         set sm   显示括号匹配
         set nosm 取消括号匹配
         set ai    启动自动缩进功能  
         set noai  取消自动缩进功能 
         set hlsearch 显示高亮搜索
         set nohlsearch 取消高亮搜索
         syntax no   启用语法高亮   
         syntax off  取消语法高亮
         set ic    忽略字符的大小写
         set noic   不忽略字符的大小写
         fileformat=unix    启用文件格式
         fileformat=dos     不忽略
         set textwidth=65   设置文本宽度
         set wrapmargin=15  设置文本宽度

练习
1 如何设置tab缩进为4个字符

1、 vim /etc/vimrc
        set ts=4 
  
2 复制/etc/rc.d/init.d/functions 文件至 /tmp目录 ;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log
 cp /etc/rcd/init.d/finctions /tmp/              %[email protected]/sysconfig/[email protected]/var/[email protected]

3 删除/tmp/functions 文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;       
                                                                   :%[email protected]^#[[:space:]]\{1,\}.*@@

时间: 2024-10-11 15:15:20

关于VIM编辑器的相关文章

vim编辑器详解

一.vim简介 vi: Visual Interface,文本编辑器 文本: ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器: nano, vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个Vim编辑器的图形版本 二.常见使用方法: vim [OPTION]- FILE- 文件操作: 打开文件: +#: 打开文件后,直接让光标处于第#行的行首 +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹

vim编辑器讲解

--vim编辑器讲解(vim(vi的升级版),推荐vim) 打开文件(如果该文件不存在,则创建之后,保存,从内存写到硬盘上,不保存,则删除掉该文件) vim filename vim编辑器有3中模式:命令模式,插入模式,尾行模式. 命令模式:刚进入文件的时候开始的状态.u为撤销键 命令模式进入插入模式:可以通过快捷键 i(当前光标位置插入) I(本行的开头) a(当前光标位置之后) A(当前光标所在最后) o O 插入模式返回命令模式:ESC 插入模式:主要用来编辑文本的. 尾行模式:主要用来,

处理文本的工具sed,vim 编辑器的使用   Linux版

处理文本的工具sed Stream EDitor 行编辑器 sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾. 一次处理一行 文件--->内存空间--->屏幕 模式空间 文件--->内存空间--->屏幕 | 保持空间 sed   -n:不输出模式空间内容的自动打印 -e:多点编辑 -f:/PATH/TO/SCRIPT_FIL

学习vi和vim编辑器(16):vim的多窗口功能(1)

vim默认是在一个窗口中编辑所有文件,在文件间移动或者移动到文件的不同部分时只显示一个缓冲区.但vim也提供了多窗口编辑功能,可以简化复合的编辑任务.这篇文章将学习如何在一个运行的vim进程里使用多窗口,包括多窗口编辑工作的初始化与启动,在窗口间移动光标,在显示区中移动窗口等. 启动多窗口编辑: 可以在打开vim时启动多窗口编辑,也可以在编辑会话中分割窗口. 从命令行(shell)启动多窗口: 默认情况下,vim为一个会话只打开一个窗口,即使打开时已经指定多个文件.如果想从命令行中打开多个窗口,

linux中vim编辑器各种常用命令及用法

linux中vim编辑器的常用命令以及用法(注意严格区分大小写以及中英文): vim编辑器有三种模式,分别是:编辑模式,输入模式以及末行模式. 模式转换: 编辑模式>>>输入模式: i:在光标所在字符前面,转为输入模式(即转完后在光标所在字符前输入):                      I:在光标所在行的行首,转为输入模式(即转完后在行首输入,不包括行首空                         白) a:在光标所在字符后,转为输入模式(即转完后在光标所在字符后面输入):

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

如何让vim编辑器永久显示行号

在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在vim命令行模式下输入  :set nu 取消显示:在vim命令行模式下输入:  set nonu 第二种是,永久自动显示:我们修改一个配置文件. 我们输入命令:vim   ~/.vimrc     (vim   /etc/vimrc ) 打开后是一个空文件,我们添加 set nu,保存退出,再次进

vim编辑器的常见使用功能

Vim是一个类似于vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 掌握简单的vim命令可以大大提高我们编辑文档效率,在装有vim编辑器的linux系统终端输入vimtutor,将会打开一份系统自带的vim编辑器的使用说明. 以下总结皆来自该文本内容,博主把小结部分摘取出来,方便平时查阅. 第一讲小结 1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键.         h (左移)       j (下行)       k (上行)   

上古神器--vim编辑器

上古神器,想必大家会联想到xx电视剧,上古神器不就是东皇钟.轩辕剑.盘古斧.炼妖壶.昊天塔.伏羲琴.神农鼎.崆峒印.昆仑镜.女娲石.那是电视剧的上古神器,IT君今天要讲的IT界的上古神器--vim编辑器. 对于一把神器来说,主角往往都是要付出一些努力才能收获到更加强大的力量才行,对于vim这种上古神器,IT君就不多说什么了. 一.vim的基本介绍 1.vim是从vi发展而来的,能实现代码补全.编译及错误跳转等方便的功能. 2.vim有模式之分,分别是一般指令模式.编辑模式和指令列命令模式. 一般