开发利器(四):Vim使用备忘

Vim

[TOC]

在这里插入图片描述

在这里插入图片描述

BASIC
普通模式/一般模式
  • vim打开一个文档就进入一般模式,该模式是默认模式,一般模式可用按钮
  • 操作符 + 动作 = 操作 ,常用的操作符见上图中操作
    • dl 删除一个字符,其中d是操作符,l是动作,整合在一起表示删除一个字符
    • gg=G 表示自动对齐缩进整个文件,这里先用 gg 跳到文件开头,然后用 =G 自动缩进从光标位置到文件结尾的所有内容,其中=表示缩进符,G是动作
  • 常用操作
    • 删除一个字符 : dl
    • 删除一个单词: 光标放在单词的任一部分,然后输入daw(可以理解为delete a word,容易记忆) 如果需要继续删除,输入 .
    • 删除整个段落dap
    • 自动缩进整个文件gg=G
    • 字符查找: f 行内字符查找,F 行内反向字符查找 。重复f/F(下一个)按上一个(回退)按
    • 光标移动G将光标移动至最后一行,gg则是第一行,nG移动至特定行,n表示数字,w/W下一单词,b/B上一个单词
插入模式/编辑模式
  • 在一般模式时按下i, I, o, O, a, A, r, R等任意一个字母后就会进入编辑模式,按下Esc或Ctrl+[退回到一般模式
  • 插入普通模式, 该模式下,可以让我们执行一次普通模式命令,执行完后马上就又返回到插入模式。在插入模式下按Ctrl+o可以切换到插入普通模式
可视模式
  • 可视模式用于选中一块文本区域并在其上操作,其中区域的选择通过动作(移动光标类命令)来实现,而操作通过操作类命令A(附加),c(修改),y(拷贝)等来实现
  • 有三种方法可进入可视模式,分别对应不同的模式
    • v激活面向字符的可视模式(移动方向键就选中一个字符)
    • V激活面向行的可视模式
    • CTRL+v激活面向列块的可视模式
  • gv可以重选上次的高亮选取, o 可以切换高亮选取的活动端
  • 示例参考《VIM实用技巧》 技巧25和26(P43-46)
命令行模式/指令列表模式
  • 在一般模式当中输入/ ? : 中任意一个就进入命令行模式
  • Ex命令
    • 在命令行模式中执行的命令又被称作Ex命令
    • 重复上次Ex命令键入 @:
  • 运行shell命令:
    • 执行一次性命令, :!{cmd}
    • 执行多条命令,:shell , 输入exit退出
  • 在指定范围上执行普通模式命令
    • 语法为[range]:normal 普通模式命令 , 例 :%normal A; 符号%代表整个文件,该命令告诉Vim在每行文件的结尾都添加一个分号。
    • 当在可视模式中高亮选中后,在进入命令行模式,会自动显示'<,'>可以将其理解为选中的范围,而后输入的命令都表示只对该区域进行操作
  • 命令行窗口:q进入命令行窗口,:q或是Enter(会执行)退出命令行窗口
  • 常用Ex命令
    • 查找: /pattern 从光标开始出查找pattern
    • 替换并提醒 :1,$s/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要取代。查找过程中 N 代表下一个,n表示上一个。也可参考《Vim实用技巧》P9的技巧5
  • 用法技巧
    • 按Tab键会补全命令
    • 回溯命令,在按下:后,再按上下方向键,可查看历史命令
    • 批量运行Ex命令: 将命令写在一个.vim文件中,然后执行 :source fileName.vim
    • 一种常用的技巧是 选用可视模式选定一片区域,然后利用对选定区域进行替换操作,参见《VIM实用技巧》P52
VIM寄存器
  • VIM提供多组寄存器来实现删除、复制、粘贴操作
  • 无名寄存器, 即缺省情况下使用的寄存器
  • 有名寄存器, 即"a-"z
  • "+寄存器,与系统剪切板等效,可以从VIM复制文本到外部程序,从外部程序复制文本到VIM内部可以通过"+p命令实现
  • 示例(别忘了双引号),如果我们想把当前单词复制到寄存器 a 中,可执行 "ayiw,或者,可以用 "bdd,把当前整行文本剪切至寄存器 b 中。在此之后,我们既可以输入 "ap 粘贴来自寄存器 a 的单词,也可使用 "bp 命令粘贴来自寄存器 b的一整行文本,两者互不干扰。
编辑多个文件
  • 打开多个文件来编辑,vi file1 file2 file3… ,:ls命令会列出所有内存中的缓冲区的列表
  • 文件之间的转换: 当编辑多个文件时,从这个文件转到下一个文件,使用这个 ex 命令:n 回到先前的文件使用:N
  • 在文件间跳转:就像在网页浏览时,点击后退按钮会返回到之前的网页,Ctrl+O想后退按钮会跳转到之前的文件,与之相反 Ctrl+I则会跳转到之后的文件
  • 从一个文件复制内容到另一个文件,复制—切换文件—粘贴
创建分割窗口
  • <Ctrl+W> + S 可以水平切分此窗口
  • <Ctrl+W> + V 可以垂直切分窗口
  • 窗口间的切换见《VIM实用技巧》P84
通过ctags建立索引
  • 通过ctags可以跳转到关键字的定义处
  • 使用方法ctags 源文件 如ctags *.cpp , 然后将光标移动到函数名或变量名处,然后按下 Ctrl + [即跳转到定义处
通过quickfix浏览编译错误信息和grep查找的信息
  • 通过quickfix可以在编译后直接跳转至错误信息处
  • 使用方法: , 首先需要有Makefile文件,然后使用命令vim -u NONE -N 源文件 ,然后在VIM内运行make即可,按下Enter后会跳转至第一条错误信息处,然后cnext``cprev等命令可以在错误信息处跳转,更详细的错误浏览列表见《VIM使用技巧》 P249技巧106
  • 通过quickfix还可以快速查看grep命令的信息, 使用方法与上述类似,只是命令改为grep [PATTREN] FILE
自动补全
  • Ctrl+nCtrl+p都会触发自动补全
  • 触发后,Ctrl+n会使用补全列表中的下一个匹配项,Ctrl+p会使用补全列表中的上一个匹配项
VIM配置
  • :set tabstop = 2 设置制表符所占的列数为2
  • 显示行号 :set nu 显示行号 , :set nonu 取消行号
使用习惯
  • 停顿的时候退出插入模式
常用技巧
  • 查找并手动替换:content 替换为copy: /content --> * -->cwcopy<Esc> --> n -->. #cw 命令会删除从光标位置到单词结尾间的字符,并进入插入模式
  • . 命令: 重复上次修改(注意:是修改,移动等均不算修改,且只能是普通模式下命令做的修改),修改可以是一处,也可以是多处修改,可以将 .理解为宏
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值