• 五、 vim


    vi/vim

    打开文件

    vim [option] .... file....

    +# 直接定位到第#行
    +/pattern 打开文件后,直接定位到第一个匹配到patter的地方
    -b 以二进制方式打开文件
    -d file1 file2 对比打开多个文件
    -m file 只读方式打开文件
    -e 直接以末行模式打开

    模式

    • 命令模式:可以光标,可以粘贴、复制文本,默认

    • 插入模式或 者编辑模式:可以修改文本

    • 末行模式(扩展命令模式):保存、退出等等

    • esc 退出当前的模式

    模式之间切换

    • 命令模式- 插入模式

      • i 光标所在处插入

      • I 在当前光标所在的行的行首插入

      • a 光标所在位置的后面插入

      • A 在当前光标所在的行尾插入

      • o 在当前光标所在的行的下一行(新开)插入

      • O 在当前光标所在的行的上一行(新开一行)插入

    • 插入模式- 命令模式

      • esc

    • 命令模式 -- 末行模式

    • 末行模式 -- 命令模式

      • esc esc

      • esc enter

    关闭文件

    • 末行模式

      • :w 保存

      • :q 退出

      • :wq 保存并退出

      • :q! 强制退出

      • :wq!强制保存退出

      • :x 保存并退出

    • 命令模式

      • ZZ 保存退出

      • ZQ 不保存退出

    扩展命令行模式

    • 按":" 来进入

    • w 写入

    • q 退出

    • wq 保存并退出

    • q! 强制退出

    • x 保存并退出

    • r file 读入文件

    • w file 另存为

    • !command 直接执行命令

    • r!command 直接把命令的结果写到文件中

    命令模式跳转

    • 字符之间跳转

      • l 向右

      • h 向左

      • j 向下

      • k 向上

    • 单词间跳转

      • w 下一次的单词的词首

      • e 当前词的词尾或者下一个单词的词尾

      • b 当前词的词首或者上一词的词首

      • # command 直接跳转#个单词

    • 页面间跳转

      • H 页首

      • L 页尾

      • M 页中

      • zt 将光标所在行移动到屏幕的顶端

      • zb 将光标所在行移动到屏幕的底部

      • zz 将光标所在行移动到屏幕的中间

    • 行首行尾之间跳转

      • ^ 跳转到当前光标所在行的第一个非空字符

      • 0(数字) 跳转到行首

      • $ 跳转到行尾

    • 行间移动

      • #G 跳转到第#行

      • 在命令扩展模式下,直接:# 跳转到对应的行

      • G 直接到最后一行

      • gg 跳转到第一行

      • 1G 跳转到第一行

    • 段落之间跳转(空行)

      • { 上一段

      • } 下一段

    • 翻屏

      • ctrl+f 向文件尾部翻一屏

      • ctrl+b 向文件首部翻一屏

      • ctrl+d 向文件尾部翻半屏

      • ctrl+u 向文件首部翻半屏

    命令模式编辑

    • 字符编辑

      • x 删除光标所在处的字符

      • #x 删除#个字符

      • xp 将光标所在处的字符和后面的字符互换位置

      • ~ 将光标所在的位置大小写互换

      • J 删除当前行的换行符

    • 替换

      • r 替换当前光标所在处的字符

      • R 进入替换模式

    • 删除

      • d 删除,需要跟字符跳转结合

      • d$ 删除到行尾,删除当前位置

      • d0 删除到行首,当前位置不删除

      • d^ 删除到非空字符

      • dw 删除一个单词

      • de 向后删除一个单词

      • db 向前删除一个单词

      • dd 删除正行

      • # dd 删除#行

      • dG 删除到结尾

      • dgg 删除到开头

      • D 相当于d$

    • 复制

      • y,也可以跟字符跳转结合

      • y$

      • y0

      • y^

      • yw

      • ye

      • yb

      • yy 一正行

      • #yy 复制#行

      • yG 复制到结尾

      • ygg 复制到开头

      • Y 复制整行

    • 粘贴

      • p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面

      • P 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面

    • 改变,删除以后并将模式切换成插入模式

      • c 可以跟光标的跳转做结合

      • c$

      • c0

      • c^

      • cw

      • ce

      • cb

      • #command

      • cc 删除正行并插入

      • C 相当于c$

    • #[i|I|a|A|o|O]string esc 将string粘贴#次

    • 搜索

      • /pattern 从当前光标往下搜索

      • ?pattern 从当前光标往上搜索

      • n 同命令相同的方向

      • N 同命令相反的方向

    • 撤销

      • u 撤销最近的修改

      • # u 撤销最近的#次修改

      • ctrl +r 撤销之前的撤销动作

      • . 重复最后一次操作

      • #. 最后一次操作重复执行#次

    命令扩展模式

    地址定界

    :start,end

    # 具体到第#行

    #,# 第#行到第#行

    #,+n 从第#开始,到第#+n行结束 1,+2 ==>1,3

    . 表示当前光标所在的行

    $ 表示最后一行

    $-1 表示倒数第二行

    % 表示全文

    /pat1/,/pat2/ 从第一个pat1匹配到的地方,到pat2第一次匹配到的地方

    #,/pat/ 从第#行开始,到第一次被pat匹配到的地方

    /pat/,$ 从第一次被pat匹配到的到结尾

    可以使用的命令

    • d

    • y

    • w file 重新另存为文件

    • r file 将文件的内容写到匹配到的下一行

    查找并替换

    • 要使用地址定界来进行查找

    • s 在扩展命令模式下使用为替换

    • 格式: s/要查找的内容/要替换的内容/装饰器

    • 要查找的内容可以使用正则

    • 替换的内容不能为正则

      • 可以为分组:%s/(nfs.*)/#1/

      • 1表示第一个分组内的内容

      • 2

      • 3

      • & 可以代表前面匹配到的内容

    • 装饰器

      • i 忽略大小写

      • g 表示全部替换

      • gc 每一次替换之前都要询问是否替换

    • 分隔符还可以使用

      • @

      • #

    可视化

    • v 面向字符

    • V 面向行的

    • ctrl +v 面向块

    • 可以结合所有的跳转键进行结合

    • 对突出显示部分可以使用删除、复制、变更、过滤、替换、另存为等等

    打开多个文件

    vim file1 file2 file3

    :next 下一个

    :prev 上一个

    :first 第一个

    :last 最后一个

    :qall 退出全部

    :wall 保存全部

    :wqall 保存并退出全部

    :xall 保存并退出全部

    使用多个窗口

    vim -o 水平分隔

    vim -O 垂直分隔

    切换ctrl+w 加上上下左右箭头

    单文件切割

    ctrl+w,s 水平切割

    ctrl+w,v 垂直切割

    ctrl+w,q 取消相邻的窗口

    ctrl+w,o 取消全部窗口

    vim工作特性

    配置文件

    • 全局有效:/etc/vimrc

    • 对当前用户有效: ~/.vimrc

    • 行号:set nu 取消 set nonu

    • 忽略大小写(搜索) set ic 取消set noic

    • 自动缩进(同上一行) set ai 取消set noai

    • 设置高亮显示(搜索到的内容) set hls 取消set nohls

    • 语法高亮 syntax on 取消 syntax off

    • 文件格式

      • windows格式 set fileformat=dos

      • unix set fileformat=unix

    • 添加标识线: set cul 取消标识线 set nocul

    • 获取帮助: set all

    • 获取帮助信息:

      • :help

      • :help topic

      • vimtutor

      •  

     

  • 相关阅读:
    FastDFS 与 Nginx 实现分布式图片服务器
    git(三) 使用github
    html表单笔记
    Jquery笔记和ajax笔记
    CSS笔记
    javascript笔记
    idea笔记
    spring boot 框架设计步骤
    spring boot启动项的问题
    Loading class `com.mysql.jdbc.Driver'. The new driver class is `com.mysql.cj.jdb 问题
  • 原文地址:https://www.cnblogs.com/zhuangdd/p/14279901.html
Copyright © 2020-2023  润新知