首页 > 其他分享 >【教程】VIM的使用第六章-我的vim我做主,编写vim配置以及映射

【教程】VIM的使用第六章-我的vim我做主,编写vim配置以及映射

时间:2023-09-23 11:07:18浏览次数:45  
标签:插件 映射 递归 VIM vim 设置 Vim

大家好,新的一章要开始了,之前的vim操作大家一定要经常练习,从这章开始之后我们就要更深入的学习vim了,把vim打造成自己想要的样子,做到我的vim我做主! image.png

编写vim配置

什么是vim的配置,vim里有很多的设置,比如:set number设置行号 之前的使用都是在Vim 里临时设置,没法持久化,每次设置很烦 Vimrc提供了一种持久化配置的方式,让我们自定义配置

如何编写自己的Vim配置文件呢? Linux/Unix 下新建一个隐藏文件 vim ~/.vimrc

windows 系统 vim $MYVIMRC,通过环境变量编辑配置文件

Vim配置都包含什么 ?

可以开始编辑vim 配置文件了,但是需要设置什么呢? 常用设置,比如 :set nu设置行号,colorscheme hybrid 设置主题 常用的vim 映射,比如 noremap <leader>w :w<cr> 保存文件 自定义的 vimscript函数(vim 高手)和插件的配置(插件篇会)

首先是常用的 Vim 设置

我们可以把常用的设置写到.vimrc 里避免每次打开 vim 重新设置 比如设置行号 set nu; 设置主题 colorscheme hybird

image.png image.png

image.png

vim中的映射

Vim中的映射比较复杂,源于vim 有多种模式 设置一下leader键let mapleader = “”常用的是逗号或空格 比如用inoremap <leader>w <Esc>:w<cr> 在插入模式保存 Vim中的映射概念稍微复杂,但是非常强大,我们等下单独讲

vim插件

现代化的Vim可以通过插件管理器安装插件 通过插件你可以无限扩充Vim的功能 想要使用插件需要具备一定的 Vim配置知识

vim脚本

Vim 有自己的脚本语言 Vimscript Vim脚本对于Vim高级玩家来说可以实现强大的vim 插件 初学者知道有这个概念就好,vim 脚本是一种简单的脚本语言 可以通过 vimscript 实现更多 vim 的控制,开发自己的插件

深入vim映射 什么是vim映射、

