在Emacs中,按照惯例,以C-c开头的键序列保留给各个用户设置。我认为至少还有一个约定。
Vim对自定义密钥绑定的约定是什么?
发布于 2012-08-03 07:12:21
您可以使用以<leader>键为前缀的命令作为约定,将您自己的单个键值映射与默认键值映射分开。
在.vimrc文件中设置<leader>密钥,如下所示:
let mapleader = "_"然后,您可以创建键映射,这些键映射的前缀是您设置的引线,如下所示:
nnoremap <leader><space> :noh<cr> 有关更多信息,请参阅here
发布于 2012-08-03 07:48:51
在Emacs中,我不会说它是一种约定,而是一种流行的选择。
在Vim中甚至没有这一点,尽管Ctrl+something或F键很流行,但它还远不是一个广泛传播的“约定”。
许多Vim用户只在普通模式下使用默认的“字母操作”,在文本编辑中使用这些操作,这是大多数Emacs用户必须依赖的功能。
发布于 2012-08-03 21:11:44
有一个反斜杠,默认情况下什么也不做,只是映射引导者( mapleader和maplocalleader)的默认值。这个领导者在插件中使用,我强烈建议只留给他们,使用附加了默认操作的键,但用处不是很大。常用的键有, (在相反方向上重复t/T/f/F运动)和_ (在第一个非空白字符上向下移动一行),您还可以检查您不使用的键(例如,不使用+和-,后者是_的良好替代品)。我不像@ set am92建议不要将mapleader设置为它们,而是直接在您的映射中放置您自己的leader,原因如下:
,a、_a或其他内容,而不是<Leader>a.<Leader>只计算一次,如果您后来更改了mapleader,则已经定义的映射将不会更改)。如果您正在编写插件,请始终使用<Leader>,并为用户提供自定义插件的更好方法,两种常见的解决方案是使用全局选项和使用hasmapto
" 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
endifhttps://stackoverflow.com/questions/11786291
复制相似问题