2009-07-07 11 views
3

私は長い時間vimのユーザーですが、最近emacsには(少なくとも私にとっては)両方の世界のベストを提供するviper-modeがあることがわかりました。しかし、私はほとんどPythonでコーディングしているので、タブとスペースを混在させることは大したことです。Emacsのviper-modeにTABの代わりにスペースを挿入してください

挿入モードのときにTabキーの代わりにTabキーの代わりにviper-shift-widthスペースを挿入したいとします。これどうやってするの?私はいくつかのシンプルなlisp関数/設定は解決策だと思います。

これを行うことができるバイパーモード設定で何も見つかりませんでした。

編集:

私は私の.emacsで(setq-default indent-tabs-mode nil)を持っていますが、私はマムシモード

答えて

6

まず、あなたが'indent-tabs-modeのデフォルト値はそうのように、nilであることを確認する必要があります

(setq-default indent-tabs-mode nil) 

その後、viper-modeで、それはまたあなたのviper-expert-levelに依存します。レベル1または2では、モードマップviper-insert-diehard-minor-mode(エキスパートレベルが1または2の場合に有効)を介してTAB'self-insert-commandにバインドされているように見えます。私はそれが最大限のvi互換性を提供しようとしていると思います。つまり、いくつかのEmacsの機能を犠牲にして、かなり基本的なカスタマイズを使用しています。

そう...あなたは3以上にあなたの専門家のレベルをアップすることができます:

(setq viper-expert-level 5)  ; really, why use anything less? 

あなたは本当に、その後にこれを追加し、レベル1または2をしたいが、TABは、自己挿入コマンドではないにしたい場合あなたの.viperファイル:でもレベルで、私のためのトリックを行います

(define-key viper-insert-diehard-map (kbd "TAB") 'viper-insert-tab) 

1.

0

インデント、タブで(挿入モードのmeaing vimの中で)挿入モードにいるとき、これは動作しません。おそらく?

これをnilに設定するか、設定を解除するとどうなりますか?

バイパーモードになったら、M-x aproposを実行してから、スペースやタブ、インデントを検索してください。