• vim基础使用


    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

    http://www.cnblogs.com/shijiaqi1066/p/3931580.html

     

     

     

    文本编辑器与字处理软件

    字处理软件:Word, WPS

    文本编辑器:处理ASCII数据

     

    文本编辑:全屏,行(sed)

    常用文本编辑器

    • nanoLinux中的一个简单的文本编辑器。
    • vi Visual Interface
    • vimvi improved    模式化,功能非常强大

     

    使用vim

    vim命令格式:# vim [options] [/path/to/somefile]

     

    例:打开vim。在shell下输入vim,回车。

    wps_clip_image-15414 

     

     

    VIM导师

    shell下使用 vimtutor 命令。

    wps_clip_image-18777 

     

     

    Vim工作模式

    Vim的三种最基础工作模式:

    命令模式以快捷键在命令模式做操作。vim默认为命令模式。

    插入模式:即可以使用键盘做操作。

    编辑模式:以命令与回车进行操作。

     

    模式之间的切换

    wps_clip_image-23877 

     

     

    插入命令

    如下按键,使vim从命令模式切换到插入模式,

    a:在光标后附加文本

    i:在光标前插入文本

    o:在光标所在行之后下插入新行。

    A:在本行行末附加文本。

    I:在本行开始前插入文本。

    O:在光标所在行之前插入新行。

     

     

    光标(定位)命令

    字符间跳转:

    h左    l右    j下    k

     wps_clip_image-2228

     

    数字+光标移动键

    例:数字+h 向左侧跳指定个字符;一以此类推。

     

    行内跳转:

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

    $ 跳至绝对行尾

    0 跳至绝对行首

     

    单词间跳转:

    w 后一个单词的词首

    e 跳至当前或下一个单词启尾;

    b 跳至当前或前一个单词启首;

     

    句子间跳转:

    )  下一句;

    (  前一句;

     

    段落间跳转:

    }  下一段;

    {  前一段;

     

    屏幕中跳转:

    H:移至屏幕上端。

    M:移至屏幕中央。

    L:移至屏幕下端。

     

     

    行号命令

    在编辑模式下,输入命令可以打开或关闭行号的显示。

    :set nu :显示行号。

    :set nonu :隐藏行号。

     

    光标跳转至指定行:

    gg :到第一行。

    G :到最后一行。

    nG :到第n行。

    :n :到第n行。

     

     

    删除命令

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

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

    dd:删除光标所在行。

    ndd:删除n行。

    D:删除从光标所在处到行尾。

    dG:删除光标所在行到文件末尾的内容。

     

    在编辑模式下

    :n1,n2d:n1,n2表示行号。删除指定范围的行。

     

     

    复制和剪切命令

    yy、Y:复制当前行。

    nyy、nY:复制当前行以下n行。

    dd:剪切当前行。

    ndd:剪切当前行以下n行。

    p、P:粘帖在当前光标所在行下或行上。

     

     

    替换命令

    有些小字符可以不进入命令模式。

    r:更改光标所在处的字符。

    R:从光标所在处开始替换字符,按下Esc结束

    :%s/old/new/g :全文替换字符串。old表示原字符串,new表示新字符串。

    :n1,n2s/old/new/g :在指定的行中替换字符串。n1n2表示行号。old表示原字符串,new表示新字符串。例:4,10s/superman/aoteman/g

    :n1,n2s/old/new/g c :在命令后使用c,表示替换时,会提示。

     

    技巧:

    连续行注释

    :n1,n2s/^/#/g :为n1行到n2行的行首插入“#”。n1n2为数字,表示行号;^是一个特殊符号,表示行首。

    :n1,n2s/#//g :为n1行到n2行中的“#”去除。n1n2为数字,表示行号。

    :n1,n2s/^#//g :为n1行到n2行中行首的“#”去除。n1n2为数字,表示行号。^是一个特殊符号,表示行首。

    :n1,n2s/^////g :为n1行到n2行的行首插入“//”。n1n2为数字,表示行号;^是一个特殊符号,表示行首。是转义符。

     

     

    输入替换

    在编辑模式下输入

    :ab mymail ultraman@m78.net

    回车后,在插入模式下每当输入了“mymail ”,vim将自动将其替换为“ultraman@m78.net

    取消ab设置。

    :unab mymail ultraman@m78.net

     

      

    搜索命令

    /string :命令模式下输入“/”再输入需要查找的字符串,回车。vi即会开始查找字符串。该搜索区分大小写。

     

    n:定位到下一个匹配的字符串。

    N:定位到上一个匹配的字符串。

     

    在编辑模式写,打开忽略大小写功能

    :set ic

    关闭忽略大小写功能

    :set noic

     

     

    撤销命令

    u:取消上一步操作。保存后无法再进行撤销。

     

     

    保存与退出

    在命令模式

    保存 :w

    另存为 :w /filepath/filename

    保存退出 :wq

    强行退出 :q!

     

    或者“Shift+z+z”,即“ZZ”。也可以保存退出。

     

    文件的所有者或者root用户,即便没有文件的写权限,也可以强行保存退出。

     

     

    vi中执行命令

    在编辑模式下,使用“:!”后跟Linux命令,这样就可以在vi中执行Linux命令了。

    例:查看/root目录下的内容。

    :! ls /root

     

     

    导入文件

    :r /fileparh/filename

    将指定文件的内容导入到当前正在编辑的哦文件中。

     

    将执行结果导入到当前编辑的文件中。

    :r !linux

     

    例:这是一个小技巧,在文件中导入时间。

    :r !date

     

     

    使用map定义快捷键

    使用map可以在vi中定义快捷键。使用unmap取消快捷键。

     

    例:定义Shell脚本的注释

    输入“:map ”。

    定义Ctrl+p,需要在命令模式下输入Ctrl+v,Ctrl+p,或Ctrl+v+p,表现在vi中,显示为“^P”。注意:千万不能直接输入^符号,这是无效。

    在“^p”后跟上vi命令模式下操作的命令。输入使用注释,则输入“I#<ESC>”。

     

    在命令模式下就可以使用【Ctrl+P】为光标当前行添加注释。

     

    例:定义【Ctrl+E】在文档中快速插入自己的邮箱。

    :map ^E imy@mail.net

     

    例:定义【Ctrl+B】在光标所在行的第一个字母取出。该快捷键可用于shell脚本中删除第一个字母 #

    :map ^B 0x

     

     

    vi的配置文件

    vim的设置无法被保存。退出再次使用,之前的设置则无效。例:在vim中设置了 :set nu 显示行号,退出再进入vim,行号不会显示。包括map定义的快捷键,退出再进入vim,快捷键不会生效。

     

    若需要让设置永久生效,则需要将设置写入配置文件。

    vi的配置文件存放在文件的家目录中。(Linux中,若用户没有对应的家目录,则无法登陆。)

    vi的配置文件:~/.vimrc 。缺省情况下,该配置文件为空。

     

     

     

     

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

    http://www.cnblogs.com/shijiaqi1066/p/3931580.html

  • 相关阅读:
    linux下使用kermi续
    关于vhdl中integer消耗资源的一些讨论
    linux时间编程
    Linux下C编程文件编程
    C语言I博客作业04
    C语言I博客作业02
    C语言I博客作业02
    第一周作业
    php 面向对象
    php 面向对象封装和继承
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/3931580.html
Copyright © 2020-2023  润新知