linux文本编辑器,vim编辑器

定义:文本(纯文本信息,必须是不加任何修饰的文本信息)编辑器

文本编辑器种类:

                行文本编辑器 :sed

                全屏文本编辑器:nano 、vim

VI全称:visual interface ,vim为vi的增强版,为vi improve

vim(vi Improve)用法

              vim 选项 文件:打开的文件不存在,自动创建新文件,存在直接打开文件

vim文本编辑器三种模式(千万弄清三种模式哦,不要混乱):

                  命令模式:

                  输入模式:

                 扩展编辑模式:

                            系统内置的命令行接口                   

三种模式之间的转换:

        命令模式:默认模式

命令模式——>文输入模式

                       i:insert ,光标所在处向前输入

                       I:光标所在行的行首输入

                       a:append,光标所在处的后方转换为输入

                       A:光标所在行的行尾输入

                       o:在光标所在处下方直接打开一行,光标处于行首

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

                    

         从输入模式|扩展模式———>命令模式:按ESC模式

         从命令模式———>扩展模式:按:建

         小白们注意啦!:不能从插入模式直接到扩展命令模式

        文件锁定和解锁:ctrl+s和ctrl+q

  vim 打开文档

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

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

              +:将光标自动处于文件行尾

              -m:打开的文件只有读权限,不能进行编辑保存

              -b:二进制方式打开文件

              -d:打开多个文件

       六种模式举例:

              一、让光标处于第五行:

               1.png

          

             二、 将光标处于匹配模式的行:

              1.png

              linux文本编辑器,vim编辑器

               三、自动将光标处于行尾     

             linux文本编辑器,vim编辑器

             linux文本编辑器,vim编辑器

             四、打开的文件只有读权限,对其进行编辑将不能进行保存

              linux文本编辑器,vim编辑器

              linux文本编辑器,vim编辑器

              五、以二进制方式打开文件

             9.png

            六、打开多个文件(会标注两个文件不同的地方)

            linux文本编辑器,vim编辑器

           linux文本编辑器,vim编辑器

  vim关闭文档:

            扩展模式下:

                 :q退出,文件未做过任何操作

                 :q!不保存退出

                 :wq保存退出

                :x保存退出

                :w/路径   将文件保存到另外文件中

           命令模式下:

                 输入ZZ(两个大Z):保存退出

                 输入ZQ:不保存退出

vim扩展操作:

          w:将范围内的文本保存到指定的文件中

          r路径:将指定的文件中的文本读出并插入到指定位置

          ! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式

          r!命令:将执行命令的结果写入文件中

   四种用法实例

         一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.

              注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖

           12.png

           linux文本编辑器,vim编辑器   

       二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行

            15.png

           14.png

      三、当正在编辑文件时,突然需要查看ip地址怎么办:

             15.png

      四:将/root下所有的文件列表添加到/testdir/f1 文件中

            打开f1在扩展模式下输入r!ls /root

            linux文本编辑器,vim编辑器

           linux文本编辑器,vim编辑器

命令模式下的光标跳转:

     字符间跳转

         h:左

         l:右

         j: 下

         k:上

        先输入数字n,在输入(h| l | j |k):实现光标向(左|右|下|上)跳转n个字符

  单词间跳转

       w:跳到下一个单词的词首

       b:当前或前一个单词的词首(当光标位于当前单词的词尾时会跳到当前单词的词首)

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

       先输入数字n,在输入(w| b| e):实现光标向(后|前|后)跳转n个单词

命令模式下翻屏:

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

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

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

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

          enter:一行一行的后翻

命令模式操作

  字符编辑:

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

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

        xp:交换光标坐在处的字符,以及后面的字符的位置

        ~:大小写转换

   删除操作:

     d:删除命令,可结合光标跳转字符实现范围删除;

         d$:删除光标处到行尾的内容

         d^:删除光标的内容一直到行首

         dw:以单词为单位向后删除

         de:以单词为单位向后删除

         db:以单词为单位向前删除

      输入数字n,在输入(dw|de|db),分别为(向后|向后|向前)删除n个单词

         dd:删除整行

        3dd:删除光标所在的行起始的共3行;删除的内容会保留到缓冲区中,刚刚删除的内容可以黏贴

      黏贴命令:

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

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

    复制命令(yank):

          y:复制,工作行为相似与d命令

          yy复制整行

  改变命令(change ,c);

       与d模式相同,但是删除完之后将编辑模式转换成输入模式

       cc:删除光标所在处的行并转化成输入模式

命令模式操作文本:

       编辑模式下输入数字n—>i |a|o|I|A|O—>输入内容—>enter:会将输入的内容重复n次添加到文件中

       开始位置 —>命令(y[复制],d[删除],gU[大写],gu[变小写])—>结束位置

  

撤销操作(undo u

 u:撤销 此前操作

 #u:

 撤销此前的撤销:ctrl

重复执行 前一个编辑操作 .n.重复前面操作n次)

 

扩展模式

vim扩展操作:

