zoukankan      html  css  js  c++  java
  • linux/Unix下的vim/vi指令的使用方法

    概述

      以下这篇文章介绍的是关于vim的使用方法,由于我本身对linux没有太多的研究,写下的这篇文章纯属是在实际中经常使用vim指令,想通过这篇文章记录下来,方便以后使用时查找方便。个人认为,对于普通用户,看完这篇文章,在服务器上使用vim指令就已经足够了。

    vim/vi指令的介绍

      vim是vi指令的升级版,它兼容了vi的所有指令,并且添加了一些新的特性。vim指令的新的特性在此不做详细的介绍,我们主要介绍vi指令(vi的指令都可以通过vim指令直接使用)。
    vi指令可以应用于linux和unix的任何系统版本。

    vim/vi指令的基本概念

      vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)这三个模式的功能如下:

    (1).命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某个区段以及进入插入模式下,或者到底行模式中。

    (2).插入模式:只要在插入模式下,才可以做文字输入,同时按ESC键可以返回到命令行模式。

    (3).底行模式:将文件保存或者退出vim/vi,也可以设置编辑环境。

    值得注意的是:我们通常把vim简写成两个模式:命令行模式和插入模式(将底行模式算到命令行模式中)。

    vim/vi的基本操作

    (1).进入vim/vi

    在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$vim config/index.js 。但是要注意的是,当我们进入了vim,我们处于的是命令行模式,不能够编辑,我们必须切换到插入模式之后才能够输入文字

    (2).切换到插入模式-------编辑文件
    在我们进入了命令行模式之后,我们按字母[i]切换至插入模式,这个时候我们就可以输入文字了~

    (3).插入模式的切换
    当我们处于插入模式的时候,我们只能一直的输入文字、字符,但是如果我们发现输入了错误的字,想要用光标往回移动,之后在将该文字删除,我们应该先按ESC键转到命令行模式,之后再删除文字。

    (4)退出vim并且保存文件
    在命令行模式下,按[:]冒号键进入。有几种方式:
    1).w filename:将文件以制定的文件名保存。
    2).wq : 保存并且退出。
    3).q!:不保存,强制退出。

    命令行模式的功能键

    (1).切换插入模式

    1).按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
    2).按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
    3).按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

    (2).从插入模式切换成命令行模式
    按[ESC]键

    (3).删除文字

    x:每按一次,删除光标所在位置的“后面”一个字符。
    #x:例如,8x—表示删除光标所在位置的“后面”8个字符。
    X:大写的X,每按一次,删除光标所在位置的“前面”一个字符。
    #X:10X:表示删除光标所在位置的“前面”10个字符。
    dd:删除光标所在行。
    #dd:从光标所在行开始删除#行。

    (4).移动光标

    vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母[h]、[j]、[k]、[l]分别控制光标左下上右移一格。
    按ctrl + b:屏幕往“后”移动一页。
    按ctrl + f:屏幕往“前”移动一页。
    按ctrl + u:屏幕往“后”移动半页。
    按ctrl + d:屏幕往“前”移动半页。
    按数字 0:移到文章的开头。
    按 G :移动到文章的最后。
    按 $:移动到光标所在行的“行尾”。
    按 ^:移动到光标所在行的“行首”。
    按 w:光标跳到下个字的开头。
    按 e:光标跳到下个字的字尾。
    按 b:光标回到上个字的开头。
    按 #:光标移到该行的第#个位置。

    (5).复制

    yw:将光标所在之处到字尾的字符复制到缓冲区中。
    #yw:复制#个字到缓冲区
    yy:复制光标所在行到缓冲区。
    #yy:例如,8yy表示拷贝从光标所在的该行“往下数”8行文字。
    p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

    (6).替换
    r:替换光标所在处的字符。
    R:替换光标所到之处的字符,直到按下ESC键为止。

    (7).更改
    cw:更改光标所在处的字到字尾处。
    c#w:例如,c5w表示更改5个字。

    (8).跳到指定的行

    ctrl+g:列出光标所在行的行号。
    #G: 例如,20G,表示移动光标至文章的第20行行首。

    (9).回到上一次操作
    u:如果错误执行一个命令,可以马上按下u,回到上一个操作。按多次“u”可以执行多次回复。

    vim命令列表

    (1).命令行模式下的一些键位的功能

    h----------------左移光标一个字符
    l-----------------右移光标一个字符
    k----------------光标上移一行
    j-----------------光标下移一行
    ^----------------光标移动至行首
    0----------------数字“0”,光标移至文章的开头
    G---------------光标移至文章的最后
    $----------------光标移动至行尾
    Ctrl+f----------向前翻屏
    Ctrl+b----------向后翻屏
    Ctrl+d----------向前翻半屏
    Ctrl+u----------向后翻半屏
    i----------------在光标位置前插入字符
    a---------------在光标所在位置的后一个字符开始增加
    o---------------插入新的一行,从行首开始输入
    ESC----------从输入状态退至命令状态
    x---------------删除光标后面的字符
    #x--------------删除光标后的#个字符
    X(大写X)----------删除光标前面的字符
    #X--------------删除光标前面的#个字符
    dd--------------删除光标所在的行
    #dd------------删除从光标所在行数的#行
    yw-------------复制光标所在位置的一个字
    #yw------------复制光标所在位置的#个字
    yy--------------复制光标所在位置的一行
    #yy------------复制从光标所在行数的#行
    p---------------粘贴
    u---------------取消操作
    cw-------------更改光标所在位置的一个字
    #cw------------更改光标所在位置的#个字

    (2).命令行模式下的一些指令

    1).w filename储存正在编辑的文件为filename
    2).wq filename储存正在编辑的文件为filename,并退出vi
    3).q!放弃所有修改,退出vi
    4).set nu显示行号
    5)./或?查找,在/后输入要查找的内容
    6).n与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。

    参考文档:《鸟哥linux私房菜》
    https://www.runoob.com/linux/linux-vim.html
    https://www.cnblogs.com/itech/archive/2009/04/17/1438439.html

    原文链接到本人CSDN:https://blog.csdn.net/weixin_45376639/article/details/100551466

    为了我们共同进步,我这里有计算机专业的各种视频,

    如果想要,关注我的公众号:念流声。私聊我,看到后给你连接(只放了一张图片,视频有很多,需要什么可以私聊问我,有的话就给你)。

  • 相关阅读:
    linq join 左连接 leftjoin 多个on条件 where 条件
    mongodb 学习1
    Couchbase 如何设置密码;bucketPassword设置密码
    js获取网页的url文件名( 例如index.aspx),js获取url的参数(例如获取 ?cid=joeylee的值),给jquery拓展方法
    一个怪异的问题,时间序列化返回的问题
    jQuery 效果
    js对象的创建,拓展方法的创建
    js方法传入对象;js方法传入方法;js方法回调 callback
    js作为参数,并且返回值;js的回调模式 callback
    Connection to Oracle failed. [66000][12505] Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor .
  • 原文地址:https://www.cnblogs.com/liuzengzhi/p/11507062.html
Copyright © 2011-2022 走看看