为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
玩转Vim 从放弃到爱不释手_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

玩转Vim 从放弃到爱不释手

PegasusWang Python工程师
难度中级
时长 5小时 9分
  • lllll

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

    2019-12-15

  • lllll

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

    2019-12-15

  • vim normal模式下的复制粘贴和insert模式不太一样

    normal 模式:

        noraml模式下复制粘贴使用y(yank)和p(put), 剪贴d和p

        可以使用v(visual)命令选中所要复制的地方,然后使用p粘贴

        yiw复制一个单词,yy复制一行

        

    insert模式下的复制粘贴

        vimrc设置autoindent,可以自动缩进,但粘贴python代码会格式混乱

        这个时候使用:set paste 和:set nopaste解决

    vim不使用单一剪贴板进行剪贴,复制与粘贴,而是多组寄存器

        通过"{register}前缀可以指定寄存器,不指定默认用无名寄存器

        "ayjw复制一个单词到寄存器a中,"bdd删除当前行到寄存器b中。

        除了a-z寄存器,系统剪贴板"+

        使用系统剪贴板,vim里的内容可以与这个系统内的其他共享,但服务器那边只能:set paste和:set nopaste

        :set clipboard=unnamed可以让你直接复制粘贴系统剪贴板内容

        :echo has("clipboard")查看系统是否支持clipboard 0为不支持,1为支持

        :reg 查看寄存器内容

    查看全部
  • 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,不但会选中当前单词,还会包含当前单词之后的空格。

    查看全部
  • 多文件操作相关的概念:

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

        Window是Buffer可视化的分割区域

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

        同一个Buffer的文件,修改一个就会影响到全部

    • Buffer

      vim打开一个文件后会加载文件内容到缓冲区,修改是在缓冲区修改,并不会直接保存到文件,直到执行:w(write)的时候才会把修改内容写入到文件里。

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

      使用:e a.txt可以另外打开一个文件

      :bpre :bnext :bfirst :blast

      :b buffer_name 可以使用tab补全来跳转

    • window窗口

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

      ctrl + w 停一下 按s 水平分割

      ctrl + w 停一下 按v 垂直分割

      或者:sp 和:vs

      切换窗口: ctrl + w 按 w h/j/kl


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

    2019-12-12

  • vim替换命令

        :[range] s[ubstitute]/{pattern}/{string}/[flags]

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

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

    Flags有几个常用的标志

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

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

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

    案例(精准将quack替换为jiao):

    :% s/\<quack\>/jiao/g

    查看全部
  • 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跳转到下一个或者上一个匹配

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




    查看全部
    • normal模式下

            h 左移  j 下移 k 上移 l 右移

            w/W 移到下一个word/WORD开头, e/E下一个word/WORD尾

            b/B 回到上一个word/WORD开头,可以理解为backword

            word指的是以非空白符分割的单词,WORD以空白符分割的单词

            主要使用w和b

    • 行间搜索移动:

      使用f{char}可以移动到char字符上,t移动到char的前一个字符

      ;/,继续搜索下一个/上一个

      大写的F表示反过来搜前面的字符

      0移动到行首,$移动到行尾

    • vim页面移动

      gg/G移动到文件开头/结尾

      ctrl+o 快速返回上次编辑位置

      H/M/L 跳转屏幕开头,中间,结尾(Head, Middle, Lower)

      Ctrl + u, Ctrl + f上下翻页(upward, forward)

      zz把屏幕置为中间

    查看全部
  • 终端命令行或者vim插入模式:

    ctrl + h 删除上一个字符

    ctrl + w 删除上一个单词

    ctrl + u 删除当前行

    在终端下

    ctrl + a 定位到开始

    ctrl + e 定位到结束


    快速切换insert和normal模式

    使用ctrl + [ 代替Esc

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

    查看全部
  • 补全的功能

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

    2019-12-08

  • visual模式

    Normal模式下可以使用v进入visual选择

    使用V选择行

    使用ctrl+v进行方块的选择

    查看全部
  • a append

    i insert

    o open a line below


    A append after line 

    I insert before line 

    O  append a line above

    查看全部
  • jjj lll

    查看全部
  • ffkkf 

    查看全部
  • majutsushi/tagbar

    :TagbarToggle

    lfv89/vi-interestingwords

    <leader>k显示高亮

    <leader>K清除高亮

    查看全部

举报

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

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