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
下一篇 2016-08-10

相关推荐

  • 苦上半年时间

    这是一种享受

    Linux干货 2016-08-08
  • 进程的简单概念

    什么是进程?进程是载入内存的一个指令集合。 PID代表进程号, centos7之前的第一个进程都为inet。centos7的第一个位systemd 进程优先级分为系统优先级和实时优先级,系统优先级0到139表示,值越大优先级越低。centos6用0到98表示值越大优先级越低 实时优先级用99到0表示,值越大优先级越高。 进程类型:守护进程和前台进程。(俩者可…

    Linux干货 2017-05-08
  • N26 第六周作业

    总结vim编辑器的使用 Vim 模式    Vim 有六种基本模式    Normal mode                 Visual mode&nbs…

    Linux干货 2017-02-01
  • 一键获取MySQL账户及相关的权限

    有时候,运维同学可能在做grant授权时候,给的用户权限太高了,有风险。因此,我们接手服务器后有必要检查一遍用户权限。 #!/bin/bash# 一键获取MySQL账户及相关的权限 user=’root’ password=’123456′ MYSQL_CMD=’/usr/local/mysql/b…

    Linux干货 2017-05-07
  • 马哥教育网络班N22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1 tune2…

    Linux干货 2016-10-24
  • 快速搭建SVN服务器

    一、背景介绍 svn服务器是一款上传代码的工具(貌似这么说不怎么严谨,但是在日常工作中基本上是这么用的),今天一个小伙伴折腾了一天也没有搭建好这个svn服务器。各种问题,其实搭建SVN服务器最重要的就是三个配置文件(svnserver.conf、 passwd 、authz)。出了问题的话十有八九是这三个配置文件的问题。最后,我自己搭建了一个,测试成功。于是…

    Linux干货 2016-12-11