《Vim实用技巧》 学习笔记

第1章 Vim解决问题的方式

  • A;<Esc>:在当前行行尾添加一个;
  • A命令相当于$a。$命令让光标跳到行尾
  • . 可以重复上一个命令
  • 普通模式下 f{char}:跳到当前行的该字符,按下 ; 跳到下一个  按下 , 反向查找。
  • 普通模式下不同命令,重复和回退方式:
    目的操作重复回退
    做出一个修改{edit}.u
    行内查找下一指定字符f{char}/t{char};,
    行内查找上一指定字符F{char}/T{char};,
    文档中查找下一匹配项/pattern<CR>nN
    文档中查找上一匹配项?pattern<CR>nN
    执行替换:s/target/replacement&u
    执行一系列修改qx{changes}q@xu

     

  • 普通模式下 * 命令可用来查找当前光标所在单词。

 

第2章 普通模式

  • Vim从进入插入模式开始,到返回普通模式为止,期间所做的任何操作,都被当成一次修改。而撤销操作一次撤销一个修改。
  • db命令可以删除从光标起始到单词开头的内容。
  • b命令可以移动光标到单词的开头;dw命令删除整个单词(光标位于单词开头时)。
  • daw命令可以直接删除一个单词。
  • ctrl+a命令和ctrl+x命令可以分别对数字进行加一和减一操作。在前面添加数字可以控制加一和减一次数。
  • gU将一行变成大写,gUaw将一个单词变成大写。说明vim的命令是可以很灵活地组合的。
  • gu转换为小写,g~反转大小写。
  • c修改,d删除,y复制到寄存器。
  • >添加缩进;<减小缩进;=自动缩进。

 

第3章 插入模式

  • 除退格键外的删除方式:
    ctrl+h 删除前一字符
    ctrl+w 删除前一单词
    ctrl+u 删除至行首
  • ctrl+o可以进入插入-普通模式,即让你可以执行一个普通模式的命令,然后马上自动回到插入模式。
  • 普通模式中的zz命令,可以让当前行处于屏幕中间,方便观察上下文。
  • 插入模式下输入:ctrl+r = 可以进入表达式寄存器,输入相应计算表达式后回车,计算结果会输入到当前位置。
  • 普通模式下,光标移动到某个字符然后按下ga,可以看其字符编码。

 

第4章 可视模式

  • 进入可视模式:v进入“面向字符的可视模式”;shift+v进入“面向行的可视模式”;ctrl+v进入“面向列块的可视模式”。
  • o可以选定高亮区的开始位置,e是高亮区的结束位置。
  • 可视模式下执行一次命令后会自动退出。

 

第5章 命令行模式

  • 按下 : 键时,vim会切换到命令行模式。按Esc键退出。
  • :tabnew 新建一个文本tab。
  • :2,5p  打印2到5行的内容
  • .符号可以代表当前行,$符号可以代表最后一行
  • :/pattern1/,/pattern2/p 通过模式匹配指定行的开始和结束
  • :[range]copy{address}  将range范围内的东西复制到address行。copy可以简写为co或者t
  • :[range]move{address} 和copy类似,不过是移动(也就是剪切粘帖)。move可以简写为m 
  • VG,可以高亮选择当前行到最后行区域,这时候按下: 可以自动对当前高亮每一行处理
  •  在命令行模式下通过 normal 普通模式命令可以对每一行执行该普通模式。
  • 给每一行末尾加入;的例子:
    #方法1:繁琐版
    A;<Esc>   #给第一行末尾加入;
    jVG       #跳到下一行,高亮选择剩余行并进入可视模式
    :'<,'>normal . #对高亮选中区域执行一个普通模式命令
    
    #方法2:简练版
    :normal A;

     

第6章 管理多个文件

  • vim可以读取编辑文件,并保存修改。但实际上当我们编辑一个文件时,编辑的是文件在内存中的映像,Vim中称为“缓冲区”。
  • vim可以同时在多个缓冲区上工作。
  • vim 后面跟多个文件时,可以同时打开多个文件。
  • :ls 查看当前缓冲区列表
  • :bnext 切换到列表中下一个缓冲区;:bprev切换到上一个缓冲区。
    :bfirst和:blast,切换到缓冲区的开头和结尾。
  • 实际上缓冲区功能比较缺乏灵活性,如果有多个文件一起打开工作的需要,把工作区划分成多个分割窗口、标签页、参数列表可能是更好的选择。
  • :args 可以看到打开文件时候传递给vim的文件。
    :next和:prev命令,可以用来切换参数列表中的文件。
    :argdo 可以在列表中每个缓冲区上执行同一条命令。
  • 如果一个缓冲区内容被修改,但没保存到文件,然后你要切到其他缓冲区,这时候要在切换命令后加!,强制切换。这时候缓冲区被标记为。
    如果想保存修改可以通过:write命令保存,如果想放弃可以通过:edit! 命令重新读入文件。
    如果想退出vim,放弃所有缓冲区修改可以执行:qall! ;如果退出并将所有缓冲区修改保存到文件,可以执行:wall! 。
  • ctrl+w s水平切分窗口;ctrl+w v垂直切分窗口。
  • 切分窗口后,可以通过:edit {filename}载入新文件,不然是和原来切分出来的同一缓冲区。也可以通过:[v]sp[lit] {filename}实现两步合一。
  • ctrl+w W窗口间循环切换;ctrl+w h切到左边;ctrl+w j切到下边;ctrl+w k切到上边;ctrl+w l切到右边。
  • :close关闭当前窗口  :only关闭除当前窗口外的其他所有窗口。

 

第8章 用动作命令在文档中移动

  • 通过home row移动光标:
    h左移一列 l右移一列 j下移一行 k上移一行
  • w 移动到下一个单词的开头
    b 反向移动到当前单词/上一单词开头
    e 移动到当前单词/下一单词结尾
    ge 反向移动到上一单词结尾
  • cw 删除当前单词并进入插入模式。

 

第10章 复制与粘帖

  • xp剪切和粘帖一个字符  ddp剪切和粘帖一行
  • 默认命令操作存放到无名寄存器。可以通过在命令前添加 "{register}  前缀指定寄存器。例子:
    "ayiw        #把当前单词复制到寄存器a
    "bdd         #把当前行剪切到寄存器b中
  • 其他常用寄存器:
    "" 无名寄存器
    "0  复制用寄存器 使用复制命令时,复制到无名寄存器和该寄存器
    "a ~ "z  26个有名寄存器
    "_  黑洞寄存器,剪切一些内容,然后想抛弃而不是覆盖无名寄存器,可以用

 

第11章 宏

  • 可以把一系列命令录制成宏保存到寄存器中。q{register} 开始,再次按下q结束。
    录制完成后,通过@{register} 来执行指定寄存器内容。

 

第12章 按模式匹配及按原义匹配

  • 通过命令 :set ignorecase 忽略大小写查找。
    也可以通过 :set smartcase 设置 :没有大写字母时,忽略大小写查找;有大写字母时严格查找。
  • 在搜索前面加入\v 可以不用反斜杠转义特殊符号,例如:
    /\v#([0-9a-fA-F]{6} | [0-9a-fA-F]{3})

 

第13章 查找

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值