Frage

Jede andere Optimierungen für Emacs als vim-like wie möglich zu machen und würde geschätzt.

Nachtrag: Der Hauptgrund, warum ich einfach nicht vim verwenden ist, dass ich liebe, wie Emacs können Sie eine Datei in zwei verschiedenen Rahmen öffnen [ADDED: sorry, das war verwirrend: Ich meine getrennte Fenster , die Anrufe "Frames"] emacs. Es ist wie eine vertikale Teilung zu machen, aber ich habe nicht ein enormes Fenster haben.

War es hilfreich?

Lösung

Sie könnten VIM in laufen Client-Server-Modus , dann könnten Sie haben zwei Fenster auf eine Instanz verbinden, daher die Notwendigkeit für Emacs zu entfernen.

Andere Tipps

Ich weiß nicht, wie Vim-Makros arbeiten zu lassen, aber da Sie gefragt, für Tweaks für Emacs als vim-like wie möglich zu machen, hier ein paar Ergänzungen ich nutze, um vimpulse jeden Tag:

(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)

Natürlich lernen Emacs ist sehr wichtig, auch, aber Emacs verlässt sich auf die individuell gestaltet werden, um es genau zu machen verhalten sich wie Sie es wollen. Und die Standard Vim Tastenbelegungen sind so bequem, dass mit Viper einfach bedeutet, dass Viper hat einige Emacs-Anpassung für Sie.

Wie für die Verwendung von Vim anstelle von Emacs, ich liebe Vim, aber ich liebe die Interaktivität des Lisp-System, das Emacs ist. Nichts fühlt sich an wie eine einzige Zeile Code überall in Ihrem Editor eingeben und sofort mit einem einzigen Tastendruck Auswerten, Ändern oder Prüfen des Status Ihres Editor von Ihrem Editor (einschließlich der Live-Dokumentation) mit einem einzigen Tastendruck ( C-M-x) , während er läuft .

Ich habe keinen Viper oder vimpulse zwickt für Sie, aber ich empfehle, dass Sie folgen-Modus versuchen.

Natürlich würde ich auch empfehlen, dass Sie Emacs starten zu lernen. Ich meine, wenn Sie weit in diese sind dann kann man auch durch das Tutorial gehen und vielleicht einen Blick auf emacswiki.

Die Version von VIM Ich benutze Unterstützung (Fenster-Version) Unterstützung Splitting eine Datei in zwei verschiedenen Rahmen mit "Strg + W s" ...

Vim leicht können Sie eine Datei in zwei verschiedenen Rahmen öffnen:

:split aufzuspalten es horizontal

:vsplit zu spalten vertikal

Sie können den Bildschirm so oft geteilt, wie Sie zwischen der gleichen Datei, verschiedenen Dateien wollen, oder beides.

CTRL-w-w schaltet Rahmen.

:resize +n oder :resize -n ändert die Größe des aktuellen Rahmens.

Emacs + vimpulse ist genial, aber ich denke, ihr Recht Workflow zügig verwenden ist Emacs in Kombination Befehle Verknüpfungen vim. Zum Beispiel Emacs Makro Verknüpfung F3 und F4 ist einfacher als qq vim und @q. Auch Emacs Befehle zugegriffen werden durch Alt + x, nicht: Befehle. Obwohl vimpulse einige wichtige vim Befehle unterstützen, sind sie nur für die Kompatibilität gibt.

Istas sind meine vimpulse spezifische Anpassungen.

.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))

Wenn Sie Terminal möchten, können Sie Emacs -nw verwenden. In diesem Fall wird diese Zwischenablage Add-on ist nützlich. 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.

Fast alles vim wird nicht leicht gemacht (wenn nicht die gleiche Art und Weise) in Emacs + vimpulse aber definitiv nicht umgekehrt!

P. S. die meisten der oben genannten Vorschläge durch die jüngsten vimpulse VERSÄUMNIS unterstützt werden.

Sie können immer vim in einem Shell-Puffer starten und die Größe, damit er den gesamten Rahmen gefüllt?

Wenn Sie VIM Funktionalität wollen, macht es mehr Sinn VIM nur installieren!

Ich bin mir nicht sicher, ob ich Ihre Frage beantworten, da es nicht ganz klar ist, was Sie fordern (warum die Makros funktionieren nicht, oder welche Verbesserungen sind zur Emulation von Vim in Emacs verfügbar)
so ist das Ihr Problem:

  
      
  • Ein Benutzer, der ein altes emacs-snapshot verwendet (ab 2005) erwähnt
      dass dieser Modus bewirkt, dass alle Schlüssel auf   seine Tastatur zu stoppen, es sei denn Arbeits   er löscht die Zeile, die liest   ‚Viper - Schlüssel-Karten aus dem Makro   my-get-Emulation-keymap in dieser Datei
  •   

, wenn es ist, können Sie die angegebene Lösung versuchen.

Ich habe diese Informationen von der Emacs Wiki , und es ist ein bekannter Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top