• vim编辑器详解(week1_day3)--技术流ken


     

    vi编辑器

    作用:编辑文本文件中的内容的工具

    命令历史

    末行模式中,以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。

    启动vim

    在命令行窗口中输入以下命令即可

    vim 直接启动vim

    vim filename 打开vim并创建名为filename的文

    vim的模式

    vi的工作模式

    命令模式:仅仅可以查看内容,但是不能进行修改(默认)

    输入模式:可以对文件中的内容进行修改

    末行模式:此模式可以执行一些命令

     vi打开文件

    vi打开文件

    vi 文件名

    注意:

    1. vi打开文件,如果发现文件是空的,那么说明你所打开的文件是不存在的

    2. 也就是vi既可以打开现有的文件,也可以创建新文件,只是所创建的新文件内容是空白的

    3. vi有增强版本,称之为vim(建议用vim)

    4. vi是用来编辑文本文件的,不能用来打开目录

    情况1:从命令模式到输入模式

    i:在光标所在位置的前插入内容

    I:将光标移到到行首,然后进入输入模式

    a:将光标向后移到一位,然后进行插入模式(输入的内容会在光标原始位置的后一位。

    A:在当前行尾插入

    o:在光标所在行的下面新开一行,然后进入输入模式

    O:在光标所在行的开面新开一行,然后进入输入模式

    命令模式下的常用操作

    第一类操作:复制、移动删除文件内容

    yy:复制光标所在的行

    nyy:复制光标所在的行开始向下的N行

    dd:剪切光标所在的行

    ndd:剪切光标所在的行开始向下的N行

    p(小):粘贴到光标所在行的下面

    P(大):粘贴到光标所在行的上面

    D:删除光标所在位置到行尾的内容

    dG:删除光标所在的行到末尾全部的行

    第二类操作:撤销和重复执行的相关操作

    u:撤销上次所指向的操作(相当于windows中ctrl+z)

    nu:撤销n次操作(n的值最大是50)

    ctrl+r:撤销刚刚所撤销的那个操作(相当于windows中ctrl+y)

    .:重复执行上一次所做的操作

    第三类操作:跳转相关的操作

    nG:跳转到第n行

    G:直接跳转到最后一行

    0:跳转到行首(会认为空格也是内容,此时会跳转到空格的最前面)

    ^:跳转到行首(不认为空格是内容,此时会跳转到第一个非空字符)

    $:跳转到行尾

    ctrl+f:向下翻一屏

    ctrl+b:向上翻一屏

    第四类操作:替换相关操作

    r:替换一个字符(替换完成之后,自动返回到编辑模式)

    R:进入替换模式(要想退出替换模式,按esc)

    第五类操作:查找

    /string:在文件中搜索指定的字符串

    n:正向查找

    N:反向查找

    情况2:从输入模式到命令模式

    esc

    情况3:从编辑模式到末行模式

    进入末行模式的方式:在编辑模式下按shift+:

    末行模式下的常用操作

    第一类命令:行号

    set nu:显示行号

    set nonu:关闭行号

    第二类命令:跳转

    num:直接跳转到第num行

    $:直接跳转到最后一行

    第三类命令:取消匹配到的内容的高亮

    nohl

    第四类命令:替换

    start,end s/原始内容/替换内容/g

    (分隔符不一定是/,只要是三个相同的符号即可)

    注意:

    如果不用g,那么仅仅会替换每行的第一个找到的对象

    如果使用g,那么会将范围内所有找到的对象全部做替换

    例子:将54到56之间的echo替换为bajie

    :54,56 s/echo/bajie/g

    例子:将文件中全部的echo替换为bajie

    :1,$ s/echo/bajie/g

    :% s/echo/bajie/g

    例子:将文件的50-100行行首添加一个#

    :50,100 s/^/#/g

    例子:1-5行首添加空格

    :1,5 s/^/ /g

    例子:将全部行首的空格删除

    :1,$ s/^ //g

    例子:将全部行首的#删除

    :1,$ s/^#//g

    例子:将1-5行中的a删除

    :1,5 s/a//g

    例子:在1-5行的末尾添加一个#

    :1,5 s/$/#/g

    例子:将文件中全部的/替换为+

    :% s@/@+@g

    补充1:

    ^:表示行首

    $:表示行位

    第五类命令:保存和退出

    w:执行保存操作(保存到原始文件中)

    w /path/to/file:实现文件另存为

    q:退出

    !:强制执行操作

    第六类命令:高级操作

    !命令:在vi中直接执行命令

    r /path/to/file:将file中的内容导入到当前文件中

    set tabstop=4:将tab缩进的字符数设置为4个

    set ai:设置自动缩进

    set noai:取消自动缩进

    第七类命令:复制、移动、删除多行的操作

    start,end d:删除多行

    start,end m dest:将多行移动到指定行的下面

    start,end co dest:将多个复制到指定行的下面

    例子:将59到198之间的内容复制到233行的下面

    59,198 co 233

    分屏操作

    vim -o file1 file2:实现水平分屏

    vim -O file1 file2: 实现垂直分屏

    ctrl+w:切换到另一个分屏

    打开文件的小技巧

    vim +num file:打开文件的时候,自动跳转到第num行(加号不可省略)

    vim + file:打开文件的时候,自动跳转到最后一行

    vi的配置文件

    /etc/vimrc:全局配置文件,在这个文件中做的配置,会对所有用户生效

    ~/.vimrc:(默认不存在,需要自己手动创建)用户配置文件,仅仅对当前用户生效

    1. 编辑vi的配置文件,实现可以自动显示行号、缩进4个字符、自动对齐

    # vi ~/.vimrc

    :set nu

    :set ai

    :set tabstop=4

    vi崩溃缓存机制

    用vim编辑一个文件的是,如果文件没有正常的关闭(wq、q、q!),那么就会生成一个崩溃缓存文件

    崩溃缓存文件的和作用

    1. 缓存文件是隐藏文件

    2. 缓存文件基本格式是 .file.swp

    3. 缓存文件的作用是用于在系统意外关机的情况下,恢复文件中的内容(修改了文件内容,意外关掉终端或者系统)

    4. 缓存文件的使用方式

    第一步:# vim -r .file.swp

    第二步:保存退出

    第三步:删除缓存文件

    注意:

    1. 如果文件发生了修改,那么无法直接退出

    2. 如果要退出一个修改了的文件,有三种方式

    方式1:先执行保存(w),然后执行退出(q)

    方式2:直接保存并退出(wq)

    方式3:不保存,并强制执行退出操作(q!)

    练习

    先执行如下命令

    cd /tmp

    cp /etc/rc.d/rc.local ./

    然后用vim打开这个文件

    然后在这个文件第三行写上自己的名字

    然后返回到命令模式

    先执行命令

    cd /tmp

    cp /etc/init.d/functions ./

    1.然后用vim打开文件

    2.然后将第一行移动到第五行

    3.将第8行以后的全面行都删除

    4.将第一行到底7行的内容复制一次,粘贴到第7行下面

    5.然后还原第七行中的内容

    6.保存退出

    先执行命令

    cd /tmp

    cp /etc/init.d/functions ./

    1.然后用vim打开文件

    2.跳转到第443行

    3.跳转到最后一行

    4.向上翻1屏

    5.将664行中settings中的i替换为大写

    6.跳转到第2行

    7.将第3行以后的全部内容都删除

    6.保存退出

    先执行命令

    cd /tmp

    cp /etc/init.d/functions ./

    1. 然后用vim打开文件,并显示行号

    2. 在文件每行的末尾添加上 -自己姓名

    3. 将文件的最后10行的行首添上#

    4. 将以#开头的行的行首添加 newline

    5. 取消行号、取消文件内容的高亮

    6. 保存文件

    7. 不保存强制退出

    #######################

    2. 用vim在tmp创建一个文件file,写入如下内容

    # my info

    my name is liuqi

    your name is wukong#

    we are going to xi tian#

    my email is 161@qq.com

    password is in /etc/passwd

    over.

    3. 将第2行到第6行的内容复制到第7行的下面,复制5次

    4. 将在文件中查找单词 my

    5. 执行一次保存操作

    5. 将第7行到末行的首部添加一个#

    5. 将文件中的/替换为=

    6. 将 # my info 移动到 .over 的下面

    7. 跳转到末行,再跳转到首行

    8. 保存并退出

    ######################################

    补充:

    1. 创建空白文件的方式有两种touch、vivim

    2. linux中,文件的后缀对于文件的属性没有任何影响,文件的属性只和创建文件的时候所执行的命令有关

    3. linux中无论是命令还是文件名,都严格区分大小写

  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第50章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第49章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第48章 读书笔记(待更新)
    Spring Boot 中使用 Quartz 实现任务调度
    实战 FastDFS Java 客户端上传文件
    分布式文件系统之 FastDFS
    Java 持久层框架之 MyBatis
    C语言实现贪吃蛇
    [转载]分享三篇非常好的学习心得
    selenium加载cookie报错问题:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
  • 原文地址:https://www.cnblogs.com/kenken2018/p/10263404.html
Copyright © 2020-2023  润新知