2008-11-29 9 views
21

Hay funciones importantes de Emacs que faltan en Vim, como el modo comint, y no hay scripts/complementos que puedan reemplazarlas.¿Qué características de Vim faltan en Emacs con Viper y Vimpulse?

También existen ventajas de Vim sobre Emacs, como la edición modal y, en general, mejores métodos abreviados predeterminados. Sin embargo, el modo Viper me da los dos. Vimpulse también habilita el modo visual. Desafortunadamente, ningún modo puede hacer que Emacs funcione tan rápido como Vim.

Así que aprendí principalmente Vim-in-Emacs. ¿Qué características de Vim me estoy perdiendo?

+5

[** EVIL ** es el sucesor de Viper y Vimpulse] (http://www.emacswiki.org/emacs/Evil), y ofrece una emulación Vim casi perfecta. Nunca he usado otra cosa, pero nunca tuve una razón para hacerlo. :) –

Respuesta

15

Soy un usuario de vim regular pero no un usuario de Emacs y no han utilizado vimpulse para confirmar esto.

Pero navegando en el siguiente código vimpulse no veo mención de objetos de texto.

http://www.emacswiki.org/cgi-bin/wiki/vimpulse.el

Vim introdujo algunas expresiones muy útiles para la selección y el movimiento que no están en vi regulares

  • cat 'cortar alrededor de etiquetas' para etiquetas XML/HTML
  • diw 'eliminar en palabra '
  • di(di" borrar el texto dentro de un ""() etc.

en la ayuda de vim vea :he texto-objetos para más.

+0

Acabo de comprobar y no funcionan en Vimpulse. –

+15

La última versión de Vimpulse tiene soporte adicional para objetos de texto. –

+3

Como se mencionó @AlexeyRomanov, estos ahora son compatibles: ;; Vimpulse admite objetos de texto: "daw", "daW", "das", "dap", "dab", "daB", "da (", "da [", "da {", "da <", " da "", "da", así como "diw", "diW", "dis", etc. Para cambiar un objeto: "caw", "cas", etc. Para tirarlo: "yaw", " yas ", etc. Para seleccionarlo:" vaw "," vas ", etc. – huyz

8

Desafortunadamente, ningún modo puede hacer que Emacs funcione tan rápido como Vim.

Si se refiere a que el tiempo de arranque emacs es pobre, puede cortarlo drásticamente por tener una sesión de emacs permanentemente abierta, y utilizar gnuclient/emacsclient siempre que lo necesite para editar un archivo.

http://www.emacswiki.org/emacs/GnuClient

+0

Eso es cierto, pero aún me da un poco de retraso cuando uso emacsclient (estoy en Windows). –

4

Una característica vi que echo de menos en emacs es el comando . (punto) que repite la última edición. Hay dot-mode.el que implementa C-. para simular esto, pero no siempre funcionó para mí (no soy competente en elisp para averiguar por qué).

Even viper no implementa este comando exactamente como lo hace vi (la última vez que lo comprobé), y aunque lo haga, no creo que sea suficiente para que yo empiece a usar la víbora. no parecen

+0

Mientras leo a través de otros mensajes aquí descubrí 'repeat-last-command' cuya descripción dice: * Este comando es como el comando'. 'en el editor vi. * Eso no es correcto, ya que el comando '.' en vi solo repite la última ** edición ** , mientras 'repeat-last-command' repite lo que sea que haya sido el último comando. –

0

macros Vim para trabajar con viper/vimpulse:

Vim macros don't work when using viper + vimpulse in Emacs

(Por cierto, los emacs asesinas característica que hace que me importa vim/vimpulse es que los diferentes marcos pueden editar el mismo archivo Es como tener una división donde las dos piezas pueden estar en ventanas diferentes. Si alguien sabe cómo lograr eso en vim, sería mi héroe.)

+1

¿Está buscando algo más que ': split'? ¿Cuál es el comando de vi para crear una segunda vista en el mismo archivo? ': help windows' da la primicia. Me imagino que esto es vim -sólo, no viper. – Leonard

+0

Ye ah, un poco diferente en que quiero las dos piezas en ventanas separadas que podrían, por ejemplo, estar en monitores separados. – dreeves

+1

Estoy bastante seguro de que esto no es compatible.Se proporciona una instalación para usar una instancia de vim como servidor, pero parece que soporta el envío de comandos (desde Eclipse, por ejemplo) y no proporciona una pantalla interactiva. Lo más parecido que he encontrado es ejecutar 'vim' debajo de' screen'. – intuited

0

¿Búsqueda incremental usando/y? Está perdido.

+4

no, no falta –

0

Siendo un amante de emacs como sistema operativo y vi como un modelo de entrada, naturalmente, quería amar víbora. Sin embargo, dentro de los dos segundos de usarlo tuve que abandonarlo: viper no admite C- [como un sustituto de la clave de escape -que es un atajo esencial para el comando más utilizado en vi.

+0

¿No puedes agregarlo en .viper? (global-define-key "\ C- [" 'the-command-viper-calls-on-escape) –

+3

intercambiar * Esc * con * CapsLock * (globalmente, a través de .xmodmaprc o equivalente) parece ser bastante popular entre los usuarios de vim. –

+1

Funciona aquí. Puede reenviar cualquier pulsación de tecla a otra utilizando este pequeño fragmento de elisp: http://pastie.org/1049554 –

4

Para obtener una lista completa de lo que es posible que falten vimpulse tipo

: helpgrep no en Vi

se enumeran todas las características de la ayuda que no es compatible VI.

Hay alrededor de 700 coincidencias.

Por supuesto que habrá una gran cantidad de funcionalidad duplicada

1

Vi movimiento en todas partes - en Vi siempre se puede navegar utilizando los mismos métodos abreviados, si está dentro de un listado de directorio, un archivo de ayuda, una escritura de archivos de sólo o algo que puedes editar

Corrija el comportamiento visual y de eliminación, muy similar al marcado de emacs pero idiomáticamente diferente, tan difícil para el usuario de Vi para volver a entrenar. Si ya estás acostumbrado al marcado de emacs, no te estás perdiendo nada.

Corregir el comportamiento de escape: debe cancelar todas las demás actividades modales y regresar al modo de comando. Nuevamente, si te sientes cómodo con emacs, probablemente estés acostumbrado a tener entradas modales y cosas así.

Las castañas obvias sobre Vi se implementan en todos los sistemas de nix en el mundo (los puristas de Gentoo me corrigen?) - no es un argumento muy fuerte en mis ojos de todos modos.

Esos son los que surgieron durante mi uso de emacs + víbora.

Cuestiones relacionadas