neovim 键位映射

这篇具有很好参考价值的文章主要介绍了neovim 键位映射。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

neovim 键位映射

neovim的键位映射是指将键盘上的一组按键绑定到vim 插件的某一个功能。

7 种模式

官方文档原文:

There are seven sets of mappings

For Normal mode: When typing commands.

For Visual mode: When typing commands while the Visual area is highlighted.

For Select mode: like Visual mode but typing text replaces the selection.

For Operator-pending mode: When an operator is pending (after “d”, “y”, “c”, etc.). See below: omap-info.

For Insert mode. These are also used in Replace mode.

For Command-line mode: When entering a “:” or “/” command.

For Terminal mode: When typing in a :terminal buffer.

  1. 正常模式,也是打开文件后的默认模式。在此模式下,可以执行vim的基本操作。其他的任意模式均可以通过esc键回退到正常模式。
  2. 可视模式,在正常模式执行v命令选中对应的文本,进入此模式。
  3. 选择模式,和可视模式类似,也是通过v命令先选中文本,然后可以对选中的文本进行替换。
  4. 追加操作符模式,在正常模式执行完"d", “y”, "c"等操作后可以追加一个操作符。
  5. 插入模式,在正常模式执行 “a”, “i”, "o"等命令后对文本进行操作。
  6. 命令行模式,在正常模式执行 “:”, “/” 命令后进入此模式。
  7. 终端模式,正常模式执行":terminal"命令后进入此模式,此模式模拟进入shell 的操作。通过再进入插入模式,即可执行shell 操作。

11种映射命令

这11种映射命令可以在7种模式中进行键位映射。

COMMANDS MODES
:map :noremap :unmap Normal, Visual, Select, Operator-pending
:nmap :nnoremap :nunmap Normal
:vmap :vnoremap :vunmap Visual and Select
:smap :snoremap :sunmap Select
:xmap :xnoremap :xunmap Visual
:omap :onoremap :ounmap Operator-pending
:map! :noremap! :unmap! Insert and Command-line
:imap :inoremap :iunmap Insert
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
:cmap :cnoremap :cunmap Command-line
:tmap :tnoremap :tunmap Terminal

6种映射参数

6种映射参数如下。

  • <buffer>

    此映射命令在当前buffer中立即生效。

  • <nowait>

    当匹配到输入的字符时立即执行,不再等待可能出现的后续字符。

  • <silent>

    让映射命令静默执行,不在命令行打印回显。

  • <script>

    防止一个功能被多次绑定。

  • <unique>

    防止一个键位组合被多次绑定。

  • <expr>

    可以在{rhs}中使用表达式(函数)。

2种键位映射方案

通过API设置映射键

API定义如下

nvim_set_keymap({mode}, {lhs}, {rhs}, {*opts})
Parameters:
    - {mode} 模式简写
    	"n", "i", "v", "x" for nmap, imap, vmap, xmap
    	"!", "" for :map!, :map
    	"ia", "ca" or "!a" for abbreviation in Insert mode, Cmdline mode, or both
    - {lhs} 要绑定的键位组合
    - {rhs} 要绑定的目标功能
    - {*opts} 支持除了buffer之外的映射参数,此外,还支持 "noremap","desc","callback","replace_keycodes" 等参数

此API的调用方式为,vim.api.nvim_set_keymap()

例子文章来源地址https://www.toymoban.com/news/detail-516366.html

vim.api.nvim_set_keymap(
    "n",
    "<F6>",
    [[<cmd>lua require('cscope_maps').cscope_prompt('s', vim.fn.expand("to find a string"))<cr>]],
    { noremap = true, silent = true }
),

在正常模式将功能键 F6 绑定到 cscope_maps 这个lua 模块的某项功能上。

通过命令设置映射键

{command} {argument} {lhs} {rhs}
	- {command} 11种映射命令
	- {argument} 6种映射参数
	- {lhs} 要绑定的键位组合
	- {rhs} 要绑定的目标功能

特殊键位

标记法 描述
<Nul> 0
<BS> 退格键
<Tab> tab键
<NL> 换行
<CR> <Return> <Enter> 回车
<Esc> esc 键
<Space> 空格键
<lt> 小于号
<Bslash> \
<Bar> |
<Del> delete 键
<CSI> 主要用于检测terminal类型
<EOL> 根据系统不同可以是<CR>, <NL> 或者 <CR> <NL>
<Ignore> 取消字符等待功能
<NOP> no-op: 什么都不做
<Up> <Down> <Left> <Right> 光标上下左右移动键
<S-Up> <S-Down> <S-Left> <S-Right> shift键 + 光标上下左右移动键
<C-Left> <C-Right> ctrl键 + 光标左右移动键
<F1> - <F12> 功能键 F1 到 F12
<S-F1> - <S-F12> shift键 + 功能键 F1 到 F12
<Help> <Undo> <Insert> 帮助、重做、插入键
<Home> <End> home、end 键
<PageUp> <PageDown> 翻页键
<kUp> <kDown> <kLeft> <kRight> 小键盘对应键位
<kHome> <kEnd> <kOrigin> 小键盘对应键位
<kPageUp> <kPageDown> <kDel> 小键盘对应键位
<kPlus> <kMinus> <kMultiply> <kDivide> 小键盘对应键位
<kPoint> <kComma> <kEqual> <kEnter> 小键盘对应键位
<k0> - <k9> 小键盘对应键位
<S-…> shift键 + 任意键
<C-…> ctrl键 + 任意键
<M-…> <A-…> alt键 + 任意键
<D-…> command键 + 任意键

