10

私は熱心な Vim ユーザーで、最近、Vim の仕組みに興味を持ちました。

通常のテキスト エディターを変換して Vi/m 機能を持たせるための基本を説明するチュートリアルがあるかどうかは誰にもわかりませんか? プログラミング言語は問題ではありません。私はかなりの経験豊富なプログラマーです。

これまでに次のリソースを見つけました。

4

3 に答える 3

9

まず、VI/VIMは実際には2つの部分であることを知っておく必要があると思います。1つはと呼ばれるビジュアルエディターviで、もう1つはと呼ばれるワンライナーエディターedです。

(エディター)の上に構築されているため、実際にはビジュアルviエディターと呼ばれます。これはexモードの視覚的な部分であり、テキストを表示および編集できるため、visualからviという名前が付けられます。ed

exモードは、実際にはエディターの複製/表現ですed。ターミナルで起動edし、デフォルトのViexコマンドを使用するだけです。ビジュアル置換挿入モードはによって使用されますvi。たとえば、実際に同じことを実行しているコマンドがいくつかあります。たとえば、次のようになります。

:100 // Go to line 100, ex mode (ed)
100G // Go to line 100, normal mode(vi)

:.,5d // Delete 5 lines, ex mode (ed)
5dd   // Delete 5 lines, normal mode (vi)

等々...

詳細については、優れた本 『オライリーからviとVimのエディターを学ぶ』を読むことをお勧めします。

代替テキスト

于 2012-06-07T07:56:17.647 に答える
2

ちょっとしたインスピレーションとして、さまざまな IDE での Vi エミュレーションの実装を見てみるとよいでしょう。

于 2012-06-06T21:58:47.787 に答える
1

経験豊富な Vi ユーザーとして、Vi を他の (ビジュアル) エディタとは異なる主な 2 つの重要な側面があることを知っているでしょう。 - 入力モードEsc:それらを切り替える一般的な方法 - 複数のキーを押すと指図

多くの人が Vi キーボード マッピングのサブセットを既存のエディタに追加するのを見てきました。いくつかのものを適切にマッピングすることは可能ですが、エミュレーションを取得するには、おそらく既存のエディタのキーボード処理をかなり広範囲に置き換える必要があります。

もちろん、キーボード マッピングは十分に文書化されているため、実装するのはそれほど難しくありません。

次はコマンドモードの実装です。これを実装するために変更するエディターによって異なりますが、下部にある永続的なウィジェット/コントロールにフォーカスを変更することを想像します。そのコントロールに焦点を当てると、入力を簡単に処理し、Return キーが押されたときにコマンドを解析して処理できます。

コマンド モードの基本的な構文は ed/sed エディターから継承されているため、その実装 (または論文) を調べることができます。

全体として、vi に非常によく似た表面的な実装を取得することは、大規模な作業ではありません。しかし、それを本当にうまくやることは別の問題です。優れた Vim ( http://www.vim.org/ ) の使用を真剣に検討することをお勧めします。

于 2012-06-06T12:37:40.120 に答える