Vim

使用 emacs 命令自定義的 vim(僅限插入模式)

  • March 31, 2018

我是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 $$ Enter $$

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

在網上,我找到了emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil) 的自定義。但尚未發現相反的情況:自定義vim以使用emacs命令…

我只對插入模式下emacs的命令感興趣。只是一些基本命令,如命令:, , , , … (是的不是預設命令,但我也喜歡它)。vim bash``C-A``C-E``C-K``C-Y``C-U``C-U``emacs

四年後我才回答這個問題,因為提供的答案是部分解決方案,並未完全解決原始問題。

我和 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

目前我似乎無法使用的唯一綁定是<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

引用自:https://unix.stackexchange.com/questions/49203