Pergunta

Quaisquer outros ajustes para fazer emacs como vim-like possível seria apreciada também.

Adenda: A principal razão pela qual eu não basta usar o vim é que eu amo como emacs permite abrir um arquivo em dois quadros diferentes [acrescentado: Desculpe, este foi confuso: Eu quero dizer separado Windows , que emacs chama de "frames"]. É como fazer uma divisão vertical, mas não tem que ter uma janela enorme.

Foi útil?

Solução

Você pode executar VIM em cliente modo de servidor , então você pode ter duas janelas se conectar a uma instância, portanto, eliminando a necessidade de Emacs.

Outras dicas

Eu não sei como fazer o trabalho Vim macros, mas desde que você pediu ajustes para fazer emacs como vim-like possível, aqui vai algumas adições para vimpulse eu uso todos os dias:

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

Claro, aprender Emacs é muito importante também, mas Emacs depende de personalização para fazê-lo se comportam exatamente como você quer que ele. E os atalhos de teclado padrão Vim são tão confortáveis ??que usando Viper significa simplesmente que Viper faz alguma personalização Emacs para você.

Quanto a usar Vim em vez de Emacs, eu amo Vim, mas eu amo a interatividade do sistema Lisp que é Emacs. Nada sente como digitar uma linha de qualquer código em seu editor e instantaneamente avaliá-lo com uma única tecla, alterar ou inspecionar o estado de seu editor do seu editor (incluindo a documentação ao vivo) com uma única tecla ( C-M-x) enquanto ele está executando .

Eu não tenho qualquer víbora ou tweaks vimpulse para você, mas eu recomendo que você tente seguir-mode.

É claro que eu também recomendo que você começar a aprender Emacs também. Quer dizer, se você está nesta longe você pode muito bem ir até o tutorial e talvez ter um olhar para emacswiki.

A versão do suporte uso VIM I (versão janela) apoio dividir um arquivo em 2 quadros diferentes usando "Ctrl + W s" ...

Vim facilmente permite que você abrir um arquivo em dois quadros diferentes:

:split dividi-lo horizontalmente

:vsplit dividi-lo na vertical

Você pode dividir a tela, como muitas vezes quiser entre o mesmo arquivo, arquivos diferentes, ou ambos.

CTRL-w-w muda frames.

:resize +n ou :resize -n redimensiona o quadro atual.

Emacs + vimpulse é incrível, mas eu acho que o seu fluxo de trabalho certo é usar liberalmente comandos do Emacs em combinação para atalhos vim. Por exemplo, das emacs macro atalho F3 e F4 é mais fácil do que qq e @q do vim. Também comandos do Emacs são acessados ??através Alt + x, não: comandos. Embora o apoio vimpulse alguns comandos importantes vim, eles estão lá apenas para compatibilidade.

A seguir são meus personalizações específicas 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))

Se você gosta de terminal, você pode usar emacs -NW. Neste caso, esta área de transferência add-on é útil. 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.

Quase tudo vim não pode ser tão facilmente feito (se não for da mesma maneira) no emacs + vimpulse mas definitivamente não vice-versa!

P.S. a maior parte das sugestões acima são suportados pelo recente vimpulse por padrão.

Você pode sempre começar vim em um buffer shell e redimensioná-la de modo que encheu toda a frame?

Se você quiser funcionalidade VIM, que faz mais sentido para apenas instalar VIM!

Eu não tenho certeza se eu responder a sua pergunta, uma vez que não é totalmente claro o que você está pedindo (porque a macro do não estão funcionando, ou que ajustes estão disponíveis para emular vim no emacs)
por isso, este é o seu problema:?

  • Um usuário que usa uma antiga emacs-snapshot (de 2005) menciona
    que este modo faz com que todas as teclas seu teclado para parar de trabalhar menos ele apaga a linha que lê 'Víbora - key-mapas do macro meu-obter-emulação-keymap neste arquivo

se for, você pode tentar a solução afirmou.

Eu tenho esta informação de o emacs wiki , e é um bug conhecido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top