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

玩转Vim 从放弃到爱不释手

PegasusWang Python工程师
难度中级
时长 5小时 9分
  • 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把屏幕置为中间

    :syntax on 语法高亮

    () 在句子间移动

    :help( 查看帮助

    easy-motion 插件移动

    normal 移动的快捷方式:

    w/W: 移动到下一个word/WORD 开头

    e/E: 移动到下一个 word/WORD 结尾

    b/B: 移动到上一个 word/WORD 开头  (backword)


    行间搜索移动

    f{char}: 当前光标往行后搜索字符, 分号(;)下一个找到的字符,逗号(,)上一个找到的字符

    F{char}: 当前光标往前搜索字符

    0: 移动到行首第一个字符

    ^: 移动到第一个非空白字符

    $: 移动到行尾

    g_: 移动到行尾非空白字符


    页面移动

    gg: 文件开头

    G: 文件结尾

    H: 屏幕的开头(Head)

    M: 屏幕的中间(Middle)

    L: 屏幕的结尾(Lower)

    crtl+u: 上翻页(upword)

    ctrl+f: 下翻页(forword)

    zz: 屏幕置为中间



    移动命令。

    w  : next word head

    e   : next word end

    b   : previous word head

    f{char}   : find a char in the line

        ;  :  to find the next same char

    F{char}   :  do f in reverse


    0   : move to the head of the row

    $   : move to the end of the row

    gg : move to the head

    G   :  move to the end

    ^o   : go back the privious

    H/M/L : move the head / middle /lower of file

    ^u   : pageup

    ^f   : pagedown

    zz   : set the screen to the middle

    查看全部
  • 使用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 模式,且到上次编辑的地方

    ^h 删除上个字符

    ^w 删除上个单词

    ^u 删除至开头

    ^[  Esc

    Shell

        ^a  跳转到开头

        ^e 跳转到结尾

    查看全部
  • 1、sp、vs可进行分屏编辑;2、% s/str1/str2/[g]  可进行文本[全局]替换;3、normal模式下,v/V进行可视化(光标/整行选中)操作;4、y命令可以复制选中的块,p可以粘贴复制的块。

    vim4种模式

    Normal普通模式(浏览)

        Esc插入模式回到普通模式

        普通模式下进行各种命令操作和移动

        大部分情况下,使用的是浏览


    Insert插入模式(编辑)

        a/i/o 光标进入插入模式

        A/I/O 行进入插入模式


    Command命令模式(操作)

        Normal模式下:进入命令模式

        :q退出 :w保存 

        :vs(vertical split)垂直左右分屏 :sp(split) 水平上下分屏

        :set nu 设置行号

        :% s/java/python/g  全部替换java->python


    Visual可视模式(选择)

        Nomal模式下进入Visual模式

        v选择字符

        V选择行

        ctrl+v块状选择


    Vim编辑模式:Nomal模式(ESC)Insert模式(a,i,o,A,I,O)Command模式Visual模式(v,V)

    进入vim默认是normal模式

    还有 : cmd命令模式 和 v(visual)可视化模式

    命令模式:

    保存  :w

    退出  :q

    保存并退出   :wq

    纵向分屏  :vs

    横向分屏  :sp

    全局替换   :% s/foo/bar/g      (foo被替换的,bar替换后的)

    设置显示行号  :set nu

    Visual模式:

    normal模式下使用 v 进入 visual 模式选择

    使用 V 选择行

    使用 ctrl+v 进行块状选择

    :vs 纵向分屏

    :sp 横向分屏

    :set nu 显示行号

    :% s/[original]/[new]/g 全局替换[original]为[new]

    进入可视化模式:

    v 进入字符选择

    V 进入行选择

    C-v 进入块选择

    查看全部
  • a append

    i insert

    o open a line below

    A append after line 

    I insert before line 

    O  append a line above

    a:当前字符的后一个位置插入

    i:当前字符的前一个位置插入

    o:当前编辑位置下面新起一行

    A:在行最后位置插入

    I:  在行最前的位置插入

    O:在当前编辑位置的上面新起一行

    :w:保存

    :wq:保存并退出(w and q)

    i   insert  在当前字符前面插入
    a  append    在当前字符后面插入
    o  open a line blow 在当前行的下一行插入

    查看全部
  • ## 2-13 裸的vim

    - 很多初学者Vim基本命令都不熟就开始找一些复杂的强大配置

    - 不利于你熟悉Vim,一旦出问题了你还不知道怎么修复

    - 建议初学者还是从裸的Vim开始学习,有些场景比如服务器或者容器上我们没法配置Vim

    学之前,先用对打字指法和盲打

    - 编辑代码,脑子- -般比手快,盲打有利于跟上你的大脑速度

    - 裸的Vim也有很多强大功能和使用方式,本章你应该学到了不少

    - 学会了用Vim ,你可以在你的IDE.上安装Vim插件,几乎所有流行的编辑器和IDE工具都支持Vim插件

    查看全部
  • ## 2-12 给vimhr个配色

    ### vim更换配色

    - 使用:colorscheme显示当前主题配色,默认是default

    - 用:colorscheme <ctrl+d>可以显示所有配色

    - 中意的配色后,用:colorscheme 配色名就可以修改配色

    查看全部
  • ## 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-9 vim复制粘贴与寄存器的使用

    ### vim在Normal模式复制粘贴

    - Normal模式下复制粘贴分别使用y(yank)和p(put),剪切d和p

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

    - 配合文本对象:比如顺遂yiw复制一个单词,yy复制一

    ### Insert模式下的复制粘贴

    - 和其他文本编辑器差不多,但粘贴代码有个坑

    - 在vimrc中设置了autoindent,粘贴Python代码缩进错乱

    - 这个时候需要使用`:set paste`和`:setnopaste`解决

    ### 什么是vim的寄存器

    - vim里操作的是寄存器而不是系统剪切版,这和其他编辑器不同

    - 默认使用d删除或者y复制的内容都放到了“无名寄存器”

    - 用x删除一个字符放到无名寄存器,然后p粘贴,可以调换俩字符

    ### 深入寄存器(register)

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

    - 比如使用`"ayiw`复制一个单词到寄存器a中,'bdd删除当前行到寄存器b中

    - :reg a查看寄存器a中的内容

    - "a p粘贴a寄存器中的内容

    ### 其他常见寄存器

    除了有名的寄存器a-z,vim中还有一些其他常见寄存器

    - 复制专用寄存器`"0`使用y复制的文本同时会被考呗到复制寄存器0

    - 系统剪切版`"+`可以复制到系统剪切版

    - 其他寄存器,比如`"%`当前文件名,`".`上次插入的文本

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




    查看全部
  • ## 2-8 什么是vim的text object

    ### Text Object(文本对象)

    - vim里文本也有对象的概念,比如一个单词,一段句子,一个段落

    - 很多其他编辑器经常只能操作单个字符来修改文本,比较低效

    - 通过操作文本对象来修改要比只操作单字符高效

    ### 文本对象操作方式

    - `[number]<command>[text object]`

    - number 表示次数,command是命令,d(delete),c(change),y(yank)

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

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

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

    查看全部
  • :imap <c-d> <Esc>ddi  此映射可在插入模式下使用 ctrl+d 实现快速删除

      

              

    命令行对应映射 cnoremap 

    <cr> 指代回车键,也可写作<Enter>

    let mapleader=","   inoremap <leader>w <Esc>:w<cr> 可以将<Leader> 键自定义映射为“,”,同时利用 <Leader> 来创建自定义映射项

    查看全部
    0 采集 收起 来源:Vim 映射迷人眼

    2021-05-15

  • 配置映射插件vim脚本

     :source ~/.vimrc 重新加载vimrc文件,使文件配置生效

    查看全部

举报

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

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