zoukankan      html  css  js  c++  java
  • vim命令

    vim

    vimtutor:系统自带的 vim教程

    命令模式操作

    1. 移动光标

      • h-左,l-右,j-上,k-下

      • 行内定位

        • 0--行首
        • ^--行首,忽略空格
        • $--行尾
        • f 正向搜索ch字符,ch如果是字母则区分大小写
        • F 反向搜索ch字符,ch如果是字母则区分大小写
      • 单词间定位,如果是大写,则单词允许包含标点

        • w--下一个单词首字母
        • e--下一个单语尾字母
        • b--前一个单词首字母
      • 页面定位

        • gg -- 文件的开头
        • G -- 文件的末尾
        • H--定位到当前页面的顶部
        • M--定位到当前页面的中部
        • L--定位到当前页面的底部
        • nG/ngg/:n --  跳转到n行
      • 块定位

        • { --跳到上一个代码块
        • } --跳到下一个代码块
        • % --定位到另一个匹配的括号
      • m <a> -- 标记
      • '<a> -- 回到标记位置
      • gd -- 跳转到变量(方法)的定义处或者调用处
    2. 切换屏幕
      • ctrl + y --向上滚屏一行
      • ctrl+ e --向下滚屏一行
      • ctrl + u --向上滚动半屏
      • ctrl + d --向下滚动半屏
      • ctrl + b --向上滚动一屏
      • ctrl + f --向下滚动一屏  
    3. 删除内容

      • x -- 删除光标所在位置的内容,前面可以接数字,3x代表删除三个字符

      • X -- 删除光标前的内容

      • dw -- 删除单词(从光标开始删)

      • d$ / D -- 删除光标到行尾所有内容

      • d0 -- 删除从光标位置到行首所有内容,不包括光标

      • dd -- 删除光标所在行

      • d^ -- 删除到行首(第一个非零字符)
      • ndd -- 删除从光标所在行开始向下 n 行的内容

      • dt, -- 删除到逗号
      • diw -- 删除光标所处的单词
      • daw -- 删除光标所处的单词,并包含前后空格(如果有的话)
      • di" -- 删除双引号中的内容
      • di' -- 删除单引号中的内容
      • di) -- 删除小括号中的内容
      • di] -- 删除中括号中内容
      • di} -- 删除大括号中内容
      • diB -- 删除'{}'中的内容
      • dit -- 删除 xml tag 中的内容
      • dis -- 删除当前句子
      • d2w -- 删除下两个单词
      • dt( -- 删除从光标位置到小括号前内容
      • dgg -- 删除到文件头部
      • dG -- 删除到文件尾部
      • d} -- 删除下一段
      • d{ -- 删除上一段
      • J -- 连接若干行
      • gJ -- 连接若干行,删除空白字符
      • :[range]d -- 删除范围,比如 :20,30d 是删除20到30行,:10d 是删除第十行
      • ddp -- 交换两行内容:先删除当前行复制到寄存器,并粘贴
    4. 撤销操作

      • u -- 撤销操作

      • U -- 撤销整行操作
      • ctrl + r -- 反撤销

    5. 复制粘贴

      • yy -- 复制当前行

      • Y -- 复制当前行,同 yy
      • y$ -- 复制当前位置到本行结束的内容
      • yt, -- 复制到逗号
      • yiw -- 复制当前单词
      • nyy -- 复制n行内容

      • dd -- 剪切一行内容

      • 小p -- 将剪切板内容粘贴到光标所在位置的下一行

      • 大P -- 将剪切板内容粘贴到光标所在位置的上一行

      • r -- 替换光标所在字符,输入r之后,再输入一个字母

      • :[range]y -- 复制范围,比如 :20,30y 是复制20到30行,:10y 是复制第十行
    6. 可视模式

      • v -- 进入可视模式,移动光标选中内容

      • V -- 开始按行标记
      • CTRL-V -- 开始列标记
      • y -- 复制标记内容

      • d -- 删除(剪切)

      • p -- 从光标位置粘贴

      • 大P -- 从光标位置前一位开始粘贴

    7. 查找操作

      • /string -- 从文件顶部查找文件内所有的string

      • ?string -- 从文件底部查找文件内所有的string

      • # -- 将光标移到要查找字符串上后按进行查找

      • n/N -- 向上或向下对查找结果进行遍历

    8. 格式化操作

      • >> -- 当前光标所在行右移一个tab

      • << -- 当前光标所在行左移一个tab

      • n>> -- 移动光标开始n行右移一个tab

      • n<< -- 光标开始n行左移一个tab

      • gg=G -- 文件整体调整格式

      • =a{ -- 缩进光标所在代码块
      • =i{ -- 缩进光标所在代码块,不缩进"{"
      • == -- 自动缩进
    9. 查看man

      • 光标移动到函数位置,按K或者n+K切换到man帮助页

    10. 选择文本,以下如果将i换成a,则会将符号也包含进去。同理,将选择操作(v)替换成插入(c)、剪切(d)或者复制(y),也能实现类似的效果。
      • vib(选中小括号内的内容)
      • viB(选中大括号内的内容)
      • vi"(选中双引号内的内容)
      • vi'(选中单引号内的内容)
      • vi<(选中尖括号内的内容)
      • v0 -- 选中当前位置到行首
      • v$ -- 选中当前位置到行末
      • vt, -- 选中到逗号
      • viw -- 选中当前单词 
      • vi) -- 选中小括号内的东西
      • vi] -- 选中中括号内的东西
      • vis -- 选中句子中的东西
      • gv -- 重新选择上一次选中的文字

      11. 其它操作

      • .(点) -- 重复上一次操作
      • ~ -- 交换大小写
      • g~iw -- 替换当前单词的大小写
      • gUiw -- 将单词转成大写
      • guiw -- 将当前单词转成小写
      • guu -- 全行转为小写
      • gUU -- 全行转为大写
      • CTRL-A -- 增加光标所在位置的数字
      • CTRL-X -- 减少数字

    编辑模式

    • i -- 在光标之前插入

    • I -- 从行首插入

    • a -- 在光标之后插入

    • A -- 从行尾插入

    • s -- 替换字符(删除光标处字符,并进入插入模式,前可接数量)

    • S -- 替换行(删除当前行,并进入插入模式,前可接数量)

    • o -- 在下一行行首插入

    • O -- 在上一行行首插入

    • r -- 替换当前字符
    • R --进入替换模式,直至 ESC 离开
    • cc -- 改写当前行(删除当前行并进入插入模式),同 S
    • cw -- 改写光标开始处的当前单词
    • ciw -- 改写光标所处的单词
    • caw -- 改写光标所处的单词,并且包括前后空格(如果有的话)
    • ct, -- 改写到逗号
    • c0 -- 改写到行首
    • c^ -- 改写到行首(第一个非零字符)
    • c$ -- 改写到行末
    • ci" -- 改写双引号中的内容
    • ci' -- 改写单引号中的内容
    • ci) -- 改写小括号中的内容
    • ci] -- 改写中括号中内容
    • ci} -- 改写大括号中内容
    • cit -- 改写 xml tag 中的内容
    • cis -- 改写当前句子
    • ciB -- 改写'{}'中的内容
    • c2w -- 改写下两个单词
    • ct( -- 改写到小括号前

    多行编辑或删除

    1. 将光标移动到要插入相同内容的字符上

    2. 按下 ctrl + v 进入 可视 块 模式

    3. 上下移动光标选择要同时修改的行数

    4. 按下大写I 进入编辑模式 / 按d 删除选中的字符

    5. 输入要插入的内容

    6. 按 esc 退出,vim 会自动在选择的几行添加相同的内容

       

    末行模式

    • :-- 切换到末行模式

    1. 查找替换

      • :s/src/des -- 只会替换当前行第一个匹配的src为des

      • :s/src/des/g -- 替换当前行所有匹配的src为des

      • :%s/src/des -- 只会替换所有行第一个匹配的src为des

      • :%s/src/des/g -- 替换文件内所有的src为des

      • :%s/p1/p2/gc -- 替换当前文件中的p1为p2,并且每处询问你是否替换
      • :10,20s/p1/p2/g -- 将第10到20行中所有p1替换为p2
      • :g/^s*$/d -- 删除空行
      • :g/test/d -- 删除所有包含 test 的行
      • :v/test/d -- 删除所有不包含 test 的行
      • :%s/^/test/ -- 在行首加入特定字符(也可以用宏录制来添加)
      • :%s/$/test/ -- 在行尾加入特定字符(也可以用宏录制来添加)
      • :sort -- 排序
      • :g/^(.+)$ 1/d -- 去除重复行(先排序)
      • :%s/^.{10}// -- 删除每行前10个字符
      • :%s/.{10}$// -- 删除每行尾10个字符
    2. 保存退出

      • :w --保存

      • :wq --保存后退出

      • :q -- 退出,只有文件没有变化才能退出

      • :q! --强制退出不保存

      • :x --相当于wq

      • ZZ -- 命令模式下的保存退出

    3. vi分屏

      • :sp filename --横分,上下分

      • :vsp filename --竖分,左右分

      • ctrl + ww --切换屏幕

      • :q --退出一个文件

      • :qall -- 全部文件都退出

      • :wqall -- 全部保存退出

    4. :!command -- 末行模式下执行shell 命令

     

    vim的配置文件

    • /home/user/.vimrc --本用户的配置文件(user要替换为对应的用户名)

    • /etc/vim/vimrc -- 系统vim配置文件,如果用户没有配置,默认使用系统配置

     

  • 相关阅读:
    Prometheus监控k8s集合
    docker集合
    开源堡垒机jumpserver
    ELK日志分析平台
    安全名称解释
    CPU上下文切换
    平均负载
    234. 回文链表
    125. 验证回文串
    122. 买卖股票的最佳时机II
  • 原文地址:https://www.cnblogs.com/zhaye/p/11324319.html
Copyright © 2011-2022 走看看