首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vim的几种模式mode和按键映射map

vim里最基本的map用法也就是 :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a 当然,常用的Ctrl,Shift,Alt自然也是支持的。...但是map命令远不只这一种,在不同的模式下,同一组按键可以被映射到不同的组合上。...其实很好理解,也就是如果键a被映射成了b,c又被映射成了a,如果映射是递归的,那么c就被映射成了b。 :map a b :map c a 对于c效果等同于 :map c b 默认的map就是递归的。...如果遇到[nore]这种前缀,比如:noremap,就表示这种map是非递归的。 unmap unmap后面跟着一个按键组合,表示删除这个映射。...”b”吧 :p 命令行模式下建一个mapping cmap b c 命令行模式下, 按下b,会出来一个a 如果vim的按键已经被你弄得乱七八糟了,试着用unmap和mapclear清除这些mapping

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vim 3 vimrc

    文章目录 什么是 vimrc 基本修改 UI 相关配置 编码相关配置 文件相关配置 编辑器相关配置 按键映射 “ 键 我的 vimrc 小结 什么是 vimrc vimrc 是 Vim 的配置文件,...按键映射 Vim 中有大量的快捷键(按键映射), 除此之外, 你还可以配置自己的按键映射. 使用 :map 相关的命令可以定义自己的快捷键. map 命令的本质是将一个按键序列转化为另一个按键序列....: 假设你将 按键 a 映射成了 按键 b, 又把按键 b 映射成了 命令x, 当使用递归命令映射的情况下, 你按 a 键, 最终会执行 命令x, 如果使用非递归命令映射, 则你按 a 键, 会执行 b...需要注意的是, 键的按键映射可以将多个按键映射成另一个序列或指令, 例如: " 将 no 映射成命令 :nohosearch nmap no :...kk 映射成 Esc), 这会浪费一些时间, 甚至影响你原本的意图, 所以多个键映射尽量不要出现”同序的相同字符”, 改为 nn, no 就不会有问题了.

    3.1K30

    从零开始配置 vim(4)——键盘映射的一些技巧

    我们学了快捷键的映射,完全可以定义两个快捷键用于快速打开和应用配置文件。在完成这个事情的过程中需要了解绍一个变量和一个命令。...s 或者 source 比较好记,各位小伙伴可以先使用其他方便记忆的按键。...但是不管哪种方式都存在比较难按的情况,手指需要移开较大距离我们可以使用快捷键映射的方式,将 jk 映射为退出键(这里就可以使用上面定义的快捷键快速的打开配置文件了) vim.api.nvim_set_keymap...又或者有 vim 高手指出,要学会更快速的移动光标应该摒弃 j、k、l、h 这些按键,但是明明知道用w或者 f 能更快速的移动光标,但是有时候就是控制不住手,手不自觉的就按到这些键上面去了,就像我在使用...虽然开始你可能不太习惯,但是一旦形成记忆,你会跟以前一样得心应手。 我们可以使用 来定义一个键失效, 例如我可以使用 :inoremap 。

    1.1K10

    Python在生物信息学中的应用:在字典中将键映射到多个值上

    我们想要一个能将键(key)映射到多个值的字典(即所谓的一键多值字典[multidict])。 解决方案 字典是一种关联容器,每个键都映射到一个单独的值上。...如果想让键映射到多个值,需要将这多个值保存到另一个容器(列表、集合、字典等)中。...如果你想保持元素的插入顺序可以使用列表, 如果想去掉重复元素就使用集合(并且不关心元素的顺序问题)。 你可以很方便地使用 collections 模块中的 defaultdict 来构造这样的字典。..., defaultdict 会自动为将要访问的键(即使目前字典中并不存在这样的键)创建映射实体。...因为每次调用都得创建一个新的初始值的实例(例子程序中的空列表 [] )。 讨论 一般来说,构建一个多值映射字典是很容易的。但是如果试着自己对第一个值做初始化操作,就会变得很杂乱。

    15910

    用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器的特质

    也许你不在乎,这对你来说很酷,但对我而言,这确实是很可怕的体验。 另外,非模态的现代编辑器通常使用箭头键来移动光标,但这些箭头键要么在你键盘很远的位置,要么就没有单独的按键,而要用组合键来代替。...宏可以通过指定按键来实现更强大的编辑控制,q关键字是触发键(例如qa会将之后的按键动作注册到a宏上),然后使用@a重播该宏即可。...我尝试了 Vim 集成,但无法正确地与 bépo 键盘映射搭配使用。我无法重新映射某些运动和 / 或模式开关,结果只能遗憾地禁用它。...vim 集成不够好 / 无法正常工作(我尝试将 h 映射到 c,请记住我用的是 bépo 键盘布局)。总之就是没法用。...atom 的优点 对我来说,atom 的杀手级功能是它能告诉你,你正在按下的按键绑定了(或清除了)哪些命令。很容易调试键绑定问题,我希望有更多的编辑器有同样的体验。

    1.8K10

    Linux 下更改大写锁定键为ESC

    Caps_Lock 大写锁定键,一般用的很少。但是它的位置又十分容易按到,而 esc 用的频率比较高,但是,位置却很尴尬。尤其在 vim 或一些终端之中,所以我们可以将键位进行更换。...一般有两种方法进行替换,一种使用软件内的自定义键位映射,一种直接将系统键位进行替换。 第一种方式比较灵活,但是软件使用频率长会和操作系统的设定搞混。 第二种方法在更换电脑后可能会不适应。...当然在 vim 中,我们可以定义其他的按键来代替 esc ,并不需要替换 capslock。也是因为在 vim 中,无法表示 键,所以无法替换。...NoSymbol Caps_Lock keycode 9 = Escape NoSymbol Escape add Lock = Caps_Lock 再执行 xmodmap ~/.xmodmap 即可 在 vim...中进行替换 inoremap jj `^ # 在插入模式将 jj 按键映射为 `esc`,并返回到上次修改的地方.

    3.6K30

    Karabiner-Elements 之 介绍和使用(part 1)

    Karabiner 的简单映射能做的远不止这些,除了支持 Control/Cmd/Shift/Option 等这些修饰键,还有以下 macOS 系统不支持的功能: 支持所有的按键的映射,可以精确区分左右侧的功能键...,比如 left control/ right control 可以映射到不同的键位上,支持所有字母、数字、f1-fn、媒体键、方向键 甚至支持鼠标按键以及各类侧键(button4,button5)的映射...再比如,习惯了在 Vim 中使用 hjkl 的朋友,想在其他非 Vim 环境下也使用类似功能的话,也可以使用 Karabiner 间接的实现,需要下面几步: 把 Caps lock 键映射到 hyper...常用的 VIM 导航键的设置,包括: hyper + h/j/k/l 方向导航键,每次前后移动一个字符,上下移动一行 hyper + y/p 向后/前移动一个 word,这里和 Vim 的体验并不同,只是我个人的习惯...所谓连续按键,比如 o,a 就是按完o之后马上按a,就可以触发打开 Xcode 的命令 以上问题的思路,都会考虑到可能会使用到多个不同的键盘的case,并保证体验是一致的,不会出现换个键盘,还需要重新熟悉键位的尴尬情况

    8.5K30

    从零开始配置 vim(3)—— 键盘映射进阶

    严格意义上来说,快捷键的绑定应该是键盘映射,将某些键映射为另一些键。 在上篇我们介绍了基本的键盘映射操作,知道了如何 :map、:imap、:vmap、:nmap这些命令来映射键盘快捷键。...,普通模式下的很多按键都有其特殊用途,而且还大多挺常用的,想来想去不怎么使用,而且位置好按的也就 、H、L、D 这些了,将他们进行映射,映射到常用功能,减轻我们的按键负担是再好不过了。...当然我们可以手工这么做,每次需要多个按键的时候的就手动写上 - 或者其他的。但是后期我发现 - 并不容易按到,我觉得 或者 ,更容易按到,要进行修改,那么修改的量就太大了。...vim 中有一个被称之为 leader 键的东西来解决这个问题,我们可以提前定义一个 leader ,在映射的时候使用 来代表对应的前缀键。...至于在定义快捷键的时候是使用 leader键还是使用多个普通键,看具体场景和各位小伙伴的使用习惯了。这里我就不给建议了,一切以方便好按为主。

    1.5K30

    vivim编辑器必知必会

    vim编辑器的三种模式:一般模式、编辑模式和命令行模式。 在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。...[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。 0或功能键[Home]:移动到这一行的最前面字符处。 $或功能键[End]:移动到这一行的最后面字符处。...:n:编辑下一个文件; :N:编辑上一个文件; :files:列出目前vim打开的所有文件。 【3】多窗口功能 可以在一个窗口中打开多个文件。...其他的按键功能: Ctrl+w+j:先按下Ctrl不放,再按下w后放开所有的按键,再按下j(或向下箭头键),则光标可以移到下方的窗口; Ctrl+w+k:同上,不过光表移到上面的窗口; Ctrl+...【4】vim环境设置 需要注意的是,vim会将i我们的以前的行为都记录下来,以方便我们操作。它保存在文件:~/.viminfo中。

    94100

    论vim使用之瞎扯淡

    的配置文件位于~/.vimrc,文件使用VimScript语法来编写 参考阮一峰的Vim 配置入门 快捷键配置 映射模式 定义映射模式时,我们可以使用nmap、imap、vmap来定义映射仅在normal...dd删除这一行 k向上移动到新增的一行 然而实际执行中,当你按下dd时,文件会无限刷出空行直到你按下,这是因为这一命令中jddk中的dd也按照按键映射解读了。...使用Leader键 vim中的组合键是通过按键序列来执行的,例如qd这个操作,你只需要先按下q再按下d就好了,而不需要qd一起按。 由于Vim已经占用了大量的按键,导致我们配置快捷键时处处受限。...由于有些按键在vim的非insert模式中几乎是永远不会用到的(例如逗号,),因此我们可以在快捷键的命令前统一加上这个键,方便好记又不会冲突。这个键就称为Leader键。...然后对前文中我们定义的映射dd做一些修改: nnoremap dd Ojddk 这下我们就可以通过,dd的组合键来调用映射了。

    66930

    Linux命令之vim三种模式

    ,并且将光标移动到指定行 vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词 vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件 三、命令模式 注意:该模式是打开文件的第一个看到的模式...2、复制操作 ①复制光标所在行 按键:yy 粘贴:在想要粘贴的地方按下p键 ②以光标所在行为准(包含当前行),向下复制指定的行数 按键:数字yy ③可视化复制 按键:ctrl + v(可视块)...或V(可视行)或v(可视),然后按下↑↓← →方向键来选中需要复制的区块,按下y键进行复制,最后按下p键粘贴 3、剪切/删除 ①剪切/删除光标所在行 按键:dd (删除之后下一行上移) 注意:dd严格意义上说是剪切命令...结果:就是出现显示根目录的别表,按下enter键回到打开的文件 当外部命令执行结束之后按下任意键回到vim编辑器打开的内容 ⑥搜索/查找 输入:“/关键词” 例如:我想在passwd文件中搜索“sbin...现在可以通过别名机制来解决这个问题,可以自己创造出cls命令 别名机制依靠一个别名映射文件:~/.bashrc vim ~/.bashrc ?

    3.6K20

    适用于键盘流、懒人、强迫症患者以及码农的究极Mac使用指南

    1.这里我默认大家都知道如何使用这个软件所以就直接上我的配置了如下图:在图中大家可以看见我映射了各种快捷键,这里要注意一个问题就是,每个配置触发按键的方式都要选择 is pressed,这样最终才能实现和普通按键一样的效果...注意这里并不需要每个文件夹都定义一个快捷键,所有文件夹都可以用一个快捷键解决。这个在入门文章中也有实现方案。 2.定义一些自动化脚本,多个脚本也可以使用一个快捷键进行触发。...因为我们前面已经将这些操作映射给 control + 相同的键 了,所以这得给它们占个坑,不能修改,好在option 键在本体系中使用场景很少 2.音乐的全局控制按键,这个的话其实是我个人的喜好,大家可以自己看...我接下来就简单截图说几个实现 1.这里说一下为什么一个快捷键可以跳转多个文件,其实当你按下一个快捷键的时候,如果有多个脚本响应的话,软件会让你继续输入脚本名字匹配。...这里我就分享一下我最近几个月才学习到的妙招吧: 1.你只要记住一个快捷键,就能像使用命令行一样进行各种操作:记住这个东西他的名字叫Find Action,你可以在快捷键映射里面找到它,接下来你只需要自然而然的记住各种命令就行了

    1.9K30

    从零开始配置vim(19)——终端配置

    ,但是这里我们希望在终端模式中能够移动光标,所以这里还是使用快捷键映射的方式来解决这个问题 vim.api.nvim_set_keymap("t", "", "", {noremap...我们在绑定快捷键时对应的真实按键会原封不同的在vim中进行输入,如果在插入模式中使用 :这种形式,就相当于在当前buffer中输入这些内容,也就是说我们无法在插入模式中使用普通模式那种格式的命令。...这里我们引入一个新的指令 它只能用于快捷键映射的场合,表示执行后面对应的命令。...另外在命令中我们无法再使用像之前在普通模式下使用的那些诸如 之类的移动光标的快捷键,这里我们使用 wincmd l来代替之前快捷键的功能。...,但是我还不知道该如何使用它同时打开多个窗口,这应该算是它的一个缺陷吧,如果有这个应用场景可以考虑使用 tmux加入工作流中。

    1.3K20

    TW洞见 | 浅谈快捷键

    回想那个时候其实是没有快捷键这么个东西的,连换行这种事情都不是通过按键而是通过手动去移动卷纸的那个机械轴来完成的。 ?...随着软件的发展,一个软件能接受的命令动辄就是成百上千的,如何用区区只有100个左右的按键来映射就变成了一个需要解决的问题。...既然我们在按下一个或多个按键的时候,可能是输入也可能是发送命令,这本身不就是存在这个多个状态么?所以在Vim里就干脆直接加入了模式(又称模态)。...Emacs(江湖人送外号:神之编辑器),区别于Vim,默认采用了另一套更容易被大众所接受的快捷键体系来解决快捷键设计的问题,也就是通过快捷键的组合来解决。...这是两种快捷键体系设计思路,但是对于我们有什么用呢?随着Vim和Emacs多年的圣战和两者神一般的地位。这两套快捷键体系潜移默化的影响着之后众多的软件的快捷键设计。

    75290

    vim 使用教程

    的配置文件位于~/.vimrc,文件使用VimScript语法来编写 参考阮一峰的Vim 配置入门 快捷键配置 映射模式 定义映射模式时,我们可以使用nmap、imap、vmap来定义映射仅在normal...dd删除这一行 k向上移动到新增的一行 然而实际执行中,当你按下dd时,文件会无限刷出空行直到你按下,这是因为这一命令中jddk中的dd也按照按键映射解读了。...使用Leader键 vim中的组合键是通过按键序列来执行的,例如qd这个操作,你只需要先按下q再按下d就好了,而不需要qd一起按。 由于Vim已经占用了大量的按键,导致我们配置快捷键时处处受限。...由于有些按键在vim的非insert模式中几乎是永远不会用到的(例如逗号,),因此我们可以在快捷键的命令前统一加上这个键,方便好记又不会冲突。这个键就称为Leader键。...然后对前文中我们定义的映射dd做一些修改: nnoremap dd Ojddk 这下我们就可以通过,dd的组合键来调用映射了。

    3K40

    Linux系统VIM编辑器管理

    1.所有的 Unix Like 系统都会内建 VIM 文本编辑器,其他的文书编辑器则不一定会存在. 2.很多个别软件的编辑接口都会主动呼叫 VIM (例如未来会谈到的 crontab, visudo,...edquota 等指令) 3.VIM 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 4.因为VIM程序简单,并可自定义按键,从而编辑速度相当快速,在程序设计领域大有作为...VI/VIM模式按键 ◆命令模式◆ 以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容...拓展功能 ◆VIM快捷命令◆ 实例1:使用VIM配置快捷键,当输入Ctrl+p快捷键时,执行在行首添加#号....实例3:使用VIM配置快捷键,当输入ab快捷键时,将myweb替换成mkdirs.com.

    1.4K20

    【Linux入门】Vim文本编辑器

    命令格式及示例: # 格式 vim 文件名 # 示例 vim 1.txt 2、编辑文本 进入vim编辑器,默认是正常模式,此时无法输入文本内容,按下i键进入插入模式,此时编辑器左下角会显示“ -- 插入...3、保存文件 编辑完成后,按Esc键退出插入模式,回到正常模式。在正常模式下,按下:键进入命令模式,再输入wq,此时编辑器左下角会显示“ :wq”,然后按Enter键保存并退出 vim 编辑器。...在这个模式下,可以使用键盘快捷键来移动光标、删除文本等,但无法输入内容。 插入模式(Insert mode):在这个模式下,你可以向文本中添加内容。在正常模式下,按下i键即可进入插入模式。...vim 按键说明 在上述的示例中,使用了 i : wq 等按键和命令完成了编辑、保存、退出操作。vim 是一个功能强大的文本编辑器,它的按键功能非常丰富,需要掌握一些常用的按键及命令的使用方法。...按键 功能 n 向下查找下一个 N 向上查找上一个 保存和退出 命令 功能 : 在普通模式下输入:进入命令模式 :w 保存当前编辑的文件 :q 退出 vim 编辑器(如有未保存的修改会提示) :q!

    77931

    如何使用Vim编写和调试Python代码

    就不用费劲心思思考 该映射哪个没被绑定过的键了 vim配置文件中的nnoremap和inoremap有什么区别 一个是在普通模式(normal mode)下生效的映射,一个是在插入模式(insert...这样可以在不同模式下使用同一个按键产生不同的效果。 noremap 和 map 的区别是,被映射的序列不会再被递归映射。 nnoremap是什么意思?...——简单来说,nnoremap将一个组合快捷键映射为另一个快捷键。一开始的n,指的是在Vim的正常模式(Normal Mode)下,而不是可视模式下重新映射。...这样可以省掉一个按键操作,也不必去记忆缓冲区的名字。...ycm_complete_in_comments = 1 let g:ycm_confirm_extra_conf = 0 let g:ycm_key_list_select_completion = ['', ''] " 映射按键

    4K10
    领券