我想学习使用vim。事情很简单:我不知道它的任何快捷方式。所以我不想费心学习它们,我想为每个命令定义我自己的命令!
由于
修改:请...我能得到一个真实的答案,而不是“你确定吗?”
编辑2 :主要原因是我使用的是 dvorak键盘,所以它不像是将短信映射到字母I看...这很难:p。第二,我希望超高效 ......就像将上,下,左,右键映射到“j,k,l,;”一样,它可以让我编辑一个文件动我的手。最后,当我输入错误的密钥我讨厌,我不知道vim(或任何其他工具)做了什么,因为它是一个快捷方式/命令,但我不知道它做了什么,因为我还不知道。为什么学习快捷方式,当你可以创造自己的,你可以更好地记住...我是法国人所以有些字母不会映射到我的脑海里,就像英语使用者一样。
答案 0 :(得分:4)
在wikia上有Using Vim with the Dvorak keyboard layout的vim wiki上有一个条目,并且SuperUser上有一个帖子discusses whether or not it's worth trying to use Dvorak with vim
两者中的情绪(对wiki条目的评论和SU对话的评论/答案)似乎表明Dvorak和vim并没有真正融合在一起,我倾向于同意。
然而,除了hjkl之外,从助记符的角度看,大多数命令仍然有意义,不是吗?因为使用Dvorak的唯一真正原因是为了提高你的速度,为什么你会在物理上查看按键以确定要击中什么?
答案 1 :(得分:3)
我强烈建议不要重新定义命令。学习所提供的命令会更好,如果你发现了一些不存在的东西,你可以添加自定义命令。
如果你不喜欢这些命令,为什么不尝试不同的编辑器?
答案 2 :(得分:2)
可以仅清除使用*map
定义的快捷方式,内置命令可以覆盖,但不可清除。如果您需要禁用特定命令,则必须执行noremap <Key> <Nop>
,以下代码应该全部禁用它们(但请注意它是覆盖,而不是删除任何内容):
function s:hsescape(str)
return substitute(substitute(substitute(substitute(a:str,
\ ' ', '<Space>', 'g'),
\ '|', '<Bar>', 'g'),
\ "\n", '<CR>', 'g'),
\'\c^<\%(buffer\|silent\|expr\|special\)\@=', '<LT>', '')
endfunction
for s:mode in ['n', 'x', 'o']
for s:char in map(range(0, 0x7F), 'nr2char(v:val)')
execute s:mode.'noremap '.s:hsescape(s:char).' <Nop>'
endfor
endfor
for s:mode in ['s', 'i', 'c']
for s:char in map(range(0, 0x3F), 'nr2char(v:val)')
execute s:mode.'noremap '.s:hsescape(s:char).' <Nop>'
endfor
endfor
请注意,紧接着应该定义一些映射的代码(或删除一些<Nop>
个映射)或者你将使vim变得无用。
答案 3 :(得分:0)
我从ZyX的答案中获取了引用,并创建了一个用于覆盖的vimrc设置 - 并尝试记录过程和函数。希望它对其他人有帮助: