在Emacs中,以C-c
开头的键序列按惯例保留给各个用户设置。我认为至少还有一个公约。
Vim的自定义键绑定约定是什么?
答案 0 :(得分:3)
您可以使用以<leader>
键为前缀的命令作为约定,将您自己的个人键盘图与默认键盘图分开。
在.vimrc文件中设置<leader>
键如下:
let mapleader = "_"
然后你可以创建以你设置的领导者为前缀的关键映射:
nnoremap <leader><space> :noh<cr>
有关详细信息,请参阅here
答案 1 :(得分:1)
在Emacs中,我不会说它是一个如此多的会议,而不是一个受欢迎的选择。
在Vim中甚至没有,虽然Ctrl +某些东西或F键很受欢迎,但它并不是一个广泛传播的“惯例”。
许多Vim用户只是在正常模式下使用默认的“字母操作”,他们在文本编辑中完成这些操作,大多数Emacs用户必须依赖于功能。
答案 2 :(得分:1)
默认情况下,反斜杠不执行任何操作,只是映射引导程序的默认值(mapleader和maplocalleader)。这个领导者在插件中使用,我强烈建议只使用附加默认操作的键,但它没有多大帮助。常用键是,
(在相反方向上重复t / T / f / F运动)和_
(向下移动一行,在第一个非空白字符上),您还可以检查哪些你不使用(我,例如,不要使用+
和-
,后者是_
的良好替代品。我不喜欢@ stonesam92的原因是建议不要将mapleader设置为它们,而是将你自己的领导者直接放在你的映射中如下:
,a
,_a
或其他任何内容,而不是<Leader>a
。<Leader>
只计算一次,如果你之后更改了mapleader,那么已经定义的映射不会改变)。<Leader>
是什么。如果您正在编写插件,请始终使用<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
endif