emacsコマンドでカスタマイズされたvim(挿入モードのみ)


10

私はemacsユーザーだったので、に切り替える必要がありvimます。しかし、私はvim挿入モードでいくつかの基本的なemacsコマンドを見逃しています。

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ...その他

Escape次のキーのいくつかを押してから押し、最後にキーを押すことができることを知っていますi

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

ただし、vim挿入モードのままにしておき、Escape/ iキーを押さないようにします。

Web上では、私がカスタマイズを発見しましたemacsvi-modevipvipervimpulsevim-modeevil)。しかし、まだその反対は見つかりませんでした:コマンドvimを使用するemacsようにカスタマイズ...

挿入モードemacsコマンドのみに関心があります。だけでいくつかの基本的なコマンド、コマンド:、、、、...(うんはデフォルトではありませんあまりにもそれのようにコマンドけど)。vim bashC-AC-EC-KC-YC-UC-Uemacs

回答:


7

提供された回答は元の質問に完全には対応していない部分的な解決策であるため、4年後にこの質問に回答します。

私は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><Alt-F>単語全体をスキップするandだけです。私はバインドするたびに<Esc><Alt>または<Meta>組み合わせ、のgvim(Windowsの場合V7.4)は、アクセント付き文字を出力します。この問題の解決策がある場合は、この回答を自由に編集してください。特殊文字だけを使用するという別の投稿の提案に基づいて、Altの組み合わせを機能させることができました。上に挿入しました。

編集する

-(編集は元の回答ポスターによるものではありません)-

NeovimとWindows 10で以下を使用しました。他のOSでは「A」を「M」に変更する必要がある場合があります。「alt」は他の場所では「メタ」になる可能性があるためです。私はそれで十分に遊んでいません。

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

ほんの少しの提案:私<Esc>paはより良いだろうと思う<C-Y>
山猫

<C-K>カーソルが左端にある場合は機能しないようEsc>lDaです。行全体が削除されますが、最初の文字は削除されません。
Ying Xiong 2017

7

コマンドを使用して、挿入モードの:imapコマンドを何かにマップしたり、を使用して入力を節約したりできます:im。最初のマッピングでは、次のように入力できます(通常モード):

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

通常モード(エスケープあり)になり、を押し^て挿入モードに戻ります。詳細についてはヘルプを参照してください:

:help :imap 以下: :h :im

既存のキーマッピングを上書きする可能性があることに注意してください。.vimrcすべてのドキュメントでコマンドを使用する場合は、コマンドを構成ファイルに入れます。


ヒント+1ありがとうございます:-)しかし、この種のマッピングがすでに構成されているかどうか知っていますか?(たとえば、既存のキーマッピングがない場合は上書きされます)。そのようなプロジェクト/構成はどこにありますか?私は自分でやろうとする(そして重要なものがない)よりも、すでに行われた(そして堅牢な)ものを再利用したいと思います。乾杯
olibre

質問する/superuser.comに移動する必要がありますか?
olibre 2012

ありがとう!コマンドが存在するかどうかは、(logic)コマンドで確認できます:im <c-a>。「マッピングが見つかりません」と表示されている場合は、上書きすることはありません。それよりもはるかに堅牢になるとは思いません...
Joker

うーん...私はコーディングして、設定をテストし、それからバグを修正しなければなりません。そして、再び....しかし、すべてのvimコマンドがわかりません... :im最後の引数のリストがどこにあるか知っていますか?FYI、私はまた、次のように使わ午前bashコマンド:M-backspaceM-FM-BM-D...誰かがすでにあることを行って、彼の作品を共有している場合、それはいいだろう、それはないですか?(のようなものevil)したがって、私は:im自分でそれを行わなくても、キーマッピングを再利用できました(エラーが発生しやすい)。分かりますか?
olibre 2012

私はあなたの意味を正確に理解していないかもしれませんが、と入力することですべての非標準のキーマッピングを見つけることができます:im。より高いレベルのコメントを作成するには:独自のプラグイン、特別なモード、またはvimrc-fileを常にロードする必要なしに複数のプラットフォーム/コンピューターでVimを使用できるようにしたい場合、私は学習/使用することをお勧めします可能な限り標準のVimコマンド。私はいくつかのキーマッピングを自分で作成しましたが、常に標準のVim代替を見つけようとしました。そして、それはかなり迅速にすることができます。私がやったことの一つは、マップである<esc>;j同様に簡単にあなたのNR 1マッピングを作り、;jIそして2 NR ;jA
Joker

6

完全な答えではありませんが、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

これのはるかに強力なバージョンはCreamです。これは、より多くのキー再マップし、基本的なコマンドを、使い慣れた他のエディターと同様にします。

プラグインVimacsもあり、すべての一般的なemacsキーマッピングを有効にします。インストールは簡単で、思い通りの結果が得られます(私は試したことはありません)。


非常に興味深い+1 :-)私はすべてのリンクを読んだりテストしたりします...後でもっとフィードバックします。ありがとうございました。乾杯
olibre 2012

1
«簡単モード»のキーは、Emacsのものとは何の関係もありません。しかし、«vimacs»は興味深いもののようです。インストールしたばかりですが、古くても機能します。
Hi-Angel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.