• Linux学习笔记(10)文本编辑器vim


    vim是一个功能强大的全屏幕文本编辑器,是Linux/Unix最常用的文本编辑器,其作用是建立、编辑、显示文本文件vim的特点是没有菜单,只有命令

    vim主要有三种工作模式,分别为命令模式、插入模式、编辑模式。三者的关系可由下图来表示:

     

    1 vim常用操作

    (1)插入命令

    命令

    作用

    a

    在光标所在字符后插入

    A

    在光标所在行尾插入

    i

    在光标所在字符前插入

    I

    在光标所在行首插入

    o

    在光标下插入新行

    O

    在光标上插入新行

    (2)定位命令

    命令

    作用

    :set nu

    设置行号

    :set nonu

    取消行号

    gg

    到第一行

    G

    到最后一行

    nG

    到第n行

    :n

    到第n行

    $

    移至行尾

    0

    移至行首

    (3)删除命令

    命令

    作用

    x

    删除光标所在处字符

    nx

    删除光标所在处后n个字符

    dd

    删除光标所在行

    dG

    删除光标所在行到文件末尾内容

    ndd

    删除光标所在行后n行(包括当前行)

    D

    删除光标所在处到行尾内容

    :n1,n2d

    删除指定范围行

    (4)复制和剪切命令

    命令

    作用

    yy

    复制当前行

    nyy

    复制当前行以下n行(包括当前行)

    dd

    剪切当前行

    ndd

    剪切当前行以下n行(包括当前行)

    p,P

    粘贴在当前光标所在行下或行上

    (5)替换和取消命令

    命令

    作用

    r

    取代光标所在处字符

    R

    从光标所在处开始替换字符,按ESC结束

    u

    取消上一步操作

    (6)搜索和搜索替换命令

    命令

    作用

    /string

    搜索指定字符串,搜索时忽略大小写:set ic,取消忽略:set noic

    n

    搜索指定字符串的下一个出现位置

    :%s/old/new/g

    全文替换指定字符串

    :n1,n2s/old/new/g

    在一定范围内替换指定字符串

    其中g表示不询问确认,如果是c的话表示询问确认

    (7)保存和退出命令

    命令

    作用

    :w

    保存修改

    :w new_filename

    另存为指定文件

    :wq

    保存修改并退出

    ZZ

    快捷键,保存修改并退出

    :q!

    不保存修改并退出

    :wq!

    保存修改并退出(文件所有者和root可使用)

    2. vim的使用技巧

    (1)将一个文件的内容导入到文本文件中,其格式为:

    :r 文件名

    例:创建test文本,写入如下内容,将/etc/issue的内容复制到test文本中

    [root@localhost ~]# vi test
    
    I am ws.
    
    What's your name?
    
    My name is LiMing
    
    I am glad to see you.

    在最后一行的下一行插入issue的内容,在命令模式下输入:r /etc/issue,可得:

    I am ws.
    
    What's your name?
    
    My name is LiMing
    
    I am glad to see you!
    
    CentOS release 6.5 (Final)
    
    Kernel 
     on an m

    (2)在不退出vim的情况下,执行相应的操作命令,其格式为:

    :!命令

    例:如在命令模式下执行ls命令

    I am glad to see you!
    
    CentOS release 6.5 (Final)
    
    Kernel 
     on an m
    
     
    
    :!ls
    
    [No write since last change]
    
    anaconda-ks.cfg  install.log  install.log.syslog

    (3)导入命令执行结果,相当于将前两者进行综合,其格式为:

    :r !命令

    例:在test的文本末尾添加日期,在命令模式下输入:r !date,其结果为:

    I am ws.
    
    What's your name?
    
    My name is LiMing
    
    I am glad to see you!
    
    CentOS release 6.5 (Final)
    
    Kernel 
     on an m
    
    Fri Jan  2 06:00:55 CST 2015

    (4)定义快捷键

    可以为常用的命令定义快捷键,其格式为:

    map 快捷键 触发命令

    注:快捷键的创建需要同时按下Ctrl+v+创建快捷键的字母

    例1:创建一个快捷键,可使在行首加入注释符#,只需在命令模式下输入:map ^P I#<ESC>,其中^P为Ctrl+v+p同时按下后的显示,I#即为行首插入注释符#,<ESC>表示退出编辑模式到命令模式。

    然后在第一行执行Ctrl+p,即可得到如下结果:

    #I am ws.
    
    What's your name?
    
    My name is LiMing
    
    I am glad to see you!
    
    CentOS release 6.5 (Final)
    
    Kernel 
     on an m
    
    Fri Jan  2 06:00:55 CST 2015

    例2:创建删除行首注释符#的快捷键,在命令模式下输入:map ^B 0x。

    例3:在当前光标下为邮箱创建快捷键,在命令模式下输入如下命令:

    :map ^H i123@qq.com

    (5)连续注释行,该命令与搜索替换命令1.(6)类似。如在连续多行添加注释符#,在命令模式下输入如下命令:

    :n1,n2s/^/#/g

    其中^表示行首

    相对的,取消连续行注释可以在命令模式下输入如下命令:

    :n1,n2s/^#//g

    如果以"//"表示注释符的话,则连续注释行可在命令模式下输入如下命令:

    :n1,n2s/^////g

    其中""表示转义字符。

    例:在test文本中的前两行加入//注释符:

    //I am ws.
    
    //What's your name?
    
    My name is LiMing
    
    I am glad to see you!
    
    CentOS release 6.5 (Final)
    
    Kernel 
     on an m
    
    Fri Jan  2 06:00:55 CST 2015

    (6)替换

    在文本文件中,可以将一个字符串替换为另一个字符串,如将mail替换为123@qq.com,其命令格式为:

    :ab  mail 123@qq.com

    然后在文本中写入mail,按空格或Enter键则mail自动替换为123@qq.com。

    通常设置的快捷键或替换在系统重启时会消失,如果想长时间的保存快捷键的定义或替换等,可以在每个用户的家目录(如root在/root,用户在/home/用户)下写入配置文件.vimrc(root下如/root/.vimrc),然后在该配置文件中编辑模式下写入所需要的命令,且行首无需加冒号(:)。

  • 相关阅读:
    机器学习中规则化和模型选择知识
    关于arcengine权限的设置
    arcengine 实现调用arctoolbox中的dissolove
    基于手机令牌的屏保软件设计与实现
    RelativeLayout中最底的View一个View.layout_marginBottom无效
    Citrus Engine简单Demo
    Java菜鸟学习笔记(23)--继承篇(二):继承与组合
    uva 579 ClockHands 几何初接触 求时针与分针的夹角
    OpenCV中GPU函数
    html监听,键盘事件
  • 原文地址:https://www.cnblogs.com/mengrennwpu/p/4237532.html
Copyright © 2020-2023  润新知