为了账号安全,请及时绑定邮箱和手机立即绑定

玩转Vim 从放弃到爱不释手

难度中级
时长 5小时 9分
学习人数
综合评分9.67
37人评价 查看评价
9.9 内容实用
9.1 简洁易懂
10.0 逻辑清晰
  • ## 2-11 vim补全大法

    ### 什么是补全

    - 补全是根据当前环境上下文有编辑器【猜】你想输入的东西

    - 比如补全一个单词、文件名、或者代码中的函数名、变量名

    - vim中提供了多种补全功能,还有由插件拓展功能实现代码补全

    ### vim中常见的补全

    vim中有很多种补全方式

    | 命令   | 补全类型   |

    | ------ | ---------- |

    | \<C-n> | 补全关键字 |

    |\<C-x>\<C-n>|当前缓冲区关键字|

    |\<C-x>\<C-i>|包含文件关键字|

    |\<C-x>\<C-j>|标签关键字|

    |\<C-x>\<C-k>|字典查找|

    |\<C-x>\<C-l>|整行补全|

    |\<C-x>\<C-f>|文件名补全|

    |\<C-x><C-0>|全能(Omin)补全|

    ### 常见的三种补全类型

    - 使用Ctrl+n和Ctrl+p补全单词

    - 使用Ctrl+x,Ctrl+f补全文件名

    - 使用Ctrl+x,Ctrl+o补全代码,需要开启文件类型检查,安装插件

    查看全部
    1 采集 收起 来源:Vim 补全大法

    2021-05-23

  • ## 2-10 vim宏(macro)

    ### 从需求说起

    批量处理文本

    ### 什么是vim宏(macro)

    - 宏可以看成是一系列命令的集合

    - 我们可以使用宏【录制】一系列操作,然后用于回放

    - 宏可以方便的把一下列命令用在多行文本上

    ### 如何使用宏

    - vim使用q来录制,同时也也是q结束录制

    - 使用q{register}选择要保存的寄存器,把录制的命令保存其中

    - 使用@{register}回放寄存器中保存的一系列命令

    ### 用宏解决刚才的问题

    - 献给一行加上双引号,让后在回放到其他行

    - 我们先使用q开始录制,给一行加上双引号,之后使用q退出

    - 在剩下的所有行中回放录制的宏

    查看全部
  • ## 2-7 vim多文件操作

    ### Buffer,Window,Tab

    - Buffer是指打开的一个文件的内存缓冲区

    - 窗口是Buffer可视化的分割区域

    - Tab可以组织窗口位一个工作区

    #### Buffer

    #####Buffer-什么是缓冲区?

    - vim打开一个文件后会加载文件内容到缓冲区

    - 之后的修改都是针对内存着的缓冲区,并不会直接保存到文件

    - 直到我们执行:w(write)的时候才会把修改内容写入到文件里

    ##### Buffer切换

    - 使用:ls会列举当前缓冲区,然后使用:b n跳的第n个缓冲区

    - :bpre :bnext :bfirst :blast

    - 或者用:b buffer_name加上tab补全来跳转

    #### Window窗口

    窗口是可视化的分割区域

    - 一个缓冲区可以分割成多个窗口,每个窗口也可以打开不同缓冲区

    - <Ctrl+w>s水平分割,<Ctrl+w>v垂直分割。或者:sp和:vs

    - 每个窗口可以继续无限分割

    |命令|用途|

    |---|---|

    |<Ctrl-w>w|在窗口键来回切换|

    |h|切换到左边窗口|

    |j|切换到下边窗口|

    |k|切换到上边窗口|

    |l|切换到右边窗口|

    大写时可以移动窗口

    #### Tab(标签页)将窗口分组

    Tab是可以容纳一系列窗口的容器(:h tabpage)

    - vim 的Tab和其他编辑器不太一样,可以想象成Linux的虚拟桌面

    - 比如一个Tab全用来编辑Python文件,一个Tab全是HTML文件

    - 相比窗口,Tab一般用的比较少,Tab太多,管理起来也太麻烦

    查看全部
    2 采集 收起 来源:Vim 多文件操作

    2021-05-21

  • ## vim如何搜索替换

    ### vim替换命令

    substitute命令允许我们查找并且替换掉文本,并且支持正则表达式

    - `:[range]s[ubstiute]/{pattern}/{string}/[flags]`

    - range表示范围比如:10,20表示10-20行,%表示全部

    - pattern要替换的模式,string是替换后的文本

    #### 替换标志位

    flags有几个常用的标志

    - g(global)表示全局范围内执行

    - c(confirm)表示确认,可以确认或者拒绝

    - n(number)报告匹配到的次数而不替换,可以用来查询匹配次数

    查看全部
  • ## Vim快速增产改查

    ### Vim增加字符

    - 进入插入模式

    - 使用a/i/o进入插入模式

    ### Vim快速删除

    如何快速删除一个字符或者单词?

    - Vim在Normal模式下使用x快速删除一个字符

    - 使用d(delete)配合文本对象快速删除一个单词daw(d around word),diw(删除一行,不包括空白字符)

    - dd删除一行,`dt(`快速删除括号里的内容

    - d$快速删除到行尾,d0快速删除到行首

    - d和x都可以搭配数字来执行多次

    - 使用v可以选择删除

    ### Vim快速修改

    - 常用有三个,r(replace),c(change),s(substitute)

    - Normal模式下使用r可以替换一个字符。s替换并进入插入模式

    - R不断替换,Esc退出,S删除整行并进入插入模式

    - 使用c配合文本对象,我们可以快速修改,cw删除单词插入,ct"删除引号中的内容

    ### Vim查询

    - 使用/或者?进行前向或者反向搜索

    - 使用n/N跳转到下一个或上一个匹配

    - 使用*或者#进行当前单词的前向和后项匹配

    查看全部
  • 使用a/i/o进入插入模式;

    ctrl+h 删除上一个字符

    ctrl+w 删除上一个单词

    ctrl+u 删除 当前行

    使用 ctrl+c代替Esc(但是可能会中断某些插件),所以推荐使用 ctrl+[

    gi 快速跳转到最后一次编辑的地方并进入插入模式

    查看全部
  • 1. 输入模式下快速纠错(终端下也有类似的快捷键) • ctrl+h 删除上一个字符
 • ctrl+w 删除上一个单词
 • ctrl+u 删除当前行
 • ctrl+a (终端) 快速移动到开头
 • ctrl+e (终端)快速移动到结尾
 • ctrl+f (终端)光标后移
 • ctrl+b (终端)光标迁移
 2. 快速切换 insert 和 normal 模式
     insert -> normal: ctrl+c 或者 ctrl+[     gi: normal 模式切换到 insert 模式,且到上次编辑的地方
    查看全部
  • 1. 输入模式下快速纠错(终端下也有类似的快捷键)

    • ctrl+h 删除上一个字符

    • ctrl+w 删除上一个单词

    • ctrl+u 删除当前行

    • ctrl+a (终端) 快速移动到开头

    • ctrl+e (终端)快速移动到结尾

    • ctrl+f (终端)光标后移

    • ctrl+b (终端)光标迁移

    2. 快速切换 insert 和 normal 模式

        insert -> normal: ctrl+c 或者 ctrl+[

        gi: normal 模式切换到 insert 模式,且到上次编辑的地方


    查看全部
  • i 在当前光标前插入

    a 在当前光标后面插入

    o 在当前光标的下一行插入

    I 在当前行的第一个插入

    A 在当前行的后面插入

    O 在当前行的上面插入


    查看全部
  • dw 删除单词光标及之后的

    daw 删除单词包括之后的空格

    diw  删除单词

     dt

    r 替换一个字符 R 一直替换

    c aw 带空格 iw不带空格 并insert

    s 删除当前字符并insert    S 删除当前行并insert

    f 行内查找 并跳转

    / 全文查找  n下一个 N上一个

    * 当前单词的下一个  # 当前单词的上一个

    查看全部
  • w W    : next word

    e E      : the end of next word

     b B     : back 

    f{}    t{}     ; next  ' last

    H 屏幕开头

    M 屏幕中间 

    L 屏幕结尾

    G gg

    zz

    查看全部
  • 这里安装IndentLine需要注意一下,如果当前使用的vim在编译时不包含conceal这个feature,则IndentLine这个插件无法使用,具体参考 

    https://github.com/Yggdroot/indentLine/issues/203#issuecomment-302397103

    我目前找到,貌似需要使用neovim(老师使用的就是这种,所以这里可以成功显示缩进的线),或者使用macvim(我使用这种,brew install macvim 后,在~/.bash_profile中加入 alias vim = ‘mvim -v -f’),具体参考以下SO:

    https://stackoverflow.com/questions/51300345/vim-how-to-let-vim-support-conceal-on-macos

    查看全部
  • vim快速删除

    http://img1.sycdn.imooc.com//5e20ebf000017db017000782.jpg

    查看全部
  • vim的文本对象(text object)

        [number]<command>[text object]

        number表示次数,command是命令, d(elete), c(hange), y(ank)

        text object是要操作的文本对象, 比如单词w,句子s,段落p

        主要使用的有iw, inner word, 如果使用viw,那么v进入选择模式,iw选择当前单词

        aw 表示around word,不但会选中当前单词,还会包含当前单词之后的空格。

    查看全部
  • normal模式下:

    • vim增加字符

      a/i/o A/I/O

    • vim快速删除

      x快速删除一个字符

      d可以配合文本对象快速删除一个单词


      dw删除整个单词包括空格

      daw删除整个单词包括空格

      diw不包括空格

      dd删除一行

      dt) 删除直到)的内容

      di)可以删除整个括号内的内容

      数字加命令表示多次执行

    • vim快速修改

            r(replace)替换一个字符

            s(substitute)替换并进入插入模式

            c(change)和d的用法差不多

    • vim查询

      使用/或者?进行前向或者反向搜索

      使用n/N跳转到下一个或者上一个匹配

      使用*或者#进行当前单词的前向和后向匹配




    查看全部

举报

0/150
提交
取消
课程须知
1、了解 Linux 系统的常见操作。 2、知道如何安装 Vim。
老师告诉你能学到什么?
1、Vim 编辑器的基础操作 2、使用 Vim 编辑器的奇淫技巧 3、Vim 编辑器中常见的概念 4、如何配置 Vim 编辑器 5、如何安装和使用常见的 Vim 插件 6、使用Vim 开源配置

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!