我尝试通过将以下行添加到 .vimrc
将
map <Alt-D> <C-D>
此映射是否有错误?
最佳答案
对于 Mac 用户:要映射 ALT+hjkl,请使用生成的真实字符(找出在 INSERT 模式下使用该组合的字符),例如使用我的键盘:
<ALT+j> ==> ª
<ALT+k> ==> º
等等。 找到解决方案here在 StackOverflow 上。
我用它通过 ALT+k\j 上下移动行,在我的 .vimrc 上使用它:
nnoremap ª :m .+1<CR>==
nnoremap º :m .-2<CR>==
inoremap ª <Esc>:m .+1<CR>==gi
inoremap º <Esc>:m .-2<CR>==gi
vnoremap ª :m '>+1<CR>gv=gv
vnoremap º :m '<-2<CR>gv=gv
如所解释的here .
希望它有用,享受 Vim :)
ADDENDUM BY Dylan_Larkin (2019):要在 Mac 上运行,必须在终端-> 中关闭“使用选项作为元键”首选项->键盘
更新 09/2021
我最近从“英式”键盘切换到“ABC - 扩展”,并注意到此配置无法按预期工作。
作为替代方案,我映射了 <up>
和<down>
键执行相同的操作(我猜,这也解决了这个问题的其他答案中解释的大部分复杂性):
nnoremap <down> :m .+1<CR>==
nnoremap <up> :m .-2<CR>==
inoremap <down> <Esc>:m .+1<CR>==gi
inoremap <up> <Esc>:m .-2<CR>==gi
vnoremap <down> :m '>+1<CR>gv=gv
vnoremap <up> :m '<-2<CR>gv=gv
这对于初学者来说也是一个很好的方法,可以帮助他们重新养成使用箭头的习惯,并学习更有效的 Vim Action 方式来在代码中移动。 ;)
您可以完成您的转换映射<left>
和<right>
通过以下方式在选项卡之间快速移动:
nnoremap <left> gT
nnoremap <right> gt
或者任何你喜欢的东西(甚至是残酷的 <NOP>
,就像我在旅程开始时所做的那样)。
关于vim - 我可以在 Vim 中映射 Alt 键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7501092/