zoukankan      html  css  js  c++  java
  • Linux笔记 vi/vim编辑器

    一、vi/vim的三种模式
     
      vi编辑器有三种模式:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。就是你直接用命令(vi  文件名)打开一个文件的话,默认是在命令模式下。命令模式下是不能直接编辑文本的,你输入的字母会被当作命令执行。比如输入i,是指在当前光标前输入,并且切换到插入模式。在插入模式下你就可以进行文本的编辑。插入模式下你按Esc可以返回命令模式。在命令模式下,通过输入:(英文冒号)可以切换到底行模式,底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者双击Esc返回命令模式。比如wq再回车,表示保存并退出编辑。插入模式和底行模式不能直接切换,要经由命令模式。进入底行模式,底部会出现冒号提示;进入插入模式,底部会出现--INSERT--提示。如果没有,先进入底行模式,输入set showmode+回车 即可显示提示。
     
    二、vi/vim的基本命令
     
    1.vi基本语法:vi [选项] [参数]
     
    选项:
     
    +<行号>:从指定行号的行开始先是文本内容;
    -b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
    -c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
    -d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
    -l:使用lisp模式,打开“lisp”和“showmatch”;
    -m:取消写文件功能,重设“write”选项;
    -M:关闭修改功能;
    -n:不实用缓存功能;
    -o<文件数目>:指定同时打开指定数目的文件;
    -R:以只读方式打开文件;
    -s:安静模式,不现实指令的任何错误信息。
     
    参数:
    文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
     
    2.不同模式下的语法
     
    ----命令模式:----
     
    1)粘贴复制删除等操作
    yy            复制光标所在行
    2yy           复制光标所在行开始的2行
    p             粘贴
    dd            删除光标所在行(实际是剪切)
    3dd           删除光标所在行开始的3行(剪切)
    x             删除当前光标所在的字符
    X(大写)      删除当前光标前一个字符
     
    2)光标的移动
    h  左移    j  下移   k  上移    l  右移 (四个箭头也可以上下左右移动)
    H 当前屏幕第一行 M      当前屏幕中间 L      当前屏幕最后一行
    ctrl+f 往下翻页 ctrl+b 往上翻页
    G 定位到最后一行(整个文档最后一行) 5G 定位到第5行 gg 定位到第一行(整个文档第一行)
    w 跳到下一个头部单词 b 跳到上一个单词 e 跳到下一个单词的尾部
    0      行首 ^      行首,非空字符 $      行尾
    {   移动到上一个代码块 } 移动到下一个代码块
     
    3)编辑模式及末行模式等其他模式的入口
    插入模式(INSERT MODE)
            a  在光标后一位进行插入编辑
            A  在当前行的最后进行插入编辑
            i  在当前光标的前一位进行插入编辑
            I  在当前行的行首进行插入编辑
            o  在当前行向下插入一行进行编辑
            O  在当前行向上插入一行进行编辑
    选择模式(VISUAL MODE)    v 以字符为单位进行选择    V 以行为单位进行选择    ctrl+v 以块为单位进行选择
    替换模式(REPLACE MODE)   r 单次替换    R 替换模式
    扩展模式 用于文件操作,搜索    :   /
     
    4)其他
    u           撤销
    ctrl+r      反撤销(撤销u操作)
    

      

    ----底行模式:----
     
    末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
     
    :w      保存
    :q      退出
    :q!      强制退出(放弃对文档的修改内容)
    :wq!     强制保存退出
    :set nu 显示行号 :set nonu 不显示行号
    :命令 执行该命令 :整数 跳转到该行
    :s/one/two 将当前光标所在行的第一个one替换成two :s/one/two/g 将当前光标所在行的所有one替换成two :%s/one/two/g 将全文中的所有one替换成two
    ?字符串 在文本中从下至上搜索该字符串 /字符串 在文本中从上至下搜索该字符串

      

    ---编辑模式:----
     
          用vim随意进入一个文件按‘a’即可进入输入模式,输入模式下,可任意输入无特别要求,和Windows的文本编辑操作基本相同。
    注:在命令模式中按“a”跳入下一格,按“i”保持原位置,按“o”跳入下一行
     
     
     
    原文:https://blog.csdn.net/yuchenxueyue/article/details/82761050 
               https://blog.csdn.net/xing851483876/article/details/84553945 
  • 相关阅读:
    扫面线模板
    (动态规划、栈)leetcode 84. Largest Rectangle in Histogram, 85. Maximal Rectangle
    tmux 常见命令汇总
    leetcode 221
    leetcode 319 29
    (贪心)leetcode 392. Is Subsequence, 771. Jewels and Stones, 463. Island Perimeter
    leetcode 982 668
    Python import 同文件夹下的py文件的函数,pycharm报错
    Windows里Anaconda-Navigator无法打开的解决方案
    Windows下 gpu版 Tensorflow 安装
  • 原文地址:https://www.cnblogs.com/dumpling-z/p/11170317.html
Copyright © 2011-2022 走看看