美文网首页
Vi编辑器

Vi编辑器

作者: 囧书 | 来源:发表于2018-10-05 17:34 被阅读31次

    简介

    vi和vim

    在很多Linux发行版中,直接把vi做成vim的软链接。

    vi

    • vi是Visual interface的简称,Linux中最经典的文本编辑器。
    • vi的核心设计思想,是让程序员的手指始终保持在键盘核心区域,就能完成所有操作。

    vim

    vim = vi improved
    vim是从vi发展出来的文本编辑器,支持代码补全、编译及错误跳转等方便编程的功能。

    打开/新建文件

    打开vi

    vi 文件名
    

    打开的同时定位到行

    在程序debug时,快速打开并且定位到行

    # vi 文件名 +行号
    vi hellp.py +16
    
    # vi 文件名 +
    # +号后面不接数字,定位到末尾
    vi hello.py +
    

    异常处理

    如果vi被异常退出了,比如没有保存时,会话被关闭了,vi就创建一个交换文件.xxx.swp
    再用vi打开上次文件时,会提示文件的已存在,此时可删除它或恢复到上次。

    工作模式

    vi有三种基本工作模式

    • 命令模式:通过命令进行文本操作
    • 编辑模式:编辑文本
    • 末行模式:保存和退出
    vi的模式.png

    末行模式命令

    命令 英文 功能
    w write 保存
    q quit 退出,如果没有保存,不允许退出
    q! quit 强行退出,不保存退出
    wq write & quite 保存并退出
    x 保存并退出

    重复次数

    先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数。

    移动

    上下左右

    命令 功能
    h
    l
    j
    k

    行内移动

    命令 英文 功能
    w word (前进)右移一个单词
    b back (后退)左移一个单词
    0 行首
    ^ 第一个非空字符
    $ 行尾

    行数移动

    命令 英文 功能
    gg go 文件顶部
    G go 文件末尾
    数字gg go 移动到数字对应行数
    数字G go 移动到数字对应行数
    :数字 go 移动到数字对应行数

    屏幕移动

    命令 英文 功能
    ctrl + b back 向上翻页
    ctrl + f forward 向下翻页
    H Head 屏幕顶部
    M Middle 屏幕中间
    L Low 屏幕底部

    段落移动

    段落以空行为区分

    命令 功能
    { 上一段
    } 下一段

    括号切换

    可以在括号的开头末尾来回切换

    命令 功能
    % 括号匹配及切换

    标记

    命令 英文 功能
    mx mark 添加标记x,标记可以是a-z或A-Z之间任意一个字母
    'x 直接定位到标记x的行

    选中文件(可视模式)

    命令 模式 功能
    v 可视模式 正常选择
    V 可视行模式 选中光标经过的完整行
    ctrl + v 可视块模式 垂直方向选中文本

    撤销和恢复撤销

    命令 模式 功能
    u undo 撤销
    ctrl + r redo 恢复撤销

    删除文本

    命令 英文 功能
    x cut 删除光标所在字符,或可视模式选中的文字
    d(接移动命令) delete 删除移动命令对应的内容
    dd delete 删除光标所在行,可以ndd删除多行,n为数字
    D delete 删除至行尾

    复制、粘贴

    命令 英文 功能
    y(接移动命令) copy 复制
    yy copy 复制一行,可以nyy向下复制多行
    p paste 粘贴
    • 命令dx类似于剪切,剪切后不粘贴,就相当于删除。
    • 在编辑模式中,可以使用鼠标右键粘贴文本。

    替换

    命令 英文 功能 工作模式
    r replace 替换光标所在字符 命令模式
    R replace 替换当前行光标后的字符 替换模式

    缩排与重复执行

    命令 功能
    >> 右缩进
    << 减少缩进
    . 重复上次命令

    查找

    常规查找

    命令 功能
    /str 查找 str

    n查找下一个,按N查找上一个

    查找并替换

    需要在末行模式下执行。
    固定格式:

    :%s///g
    

    全局替换

    :%s/旧文本/新文本/g
    

    可视区域内替换

    先选中要替换文字的范围,再执行替换

    # 先选中,然后进入末行模式,不需要写%号
    :s/旧文本/新文本/g
    

    确认替换

    把末尾的g改成gc,在替换时就会有提示。

    :%s/旧文本/新文本/gc
    

    vi提示的可选项:

    选项 英文 含义
    y yes 替换当前定位的文本
    n no 不替换
    q quit 退出替换
    l last 替换,然后退出替换
    ^E 向下滚屏
    ^Y 向上滚屏

    编辑命令

    进入编辑模式有这些:

    命令 英文 功能 常用
    i insert 在当前字符前插入文本 常用
    a append 在当前字符后插入 不常用
    I insert 在行首插入 较常用
    A append 在行尾插入 较常用
    o 在当前行下方插入空行 常用
    O 在当前行上方插入空行 常用

    编辑命令和数字的连用

    比如需要输入20个号,则首先在命令模式中输入20,然后按i进入编辑模式,输入,再按esc退出编辑模式,会把在编辑模式下的输入重复20次。

    编辑命令和可视化连用

    比如要注释掉多行代码,可以这样做:

    1. 移动到需要注释的代码的行首
    2. 进入可视化模式选中需要注释的代码
    3. 按大写I进入编辑模式,注意在可视化模式下按小写i是进不了编辑模式的
    4. 在行首输入#,按esc退出编辑模式。
    5. 可以看到所有选中的行都注释了。

    相关文章

      网友评论

          本文标题:Vi编辑器

          本文链接:https://www.haomeiwen.com/subject/mzhxaftx.html