我想将 vim 中的一行删除映射到Alt-k
而不是默认的dd
(就像在 Emacs 或类似的地方所做的那样)和将映射放入.vimrc
我是 vim 新手,在使用过程中遇到了困难。我在 Google 上找到的最接近的方法是在会话中定义映射,:map - dd
但这不是我想要的,因为关键在于,而且语法对于.vimrc
交互命令来说略有不同。
.vimrc
为了实现这一目标我应该付出什么?
答案1
我假设您希望在正常模式下执行此操作。尝试以下操作:
:nnoremap <m-k> dd
您可以将该行~/.vimrc
准确按其显示内容放入您的程序中。
如果您还希望它在插入模式下工作:
:inoremap <m-k> <c-o>dd
编辑:不幸的是,这似乎只在 gVim 中有效,除了为控制台 Vim 选择不同的组合键之外,无法找到其他解决方案。
答案2
如果我使用以下解决方法,则对我有用:
" Fix for M-letter bindings
let c='a'
while c <= 'z'
exec "set <A-".c.">=\e".c
exec "imap \e".c." <A-".c.">"
let c = nr2char(1+char2nr(c))
endw
set timeout ttimeoutlen=50
map <M-k> dd
感谢这个答案找到了解决方法:
https://stackoverflow.com/questions/6778961/alt-key-shortcuts-not-working-on-gnome-terminal-with-vim