到了这里,关于neovim 键位映射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用C/C++(Win32API)写软件修改键位

    紧接上篇《Windows用注册表修改键盘映射(扫描码)》, 用起来会发现处处不协调,除了需要熟悉新键位以外,最重要的是原本的 快捷键 也被拆散了,如原本都在左下角的 Ctrl+Z/X/C/V 。 所以我们应该在保证快捷键相对位置不变的情况下,修改其他字母的位置,在本专栏中使用

    2024年02月01日
    浏览(22)
  • Neovim for Rust

    之前学习 Rust 一直使用的都是 VScode + rust-analyzer ,最近看到有网友安利 Neovim 于是就试了试,发现确实美观,好用,而且内存占用比较小。我个人很喜欢,也推荐给给大家。 前提:得有个代理,不然大概率会失败,因为需要从 github 上下载插件。 1. 首先配置好终端代理 接下来

    2024年02月08日
    浏览(38)
  • NeoVim 学习笔记

    这篇学习笔记将用于记录本人在学习使用 NeoVim 编辑器过程中所编写的学习心得与代码。该笔记将会存放在 https://github.com/owlman/study_note 项目的 SoftwareTool/DevelopmentTool 目录下,并予以长期维护。 学习基础: 掌握 Linux shell 命令的基本使用。 掌握 Vim 编辑器的基本操作方法。 有

    2024年02月07日
    浏览(19)
  • NEOVIM学习笔记

    GitHub - blogercn/nvim-config: A pretty epic NeoVim setup 一直使用vim,每次到了新公司都要配置半天,而且常常配置失败,很多插件过期不好用。偶然看到别人的NEO VIM,就试着用了一下,感觉还不错。 用来开发和阅读C++代码都十分方便。打开文件夹会自动使用lsp创建索引,可以在函数间

    2024年02月11日
    浏览(23)
  • neovim下进行接口测试,并且登录token自动保存

    neovim下进行接口测试,并且登录token自动保存 最近一段时间最大的乐趣就是用自己配置的neovim写go代码, 现在用go代码写的接口,一开始用curl测试接口,感觉不是很方便。 就尝试能否在neovim发起接口测试。 功夫不负有心人,找到了一个插件rest.nvim。记录下安装和自己定制的

    2024年02月02日
    浏览(34)
  • 如何在Ubuntu上安装最新版本的Neovim并快速配置

    在下面的内容中,我会为你准备一篇CSDN博客文章,介绍如何在Ubuntu上安装最新版本的Neovim,以及如何使用Lazy Neovim进行快速配置。这篇文章旨在帮助那些需要更新Neovim版本以使用最新功能和插件的用户,特别是当Ubuntu的包管理器APT只提供较旧版本时。 在Ubuntu系统上, sudo ap

    2024年03月21日
    浏览(40)
  • 十分钟配置好Neovim go开发环境(其他语言一样)

    这篇文章的目的是为了分享下我自己的 Neovim 配置。 本人是Golang程序员,最开始使用的IDE是 JetBrains Goland 。有一说一这个ide适配度很高,认识的很多人都使用这个。但是它也有几个对我来说的缺点: 内存占用度高,我个人电脑配置不太跟的上 费用较高(DDDD) 去年的时候换了

    2024年02月15日
    浏览(39)
  • LazyVim: 将 Neovim 升级为完整 IDE | 开源日报 No.67

    Stars: 31.5k License: NOASSERTION Curl 是一个命令行工具,用于通过 URL 语法传输数据。 核心优势和关键特点包括: 可在命令行中方便地进行数据传输 支持多种协议 (HTTP、FTP 等) 提供丰富的选项和参数来满足不同需求 Stars: 15.7k License: Apache-2.0 ingress-nginx 是一个使用 NGINX 作为反向代理

    2024年02月04日
    浏览(36)
  • 机械键盘常见键位(配列) 全尺寸键盘(Full-size 104键)、96%键盘(96键)、TKL键盘(Tenkeyless 87键)

    图片转自:https://www.xiaohongshu.com/explore/637a30a90000000010012aec 机械键盘的键位种类比较多,以下是常见的几种键位: 这种键盘包括数字键盘和所有的功能键,通常有104个按键。 这种键盘结构比较紧凑,有数字键盘 这种键盘没有数字键盘,但包括方向键和其他的功能键,通常有

    2024年02月10日
    浏览(26)
  • deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)

    官网下载地址 vmware中记得版本选择是 debian 10.x 64位 然后就是一些确认操作,然后就可以了 再上传这个id_rsa.pub里的文本(即公钥) 输入这行命令以验证是否成功 ssh -T git@github.com 下载 下载地址 也可 wget https://studygolang.com/dl/golang/go1.20.4.linux-amd64.tar.gz 解压 配环境变量 配置GOROOT

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包