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

玩转Vim 从放弃到爱不释手

难度中级
时长 5小时 9分
学习人数
综合评分9.67
37人评价 查看评价
9.9 内容实用
9.1 简洁易懂
10.0 逻辑清晰
  • 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 开源配置

微信扫码,参与3人拼团

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

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