通过前面的学习,我们已经知道了如何进行键盘映射,并且也知道了在任何场合应该使用非递归版本的映射。这篇再介绍一些使用关于快捷键映射的内容作为收尾

快速编辑 vimrc 文件

通过前面掌握的知识,相信各位小伙伴已经在配置文件中加入了不少配置了。不知道小伙伴们加配置是怎么加的呢?是不是先进入配置文件,编辑完了之后退出,再重新进入看看配置是否生效呢了?又或者在使用vim编程的过程中觉得需要加入某个属性或者特性。这个时候是不是要先退出当前编辑的文件,或者聪明一点的小伙伴知道使用 :vs 命令新建一个窗口打开配置文件。但是在编辑完了配置文件,想让它生效还是得先退出vim,然后再进入。如果配置出错,就得不断的退出进入。这个过程是很耽误编程的。有没有想过怎么改进呢?

我们学了快捷键的映射,完全可以定义两个快捷键用于快速打开和应用配置文件。在完成这个事情的过程中需要了解绍一个变量和一个命令。

要介绍的变量是 $MYVIMRC 它代表当前vim使用的配置文件的路径,针对neovim来说,如果你使用init.vim作为配置文件,那么它的值就是 ~/.config/nvim/init.vim。如果你用 init.lua 作为配置文件,那么它的值就是 ~/.config/nvim/init.lua 。只要你的配置写的位置是正确的,使用它总能对应上

要介绍的命令就是 :source 命令。熟悉 shell 的应该对这个命令不陌生,shell 中,使用 source 来使对应的配置文件生效。vim中它也是使vim的配置文件生效。两个命令的用法也一样,都是跟对应配置文件的路径。使用它配合 $MYVIMRC 能做到在不退出vim的过程中重新加载配置

有了这两个东东,我们就可以定义出快捷键了

vim.api.nvim_set_keymap("n", "<leader>ee", ":vs $MYVIMRC<CR>", {silent = true, noremap = true})
vim.api.nvim_set_keymap("n", "<leader>ss", ":source $MYVIMRC<CR>:q<CR>", {silent = true, noremap = true})

它的效果如下

这里我使用 ee 来打开主要考虑到 e 代表的是 edits 代表 s 或者 source 比较好记,各位小伙伴可以先使用其他方便记忆的按键。如果在写完配置之后,不想按 :w 来保存,完全可以将 <leader>ss 映射为 :wq<CR>:source $MYVIMRC<CR>。将保存和启用一并使用。我自己是属于那种稍微改一点就要按 :w 来保存的人。我这里就只需要启用就行。在保存并启用之后,我这里又用了 :q 来关闭之前打开的新窗口。现在你就又可以专注于当前的编程任务了。

学会使用新映射的快捷键

