~/.vimrc

零、批量注释与反注释

  • :sp / :vsp       横向 / 纵向拆分窗口
  • :e            打开新文件
  • zc:拆叠代码 / zo:展开代码
    • set foldmethod=marker "代码拆叠模式:zf10G(从当前行拆叠到第10行)、10zf+(从当前行位置向下拆叠10行)、10zf-(从当前行向上拆叠10行)、zf%(折叠到对应的配对括号处,大括号、中括号、小括号等)、zd(删除拆叠)

注释:

  1. ctrl + v 进入中视化模式,选中要注释的行
  2. shift + i 进入 insert 模式,输入注释标识符,如 "//"
  3. 按 ESC

反注释:

  1. ctrl + v 进入中视化模式,选中要反注释的行
  2. shift + i 进入 insert 模式,删除注释标识符
  3. 按 ESC

一、vim 系统快捷键

  • <C-O>  跳回上一个位置
  • <C-I>  跳到下一个位置

二、vim 自定义快捷键

map 类别:

  • 用于普通模式: 输入命令时。
  • 用于可视模式: 可视区域高亮并输入命令时。
  • 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。
  • 用于插入模式: 也用于替换模式。
  • 用于命令行模式: 输入 ":" 或 "/" 命令时。

  • Normal Mode  也就是最一般的普通模式,默认进入vim之后,处于这种模式。
  • Visual Mode  一般译作可视模式,在这种模式下选定一些字符、行、多列;在普通模式下,可以按v进入。
  • Insert Mode  插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。
  • Select Mode  选择模式。用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。
  • Command-Line  命令行模式,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令。

Map 前缀:

  • nore  表示非递归。递归的映射:如果键a被映射成了b,c又被映射成了a,如果映射是递归的,那么c就被映射成了b。
  • n  表示在普通模式下生效
  • v  表示在可视模式下生效
  • i  表示在插入模式下生效
  • c  表示在命令行模式下生效

普通模式映射:

  • map  命令格式::map {lhs} {rhs}  其含义是,在:map作用的模式中把键系列 {lhs} 映射为 {rhs},{rhs}可进行映射扫描,也就是可递归映射。
  • noremap  :noremap和:map命令相对,作用模式和命令格式都相同,只不过不允许再对{rhs}进行映射扫描,也就是{lhs}定义后的映射就是{rhs}的键序列,不会再对{rhs}键序列重新解释扫描。
  • unmap  :unmap是对应取消:map绑定的{lhs},作用模式相同,命令格式 :unmap {lhs}。
  • mapclear  :mapclear时对应取消所有:map绑定的。

仅用于普通模式:

  • :nmap是:map的普通模式板,也就是说其绑定的键只作用于普通模式。
  • :nnorempa和:nmap的关系和:noremap和:map的关系一样,只是:nmap的非递归版
  • :nunmap和:nmap的关系和:unmap和:map的关系一样,取消:nmap的绑定。
  • :nmapclear是对应取消所有:map绑定。

键表:

  • <k0> - <k9> 小键盘 0 到 9
  • <S-...> Shift+键
  • <C-...> Control+键
  • <M-...> Alt+键 或 meta+键
  • <A-...> 同 <M-...>
  • <Esc> Escape 键
  • <Up> 光标上移键
  • <Space> 插入空格
  • <Tab> 插入Tab
  • <CR> 等于<Enter>

<Leader>和mapleader变量:

mapleader变量对所有map映射命令起效,它的作用是将参数<leader>替换成mapleader变量的值,比如:
  :map <Leader>A oanother line<Esc>
如果mapleader变量没有设置,则用默认的反斜杠代替,因此这个映射等效于:
  :map \A oanother line<Esc>
意思时输入\A键时,在下一行输入another line并返回到普通模式。
如果设置了mapleader变量,比如:
  let mapleader = ","
那么就等效于:
  :map ,A oanother line<Esc>

最新文章

  1. Github上传代码菜鸟超详细教程【转】
  2. 【uTenux实验】写在开始实验之前
  3. SHELL脚本攻略(学习笔记)--2.5 tr
  4. Oracle 安装 INS-30131错误。
  5. 【iOS】iOS消息推送机制的实现
  6. C++11之sizeof
  7. android开发之路01
  8. 译文: async/await SynchronizationContext 上下文问题
  9. thinkphp3.23整合phpexcel
  10. SMBUS(IIC)总线
  11. mysql中查看字符集的cmd指令
  12. “var arr = []; ”和 “var arr = {};” 的区别
  13. jsp pageEncoding属性详解
  14. matplotlib箱线图与柱状图比较
  15. kodexplorer免费网盘安装教程
  16. hive学习05 参数设置
  17. Nestjs 链接mysql
  18. 数据结构之二分查找——Java语言实现
  19. 各种Oracle索引类型介绍
  20. RabbitMQ笔记四:Binding,Queue,Message概念

热门文章

  1. 转载! 一图读懂 SignalR
  2. 1.0搭建 Node.js 开发环境
  3. 20. Cookie 和 Session
  4. Jenkins 搭建篇
  5. Django框架(二十四)—— Django rest_framework-视图组件
  6. Eureka 系列(03)Spring Cloud 自动装配原理
  7. Java中创建String的两道面试题及详解
  8. android html布局界面
  9. Node.js中的fs文件系统
  10. CXF异常:No operation was found with the name