使用 emacs 命令定制的 vim(仅限插入模式)

oHo*_*oHo 12 vim keyboard-shortcuts emacs vi key-mapping

我是emacs用户,我必须切换到vim. 但是我想念vim插入模式下的一些基本 emacs 命令:

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ......还有其他一些

我知道我可以按Escape然后按以下一些键,最后按 key i

  1. ^
  2. $
  3. d$
  4. p
  5. :w [进入]
  6. ...

但是我想保持vim插入模式并避免按Escape/i键。

在网络上,我找到了对emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil) 的自定义。但尚未发现相反的情况:自定义vim以使用emacs命令...

我只emacsvim 插入模式下的命令感兴趣。只是一些基本命令,如bash命令:C-A, C-E, C-K, C-Y, C-U... (是的C-U,不是默认emacs命令,但我也喜欢它)。

tre*_*ead 8

四年后我才回答这个问题,因为提供答案是部分解决方案,并没有完全解决原始问题。

我和 olibre 有着完全相同的愿望,并想提出一个完整的解决方案。我从不同的角度来看待它——我习惯于在 bash 中编辑 Emacs 行——但问题是一样的。我想把它带入 Vim 插入模式(仅限)。

以下解决了 olibre 提出的原始问题中的所有键绑定请求,以及一些额外的问题:

" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a
Run Code Online (Sandbox Code Playgroud)

目前我似乎无法开始工作的唯一绑定是<Alt-B>and <Alt-F>,它会跳过整个单词。每当我绑定<Esc><Alt><Meta>组合时,gVim(Windows 上的 v7.4)都会输出重音字符。如果您有此问题的解决方案,请随时编辑此答案。我已经根据另一篇文章的建议使用Alt 组合来使用特殊字符。我已经在上面插入了它们。

编辑

--(编辑不是由原始答案海报)--

我在 Neovim 和 Windows 10 下使用了以下内容。您可能需要在其他操作系统上将“A”更改为“M”,因为“alt”在其他地方可能是“meta”。我玩得还不够。

inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以将插入模式下的任何命令映射到使用该:imap命令的任何命令,或者使用:im. 对于您的第一次映射,您可以键入(在正常模式下):

:im <C-A> <esc>^i

进入正常模式(带转义),^为您按下并返回插入模式。查看帮助以获取更多信息:

:help :imap 或更短: :h :im

请注意,您可能会覆盖现有的键映射。.vimrc如果您希望它们在每个文档中都存在,请将这些命令放入您的配置文件中。


ire*_*ses 7

不是一个完整的答案,但你知道 Vim 所谓的“简单模式”(vim -y)吗?默认情况下,它始终处于编辑模式,并且可以执行很多您想要的操作,并且不需要您安装或自定义任何内容。它执行 CTRL-A、C、V、X、Y 等。从键列表

Key mappings:
    <Down>      moves by screen lines rather than file lines
    <Up>        idem
    Q           does "gq", formatting, instead of Ex mode
    <BS>        in Visual mode: deletes the selection
    CTRL-X      in Visual mode: Cut to clipboard
    <S-Del>     idem
    CTRL-C      in Visual mode: Copy to clipboard
    <C-Insert>  idem
    CTRL-V      Pastes from the clipboard (in any mode)
    <S-Insert>  idem
    CTRL-Q      do what CTRL-V used to do
    CTRL-Z      undo
    CTRL-Y      redo
    <M-Space>   system menu
    CTRL-A      select all
    <C-Tab>     next window, CTRL-W w
    <C-F4>      close window, CTRL-W c
Run Code Online (Sandbox Code Playgroud)

一个更强大的版本是Cream,它重新映射了更多的键,并使基本命令类似于您可能熟悉的其他编辑器。

还有插件Vimacs,它启用所有常见的 emacs 键映射。它很容易安装,并且可以做你想做的(我从未尝试过)。

  • «easy mode» 的键与 Emacs 无关。但是«vimacs»似乎是一件有趣的事情。我刚刚安装,尽管很旧它仍然有效。 (2认同)