質問

emacs をできるだけ vim っぽくするためのその他の調整も同様に歓迎されます。

補遺:私が vim だけを使わない主な理由は、emacs が 2 つの異なるフレームでファイルを開く方法が気に入っているからです [追加:申し訳ありませんが、これは紛らわしかったです:つまり別れる ウィンドウズ, 、emacs では「フレーム」と呼ばれます]。垂直に分割するようなものですが、巨大なウィンドウを 1 つ持つ必要はありません。

役に立ちましたか?

解決

VIM を実行できます クライアントサーバーモード, そうすると、2 つのウィンドウを 1 つのインスタンスに接続できるため、Emacs が不要になります。

他のヒント

Vim マクロを動作させる方法はわかりませんが、emacs をできるだけ vim っぽくするための調整を求められたので、私が毎日使用している vimpulse にいくつかの追加を示します。

(define-key viper-vi-global-user-map [(delete)] 'delete-char)
(define-key viper-vi-global-user-map "/" 'isearch-forward-regexp)
(define-key viper-vi-global-user-map "?" 'isearch-backward-regexp)
(define-key viper-vi-global-user-map "\C-wh" 'windmove-left)
(define-key viper-vi-global-user-map "\C-wj" 'windmove-down)
(define-key viper-vi-global-user-map "\C-wk" 'windmove-up)
(define-key viper-vi-global-user-map "\C-wl" 'windmove-right)
(define-key viper-vi-global-user-map "\C-wv" '(lambda () (interactive)
                                                (split-window-horizontally)
                                                (other-window 1)
                                                (switch-to-buffer (other-buffer))))

(define-key viper-visual-mode-map "F" 'viper-find-char-backward)
(define-key viper-visual-mode-map "t" 'viper-goto-char-forward)
(define-key viper-visual-mode-map "T" 'viper-goto-char-backward)
(define-key viper-visual-mode-map "e" '(lambda ()
                                         (interactive)
                                         (viper-end-of-word 1)
                                         (viper-forward-char 1)))

(push '("only" (delete-other-windows)) ex-token-alist)
(push '("close" (delete-window)) ex-token-alist)

もちろん、Emacs を学ぶことも非常に重要ですが、Emacs はカスタマイズに依存して、希望どおりに動作します。また、デフォルトの Vim キー バインディングは非常に快適なので、Viper を使用すると、単に Viper が Emacs のカスタマイズを行ってくれることになります。

Emacs の代わりに Vim を使用することに関して言えば、私は Vim が大好きですが、Emacs である Lisp システムのインタラクティブ性も大好きです。エディターの任意の場所にコード行を入力し、1 回のキーストロークで即座に評価し、エディターの状態を変更または検査することほど快適なことはありません。 あなたの編集者から (ライブドキュメントを含む) 1 回のキーストローク (C-M-x) 実行中.

viper や vimpulse の調整はありませんが、フォローモードを試してみることをお勧めします。

もちろん、Emacs の学習も始めることをお勧めします。つまり、ここまで進んだのであれば、チュートリアルを一通り読み、emacswiki を参照したほうがよいでしょう。

私が使用している VIM のバージョン (Windows バージョン) は、「Ctrl+W s」を使用してファイルを 2 つの異なるフレームに分割することをサポートしています...

Vim では、2 つの異なるフレームでファイルを簡単に開くことができます。

:split 水平に分割するには

:vsplit 縦に分割するには

同じファイル、異なるファイル、またはその両方の間で、画面を何度でも分割できます。

CTRL-w-w フレームを切り替えます。

:resize +n または :resize -n 現在のフレームのサイズを変更します。

Emacs+vimpulse は素晴らしいですが、その正しいワークフローは、emacs コマンドを vim ショートカットと組み合わせて自由に使用することだと思います。たとえば、emacs のマクロ ショートカット F3 および F4 は、vim の qq および @q よりも簡単です。また、emacs コマンドには、 ではなく Alt+x を使用してアクセスします。コマンド。vimpulse はいくつかの重要な vim コマンドをサポートしていますが、それらは互換性のためだけに存在します。

以下は私の vimpulse 固有のカスタマイズです。

.emacs

   ; I use C-d to quit emacs and vim
   (vimpulse-global-set-key 'vi-state (kbd "C-d") 'save-buffers-kill-terminal)
   ; use ; instead of :
   (vimpulse-global-set-key 'vi-state (kbd ";") 'viper-ex)
   ; use C-e instead of $. This works for all motion command too! (e.g. d C-e is easier to type than d$)
   (vimpulse-global-set-key 'vi-state (kbd "C-e") 'viper-goto-eol)
   (defun t_save() (interactive)(save-buffer)(viper-change-state-to-vi)) 
   (global-set-key (kbd "\C-s") 't_save) ; save using C-s instead of :w<CR> or C-x-s

    (defun command-line-diff (switch)
          (let ((file1 (pop command-line-args-left))
                (file2 (pop command-line-args-left)))
            (ediff file1 file2)))

    ;; Usage: emacs -diff file1 file2 (much better then vimdiff)
    (add-to-list 'command-switch-alist '("-diff" . command-line-diff))

ターミナルが好きなら、emacs -nw を使用できます。そんなときにこのクリップボードアドオンが便利です。 http://www.lingotrek.com/2010/12/integrating-emacs-with-x11-clipboard-in.html

.viper

    (setq viper-inhibit-startup-message 't)
    (setq viper-expert-level '3)
    (setq viper-ESC-key "\C-c") ; use C-c instead of ESC. unlike vim, C-c works perfectly with vimpulse.

vim が行うほとんどすべてのことは、(同じ方法ではないにしても) emacs+vimpulse で簡単に実行できますが、その逆は絶対にありません。

追記上記の提案のほとんどは、最近の vimpulse でデフォルトでサポートされています。

いつでもシェルバッファーで vim を起動し、フレーム全体に収まるようにサイズを変更できますか?

VIM 機能が必要な場合は、VIM をインストールするだけの方が合理的です。

あなたが何を求めているのか(なぜマクロが機能しないのか、またはemacsでvimをエミュレートするためにどの調整が利用できるのか)が完全に明確ではないため、あなたの質問に答えるかどうかはわかりません。
それで、これはあなたの問題ですか?:

  • 古い emacs スナップショット (2005 年以降) を使用しているあるユーザーは次のように述べています。
    このモードが「Viper」を読み取る行を削除しない限り、このモードが彼のキーボード上のすべてのキーを動作させないようにします。

存在する場合は、記載されている解決策を試すことができます。

この情報を入手したのは emacs ウィキ, これは既知のバグです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top