首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vim自定义快捷键约定?

Vim自定义快捷键约定?
EN

Stack Overflow用户
提问于 2012-08-03 05:47:17
回答 3查看 396关注 0票数 1

在Emacs中,按照惯例,以C-c开头的键序列保留给各个用户设置。我认为至少还有一个约定。

Vim对自定义密钥绑定的约定是什么?

EN

回答 3

Stack Overflow用户

发布于 2012-08-03 07:12:21

您可以使用以<leader>键为前缀的命令作为约定,将您自己的单个键值映射与默认键值映射分开。

在.vimrc文件中设置<leader>密钥,如下所示:

代码语言:javascript
复制
let mapleader = "_"

然后,您可以创建键映射,这些键映射的前缀是您设置的引线,如下所示:

代码语言:javascript
复制
nnoremap <leader><space> :noh<cr> 

有关更多信息,请参阅here

票数 3
EN

Stack Overflow用户

发布于 2012-08-03 07:48:51

在Emacs中,我不会说它是一种约定,而是一种流行的选择。

在Vim中甚至没有这一点,尽管Ctrl+something或F键很流行,但它还远不是一个广泛传播的“约定”。

许多Vim用户只在普通模式下使用默认的“字母操作”,在文本编辑中使用这些操作,这是大多数Emacs用户必须依赖的功能。

票数 1
EN

Stack Overflow用户

发布于 2012-08-03 21:11:44

有一个反斜杠,默认情况下什么也不做,只是映射引导者( mapleader和maplocalleader)的默认值。这个领导者在插件中使用,我强烈建议只留给他们,使用附加了默认操作的键,但用处不是很大。常用的键有, (在相反方向上重复t/T/f/F运动)和_ (在第一个非空白字符上向下移动一行),您还可以检查您不使用的键(例如,不使用+-,后者是_的良好替代品)。我不像@ set am92建议不要将mapleader设置为它们,而是直接在您的映射中放置您自己的leader,原因如下:

  1. It使得插件可能会添加与您自己的映射冲突的映射。
  2. 您习惯于键入,a_a或其他内容,而不是<Leader>a.
  3. It,这会使映射命令根据它们在vimrc中的位置而不同地工作(<Leader>只计算一次,如果您后来更改了mapleader,则已经定义的映射将不会更改)。
  4. It混淆了读取:您必须始终记住,什么是<代码>D17。<代码>H218<代码>G219

如果您正在编写插件,请始终使用<Leader>,并为用户提供自定义插件的更好方法,两种常见的解决方案是使用全局选项和使用hasmapto

代码语言:javascript
复制
" Global option
if !exists('g:plugin_mapping_key')
    let g:plugin_mapping_key='<Leader>a'
endif
execute 'nnoremap '.g:plugin_mapping_key.' :DoSomething<CR>'

" hasmapto
nnoremap <Plug>PluginDoSomething :DoSomething<CR>
if !hasmapto('<Plug>PluginDoSomething', 'n', 0)
    nmap <Leader>a <Plug>PluginDoSomething
endif
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11786291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档