从插入模式回到普通模式有这么几种方式 <esc><Ctrl+[><Ctrl +c>。但是不管哪种方式都存在比较难按的情况,手指需要移开较大距离我们可以使用快捷键映射的方式,将 jk 映射为退出键(这里就可以使用上面定义的快捷键快速的打开配置文件了)

vim.api.nvim_set_keymap("i", "jk", "<esc>", {silent = true, noremap = true})



这个时候我们似乎用 <esc>习惯了,已经形成肌肉记忆了,只要一想到退回到普通模式,就下意识的使用 <esc>,我们辛辛苦苦分析建立的更高效的快捷键完全没有用处。

又或者有 vim 高手指出,要学会更快速的移动光标应该摒弃 j、k、l、h 这些按键,但是明明知道用w或者 f 能更快速的移动光标,但是有时候就是控制不住手,手不自觉的就按到这些键上面去了,就像我在使用 notepad 时总是无意识的输入 <esc>:wq 来保存退出一样。

该如何处理这种情况呢?一种有效的办法是将它们都设置为无效键,当你下意识的使用到这些被无效的键时发现它没任何作用,此时你会意识到自己将它们定义为了无效键,同时你也会想起来该使用之前定义的那些更高效的替代品。虽然开始你可能不太习惯,但是一旦形成记忆,你会跟以前一样得心应手。

我们可以使用 <nop> 来定义一个键失效, 例如我可以使用 :inoremap <esc> <nop>。定义之后在插入模式下就无法使用 <esc> 来退回到普通模式了。

lua 中就可以使用如下语句来取消 esc

vim.api.nvim_set_keymap("i", "<esc>", "<nop>", {silent = true, noremap = true})

我们可以看到,在写下那段配置之后,<esc> 已经无法从插入模式退回到普通模式了,只有使用 jk 才能退回。

从零开始配置 vim(4)——键盘映射的一些技巧的更多相关文章

  1. VIM键盘映射 (Map)~转载

    VIM键盘映射 (Map) 设置键盘映射 使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来.例如使用以下命令,可以通过F5键将单词用花括号括起来: :map <F5> i{e ...

  2. VIM键盘映射 (Map)

    http://www.pythonclub.org/linux/vim/map VIM键盘映射 (Map) 设置键盘映射 使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来.例如使用以下命 ...

  3. Mac 下升级 vim 并自己配置 vim 的过程

    1.升级 vim 我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim -- ...

  4. mac 键盘映射 karabiner

    mac 键盘映射 karabiner 今天在vim编辑的时候觉得用mac的方向键有点麻烦 需要移动我的小右手,然后就搜个映射方案. 百度出来了 karabiner. 官网 安装什么的就不说了, 安完了 ...

  5. Linux下修改键盘映射

    一篇关于修改键盘映射比较靠谱的文章,收藏一下! 原文地址:http://www.07net01.com/2016/04/1436249.html --------------------------- ...

  6. AI应用开发实战 - 从零开始配置环境

    AI应用开发实战 - 从零开始配置环境 与本篇配套的视频教程请访问:https://www.bilibili.com/video/av24421492/ 建议和反馈,请发送到 https://gith ...

  7. Centos配置网络和主机映射

    目录 虚拟机网络的三种配置方式 配置虚拟机IP 主机映射问题 配置虚拟机的主机名 虚拟机远程登录 虚拟机网络的三种配置方式 桥接模式:当前虚拟机与主机在同一个局域网下,同一个局域网下的所有电脑都可以访 ...

  8. Mac 配置 vim

    Mac 配置 vim 安装 vim 7.4 cd ~ hg clone https://code.google.com/p/vim/ cd vim ./configure --with-feature ...

  9. mac配置vim-go

    基本的设置信息(参考网址:http://hessian.cn/p/1026.html): "还是配置/.vimrc文件. syn on "语法支持 set laststatus=2 ...

  10. 《转》IIS中配置通配符应用程序映射

    本文转载自龚赤兵 电子工业出版社,如给您带来不便之处,请联系博主. eb开发新体验:ASP.NET 3.5 MVC架构与实战>第13章网站部署,本章主要实现了如何在IIS 6.0中一步一步地成功 ...

随机推荐

  1. Solon 生态插件清单

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...

  2. PPT 呼吸感

    任何元素都应该保持一定的距离,留出可以"呼吸"的空间 呼吸感 怎么营造 不要让内容超出/接近边框 类似的元素摆放在一起 控制 行间距/字间距 行间距:1.3.字间距:1.0 :行间 ...

  3. Lambda 表达式各种用法,你都会了吗

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 前言 Lambda表达式是 Java 8 中引入的最有影响力的功能之一.它们通过允许简洁而优雅地创建匿名函数来实现 Jav ...

  4. Mac 配置 OpenCV C++ 版本

    今天紀錄一下如何在 Mac 上安裝 OpenCV for C++ 開發環境 使用 Brew 安装,pkgconfig 检测,2023.5.17 Mac x86 ( Intel ) , Mac M1 ( ...

  5. AtCoder Beginner Contest 218 A~D

    比赛链接:Here A - Weather Forecas 水题,判断 \(s[n - 1] = o\) 的话输出 YES B - qwerty 题意:给出 \((1,2,...,26)\) 的某个全 ...

  6. 第七届蓝桥杯大赛个人赛省赛(软件类)B组

    3.凑算式     B      DEFA + --- + ------- = 10     C      GHI     (如果显示有问题,可以参见[图1.jpg])   这个算式中A~I代表1~9 ...

  7. RLHF · PbRL | 速通 ICLR 2024 RLHF

    检索关键词:ICLR 2024.reinforcement learning.preference.human feedback. https://openreview.net/search?term ...

  8. git或gitee 提交代码到远程仓库

    本文为博主原创,未经允许不得转载: 1. 选中远程仓库,并fork 指定的项目到自己的私仓: fork 之后,打开我的仓库便能看到刚刚fork 的项目. 2. clone 项目代码到自己电脑的本地仓库 ...

  9. SQL—排序专用窗口函数

    下面介绍三种用于进行排序的专用窗口函数: 1.RANK()     在计算排序时,若存在相同位次,会跳过之后的位次.     例如,有3条排在第1位时,排序为:1,1,1,4······ 2.DENS ...

  10. Linux 查看office文件及pdf文件

    1.查看pdf文件 evince PdfFile_name 查看office文件 openoffice.org 文件名 & // 打开或者编辑.doc.odt等文本文档命令 openoffic ...