w:将范围内的文本保存到指定的文件中

r路径:将指定的文件中的文本读出并插入到指定位置

! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式

r!命令:将执行命令的结果写入文件中

四种用法实例

一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.

注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖

linux文本编辑器,vim编辑器

linux文本编辑器,vim编辑器

linux文本编辑器,vim编辑器

二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行

linux文本编辑器,vim编辑器

三、当正在编辑文件时,突然需要查看ip地址怎么办:

linux文本编辑器,vim编辑器

四:将/root下所有的文件列表添加到/testdir/f1 文件中

打开f1在扩展模式下输入r!ls /root

linux文本编辑器,vim编辑器

地址界定:

:start_pos,end_pos

n:特定的第n行

n,+m:指定行范围,从n行,到n+m行

.:代表当前行

$:表示最后一行

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

/pattern/从光标所在位置第一次被模式所匹配到的行

/pat1/,/pat2/

从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

n,/pat/

/pat/,$

使用方式:后跟一个编辑命令dy

w  file: 将范围内的行另存至指定文件中

r  file:在指定位置插入指定文件中的所有内容

 

查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

 

举例:查找/etc/fstab文件中含有UUID的行

     linux文本编辑器,vim编辑器linux文本编辑器,vim编辑器

扩展模式下查找替换:

         三种格式:s/查找内容/替换内容/修饰符、s@@@s###

     查找内容:可以使用pattern模式

     替换内容:不可以是用Pattern ,但是可以使用&\1,&引用前面查找的所有内容,\1后向引用。

         修饰符:i忽略大小写,g全局替换,默认情况下只替换行的第一个,c替换前出现提示信息

 

举例:

 

1、 复制/etc/profile/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符:

linux文本编辑器,vim编辑器

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#

  linux文本编辑器,vim编辑器

可视化模块

         v:面向字符,选中可以以字符为单位

V:面向行,也就是选中以行为单位

多文件模式

vim file1 file2 file3 …..

:next 下一个

: prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

: qall 退出所有

: wqall

多窗口

多文件分割

vim – o| – O FILE1 FILE2 …

– o: 水平分割

– O: 垂直分割

在窗口间切换: Ctrl+w, 再按箭头键(arrow)进行窗口切换

单文件窗口分割:

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

ctrl+w,q:取消相邻窗口

ctrl+w,o:取消全部窗口

wqall 退出

定制vim

配置文件

全局: /etc/vimrc

个人: ~/. vimrc (家目录下无此文件需要自己填加)

扩展模式:当前vim进程有效

 (1) 行号

显示: set number, 简写为set nu

取消显示: set nonumber, 简写为set nonu

 (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 (vim only)

:set wrapmargin=15

 

vim帮助手册:

man help

输入:vimtutor命令

扩展模式下输入:help

:help option- list

 :set or :set all

                  

                                   

                                       

                                       

                                 

                                          

                                          

                                         

                                          

                                 

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

(0)
wangnannanwangnannan
上一篇 2016-08-10 13:58
下一篇 2016-08-10 13:58

相关推荐

  • Linux的用户,组及文件权限管理

    Linux用户与组的创建,删除,属性修改,文件权限管理

    Linux干货 2018-02-24
  • Linux中实现java和c语言打印Hello world小程序

    1、C语言实现 先确认linux系统中是否gcc编译器,可以通过rpm -q gcc查询系统已经安装gcc软件包,如果没有安装可以到系统自带光盘里面安装相应的安装包软件。 使用rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm安装编译器,安装后再查询确认已经成功 环境准备好了,我们就可以编写C语言的代码了,我们可以使用vim编辑器编写第一…

    Linux干货 2016-08-26
  • 马哥教育网络班22期+第5周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# awk -F: '{print $1,$7}' /etc/passwd| egrep "^\<(root|fedora|user…

    Linux干货 2016-09-15
  • LVS集群讲解

    目录 LVS介绍 LVS集群类型 LVS调度算法 ipvsadm/ipvs LVS-NAT模型演练 LVS-DR模型演练 LVS定义多集群 FWM实现多集群统一调度 LVS持久连接  每端口持久 每FWM持久 每客户端持久 LVS介绍 一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议…

    Linux干货 2016-11-07
  • shell通配符与正则表达式

        通配符是系统level的 而正则表达式需要相关工具的支持: egrep, awk, vi, perl。在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。通配符多用在文件名上,比如查找find,ls,cp,等等。 1.通配符       (1)…

    Linux干货 2016-02-28
  • 域名解析服务(DNS)之bind

    DNS简介 DNS是Domain Name System的简称,DNS的主要作用就是讲主机名解析成ip地址的过程,因为在计算机网络当中是通过ip地址来进行主机间通信的,ipv4的地址是32位,人类记忆起来十分困难,更何况ipv6的128位,所以我们需要一个简单容易记忆的字符串来替换ip地址,当我们访问www.baidu.com它能知道访问的是某个ip地址的服…

    Linux干货 2016-10-09