第六周作业补充-vim简介及其使用方法详细介绍

vim.png

What

      Vim是由Vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在Unix& Unix Like操作系统中被广泛使用。和Emacs并列成为Unix& Unix Like操作系统中最受欢迎的文本编辑器

When& Who

      Vim的第一个版本由布莱姆·米勒在1991年发布

Vim的具体操作介绍

      Vim是模式化编辑器,其基本模式为:

            编辑模式,也叫命令模式

            输入模式

            末行模式:内置有命令行接口

      打开文件:

            # vim [OPTION] [file….]:如果文件不存在,创建文件

                  +#:打开文件后,直接让光标处于第#行的行瘦

                  /PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

 

      模式转换:

            编辑模式 à 输入模式

                  i, Insert:在光标所在处开始输入

                  a, append:在光标所在处后面开始输入

                  o:在光标所在处下方打开新的一行开始输入

                  I:在光标所在处行首开始输入

                  A:在光标所在处行尾开始输入

                  O:在光标所在处的上方打开一个新行

            输入模式 à 编辑模式

                  键盘上的”Esc”键

 

            编辑模式 à 末行模式

                  键盘上的“:”键

            末行模式 à 编辑模式

                  键盘上的”Esc”键

      如何关闭文件:

            ZZ 保存并退出

            :q 退出

            :!q 强制退出,不保存此前编辑的内容

            :wq 保存此前编辑的内容并退出

            :x 保存并退出

            :w /pat/to/somefile,将当前文件另存到指定路径    

 

      光标跳转:

            k键:上

            j键:下

            h键:左

            l键:右    

            #[k|j|h|l]:跳转有#自定个数的字符或者行数

 

      单词间跳转:

            w:下一个单词的词首

            e:当前或下一个单词的词尾

            b:当前或前一个单词的词首

            #[w|e|b]:跳转由#指定的单词个数

 

      行首行尾跳转:

            0:跳转至行首

            $:跳转至行首

            ^:跳转至行首第一个非空白字符

      行间跳转:

            #G:跳转至由#指定的行

            1G,gg:跳转至文件的第一行

            G:跳转至文件的最后一行

 

      句间跳转:

            ):下一句

            (:前一句

      段间跳转:

            }:下一段落

            {:前一段落

      翻屏:

            Ctrl+f:向文件尾部翻一屏

            Ctrl+b:向文件首部翻一屏

            Ctrl+d:向文件尾部翻半屏

            Ctrl+u:向文件首部翻半屏

            Enter:按行向后翻屏

 

Vim的编辑明令

      字符编辑:

            x:删除光标所在处的字符

            #x:删除以光标所在处为启始位置的#个字符

            xp:交换光标所在处字符与后面字符的位置

 

      替换命令:

            r:替换光标所在处的字符

      删除命令:

            d$:删除光标所在处至行尾的所有字符

            d^:删除光标所在处至行首非空白字符的内容

            dw:删除光标所在处字符至下一个单词词首的所有字符

            de:删除当前单词光标所在处字符至词尾内容或至下一个但单词词尾的所有字符

            db:删除光标所在处至前一个单词的词首字符的所有内容

            dd:删除一行

            #[d$|d^|dw|dw|de|db|dd]:删除由#为数字指定的命令内容

 

      粘贴命令:

            p:缓冲区的内容如果为整行,则粘贴在当前光标所在处的下方;否则,粘贴在光标所在处的后方

            P:缓冲区的内容如果为整行,则粘贴在当前光标所在处的上方;否则,粘贴在光标所在处的前方

 

      复制命令(yank, y)

            y:复制,工作行为类似于d命令

            y$:复制光标所在处至行尾的所有字符

            y^:复制光标所在处至行首非空白字符的所有内容

            yw:复制光标当前位置到下一个单词词首的所有内容

            ye:复制光标当前位置到下一个单词词尾的所有内容

            yb:复制光标当前位置到当前单词词首的所有内容

            yy:复制整行内容

            #[y$|y^|yw|ye|yb|yy]:复制由#指定为数字的命令的内容

      改变命令(change,c)

            使用c命令的同时,从 编辑模式 à输入模式,实现删除功能并转为输入模式

            c$:删除光标所在处至行尾的所有字符内容并转为输入模式

            c^:删除光标所在处至行首非空白字符的所有内容并转为输入模式

            cw:删除光标所在处至下一个单词词首的内容并转入输入模式

            ce:删除光标所在处至当前或下一个单词词尾的字符并转入输入模式

            cb:删除光标所在处至当前或前一个单词词首的字符并转入输入模式

            c0:删除光标所在处至行首的所有字符并转入输入模式

            cc:删除整行并转入输入模式

            #[c$|c^|cw|ce|cb|c0|cc|]:删除由#指定的命令内容

其他编辑操作:

            可视化模式:

                  v:按字符选定

                  V:按行选定

                  结合编辑命令:d,c,y

            撤销(undo, u)命令:

                  u:撤销此前的操作

                        #u:撤销此前的#次操作

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

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

末行命令模式

      地址界定:

      :start_pos[,end_pos]

            #:特定的第#行,例如”:5”:指定第5行内容

            .:当前行

            $:最后一行

            #,#:指定行范围。左边#为起始行,右边#为结束行

            #,+#:指定航范围。左边#为起始行绝对编号,右边+#为相对于左边#起始行的偏移量。例如5,+7:范围是从第五行到第12行的内容

                  .,$-1:当前行到倒数第二行

                  1,$:第一行到最后一行

            %:全文

            /PATTERN/:从光标所在处起始的文件向文件尾部查找第一次被模式匹配到的行

                  例如:/first/,$:查找光标所在处到行尾第一次被first匹配到的行

            /pattern1/,/pattern2/:从光标所在处起始第一次被pattern1匹配到的行,至第一次被pattern2匹配到的行之间的所有的行

            可结合编辑命令d,c,y,p一同实现编辑命令

            w /path/to/somefile:将范围内的文本保存至指定的文件中

            r /path/from/somefile:将指定文件中的文本读取至指定位置

 

      查找

            /PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配的所有字符串

            ?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配的所有字符串

                  n:查看下一个,与命令方向相同

                  N:查找上一个,与命令方向相反

      查找并替换

            s:末行模式的命令

            使用格式

                  s/要查找的内容/要替换的内容/修饰符

                        要查找的内容:可以使用正则表达式

                        要替换的内容:不可以所以用正则表达式,但可以引用

                 

                  修饰符:

                        i:忽略大小写

                        g:全局替换,意味着一行中如果匹配到多次,则均替换

                  可把分隔符替换为其他:

                        s@@@

                        s###

vim的多文件功能

      打开多个文件:

            vim FILE1 FILE2 FILE3….

                  文件间的切换:

                        :next 下一个文件

                        :prev 上一个文件

                        :first 第一个文件

                        :last 最后一个文件

                  退出所有的文件:

                        :wqall 保存所有文件并退出

                        :wall 保存所有文件

                        :qall 退出所有文件

 

      多窗口:

            -o:水平分隔

            -O:垂直分隔

            在窗口间进行切换:Ctrl+w, ARROW

            注意:单个文件也可以分隔为多个窗口进行查看

                  Ctrl+w,s:水平分隔窗口

                  Ctrl+w,v:垂直分隔窗口

 

定制vim的工作特性:

      注意:在末行模式下的设定,仅对当前vim进程有效

      如果要永久有效,需要更改配置文件:

            全局:/etc/vimrc

            个人:~/.vimrc

      行号:

            显示行号:set number,简写:set nu

            取消行号显示:set nomber,简写:setnonu

      括号匹配高亮

            匹配:set showmatch, set sm

            取消:set nosm

      自动缩进

            启用:set ai

            取消:set noai

      高亮搜索

            启用:set hlsearch

            禁用:set nohlsearch

      语法高亮          

            启用:syntax on

            禁用:syntax off

      忽略字符大小写:

            启用:set ic

            禁用:set noic

      获取帮助:

            :help

            :help subject

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

(0)
上一篇 2016-09-26 07:43
下一篇 2016-09-26 07:43

相关推荐

  • find命令基本应用

       简单的find命令查找 Find +路径+条件(支持文件通配)+找到后执行的操作 条件: 可根据文件类型查找:-type   f为普通文件 d为目录文件 l为链接文件(常用) 可根据属主和属组查找:-uid  -gid 可根据时间戳来查找:alime(查看时间)ctime(文件属性更改时间)m…

    Linux干货 2017-04-11
  • 任务计划配置

             任务计划:         linux任务计划,周期任务执行         未来的某个时间点执行一次任务:at,batc…

    Linux干货 2016-09-12
  • 第一周作业-02

    Linux的命令格式 命令的语法通用格式:    ~]# COMMAND OPTIONS ARGUMENTS        COMMAND: 发起一命令:请求内核将某个二进制程序运行为一个进程;            程序 –&…

    Linux干货 2016-09-19
  • linux网络属性命令操作介绍(第十一天)

            linux网络属性常用命令有ifconfig\route\ip命令,centos7 的还是nmcli\nmtui。     网络属性的三大文件:修改DNS的文件/etc/resolv.conf  、修改网卡IP地址/etc/sysconfig/…

    Linux干货 2016-06-01
  • VIM入门及进阶

    什么是VIM?     VIM类似于Vi编辑器, 它是一个功能强大、可高度定制的文本编辑器, 是一个纯粹的自由软件。注意:vi和vim不完全相同 为什么要使用VIM?     相信大多数人接触Linux时使用的第一个文本编辑器都不是VIM,很多人看到VIM复杂的命令操作就望而祛步…

    系统运维 2016-03-04
  • 曲径通幽处,禅房花木深—-bash禅意脚本

    编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 数据存储:变量、数组 表达式: a + b 语句:if shell脚本基础 s…

    Linux干货 2016-08-12