Vim 映射就是把[一个操作]映射到[另一个操作J 如果你不满现在的按键设置?比如 vim本来的命令 或者你想映射一些方便的快捷键 按照你的意愿定制 Vim。[当我按下某些键时,放弃你默认的操作按我的想法去做]

基本映射

基本映射指的是normal模式下的映射,当然还有其他模式的映射 使用 map 就可以实现映射。比如:map -x 然后按-就会删除字符 :map<space> viw 告诉 vim 按下空格的时候选中整个单词 :map <c-d>dd 可以使用 ctrl+d 执行dd 删除一行 取消映射 unmap -

模式映射

Vim 常用模式normal/visual/insert 都可以定义映射 用nmap/vmap/imap定义映射只在normal/visual/insert分别有效 :vmap U把在 visual 模式下选中的文本大小(u/U转换大小写) 想想我们如何在insert 模式下映射ctrl+d 来删除一行?

#可以这样 
:imap <c-d> <Esc> ddi

image.png

递归与非递归映射

map系列命令有递归的风险 如果你安装了一个插件,插件映射了同一个按键的不同行为,有冲突就会有一个失效 想要保证插件映射没有冲突会非常痛苦 解决方案就是使用非递归映射

非递归映射

Vim提供了非递归映射,这些命令不会递归解释 使用*map 对应的nnoremap/vnoremap/inoremap 何时使用递归映射(*map) ?何时使用非递归映射呢?(*nnoremap) [任何]时候你都应该使用非递归映射,拯救自己和插件作者

以上就是本节课的内容大家要多加练习哟~

标签:插件,映射,递归,VIM,vim,设置,Vim
From: https://blog.51cto.com/u_16240159/7576477

相关文章

  • pve系统盘扩容、网络IP设置、端口映射、DHCP服务器
    pve系统盘扩容fdisk/dev/vda输入n然后按几下回车直到提示Createdanewpartition最后输入w退出pvcreate/dev/vda4vgextendpve/dev/vda4vgs #查看可用容量lvresize-r-L+40G/dev/pvelvs  #查看lv卷大小在Datacenter->pve->System->NetworkCreate一个新的Linux......
  • mmap:Python内存映射文件操作
    前言内存映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用户都能很方便的直接访问内存。本篇,将详细介绍Python内存映射库:mmap。mmap(读文件)使用mmap()函数可以创建一个内存映射文件。该函数的第1个......
  • Mybatis 04 一对一,一对多,多对多关联映射
    一对一一个员工对应一个部门实体类emppackagecom.entity;importjava.io.Serializable;importjava.math.BigDecimal;publicclassEmpVoimplementsSerializable{privateIntegerempno;privateStringename;privateStringjob;privateInte......
  • Tangram Tutorial 1:映射小鼠皮层 MOp 的 snRNAseq 数据到 Slide-seq2 数据
    写在前面学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。推荐先按顺序阅读往期内容:文献篇:1.文献阅读:使用Tangram进行空间解析单细胞转录组的深度学习和比对:::block-1目......
  • 我的neovim配置
    init.vim"Vimwithallenhancements"文件管理器,我想试一下rangersyntaxenablesyntaxonletmapleader=""setnumber "显示行号setrelativenumber "显示相对行号sethlsearch "搜索结果高亮setautoindent "自动缩进setsmartindent ......
  • 从内核世界透视 mmap 内存映射的本质(原理篇)
    本文基于内核5.4版本源码讨论之前有不少读者给笔者留言,希望笔者写一篇文章介绍下mmap内存映射相关的知识体系,之所以迟迟没有动笔,是因为mmap这个系统调用看上去简单,实际上并不简单,可以说是非常复杂的一个系统调用。如果想要给大家把mmap背后的技术本质,正确地,清晰地还原......
  • 如何解决docker端口映射不能访问的问题?
    在企业数字化转型过程中,Docker作为一种常用的容器技术,一个非常强大的功能就是通过端口映射将容器内的服务发布到外部。然而,有时候我们会遇到无法从外部访问容器内部文件的问题,导致服务无法正常运行。下面将对这个问题进行深入剖析并给出解决方案。一、【docker端口映射不能正常访......
  • vim插件使用python编写+AXI非对齐传输如何发送+verdi配置搜索顺序+verible和verilator
    vim插件使用python编写虽然vim有自己的一套语法格式,但是学习成本放着呢,语言那么多,啥都学哪学的过来嘛。不过vim确实是支持python的,但是是python2,而不是python3,因此语法上的一些问题要兼容下。这个是官方手册,正确而可靠的部分。https://vimdoc.sourceforge.net/htmldoc/if_pyth......
  • 深入探讨Spring Data JDBC的自定义映射
    前言SpringDataJDBC是一个轻量级的JDBC框架,它提供了一种简单的方式来访问关系型数据库。在使用SpringDataJDBC时,我们通常会使用默认的映射策略来将Java对象映射到数据库表中的行。但是,有时候我们需要自定义映射策略来满足特定的需求。本文将深入探讨SpringDataJDBC的自定义......
  • pandas-自定义函数映射
    自定义函数目录自定义函数自定义操作map()自定义操作apply()对指定轴的操作,聚合,统计对每个数值进行转换自定义操作applymap()参考资料自定义操作map()map,用于Series实现每个值得处理map()是一个Series的函数,map()将一个自定义函数应用于Series结构中的每个元素(elements)......