将 Alt-k 映射到 .vimrc 中的删除行(默认绑定到 dd)

将 Alt-k 映射到 .vimrc 中的删除行(默认绑定到 dd)

我想将 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

相关内容