siguientes - ¿Cuál es el beneficio de usar cosas como emacs, vim y nano sobre cualquier otro IDE o editor de texto?
editor linux (9)
Rocas vim
Vim es más difícil de aprender (tienes que memorizar los comandos que quieres usar) pero es mucho más poderoso que cualquier IDE o editor de GUI que haya visto.
Parte del secreto de vim es el modo de línea que heredó, en última instancia, del editor de texto ed (1) que fue escrito por el mismo Ken Thompson. Es extraordinariamente potente: puede usarse para refactorizar e incluso colocarse en scripts. Se basa en el reemplazo del patrón de expresión regular.
Y con todo este poder, porque es una aplicación de terminal / xterm de la vieja escuela, se inicia al instante y nunca tiene un retraso detectable.
He cambiado a IDE y editores de GUI muchas veces, pero sigo volviendo a VIM. Creo que esta vez me limitaré a seguir y me ahorraré el desvío.
Notas:
Si su IDE admite la refactorización, esa es una razón para encontrar el IDE. Solo uso eso como un ejemplo de tarea de edición compleja.
Sorprendentemente, vim parece ayudar a combatir el RSI y dejar sus manos más relajadas. Los comandos son claves no modificadas, por lo que no necesita tensar sus muñecas manteniendo presionado el control o meta o comando o bletch o lo que sea.
De lo que he visto. emacs etc .. ejecutar en terminal. ¿Hay algún beneficio para esto? Parece que sería más complicado escribir y organizar cosas. No trato de ser subjetivo. Literalmente no sé nada de emacs, vim, nano, etc. y me gustaría saber más, tal vez use uno de ellos.
Emacs y Vim son el software más refinado y polivalente en el que puedo pensar.
Esto es más cierto cuando se trabaja en un entorno Unix, donde los archivos de texto sin formato se utilizan para todo (código, scripting, configuración, procesos, etc.).
Estas herramientas requieren algo de tiempo para aprender, aún más para dominarlas, pero luego pueden brindarle una productividad inesperada durante todo el día.
Empiezo a usarlos alrededor de 1990. Veinte años después, siguen en la cima de mi lista. Son las primeras herramientas que instalo cuando configuro una máquina y siempre me pueden llevar un paso más allá cuando mi IDE actual esté bloqueado ... piense en regexrename miles de archivos, aplique un cambio de formato complejo de un archivo de texto o cualquier otro texto Tarea orientada.
Hay dos cosas (aproximadamente) que obtiene al utilizar VIM / Emacs:
- Personalizabilidad
- Corren por todos lados
Ambos invierten tiempo en aprender. Pero una vez que los aprendas usando cualquier otro editor, te sentirás inferior.
No hay una razón real para usar nano. Casi cualquier cosa es mejor
En cuanto a vim y emacs, esto es lo que dije la última vez que surgió esto :
Soy semi-competente con las combinaciones de teclas vi, pero prefiero Emacs en general. La razón por la que estos editores tienen tan fervientes adeptos es porque el modelo de edición que proporcionan es más poderoso que los sistemas más nuevos, por lo que no es suficiente con "vi keybindings" o "emacs keybindings", incluso si no está usando ninguna característica de extensión o personalizaciones para emacs o vi.
Solo voy a hablar sobre el modelo de Emacs porque lo entiendo mejor. El modelo común para la edición de texto de hoy implica un búfer de texto, en el que el texto se puede insertar, eliminar, seleccionar y cortar / copiar / pegar en el portapapeles del sistema.
Los buffers de Emacs, por supuesto, pueden soportar estas operaciones. Junto con la posición del cursor de seguimiento para cada ventana en la que están visibles, también mantienen un registro de las "marcas" hechas en ellas. El texto entre el "punto" (posición del cursor) y la "marca" se denomina "región" y corresponde aproximadamente a la selección de los editores principales.
La diferencia es que Emacs realiza un seguimiento de las últimas ubicaciones donde se estableció la marca en el anillo de marca, y puede regresar a ellas con una pulsación de tecla (o dos, según su configuración). Me parece extremadamente útil, especialmente porque muchos comandos de Emacs que cambian su ubicación en el búfer establecen la marca en su ubicación anterior. Un ejemplo es cuando estoy editando un módulo de Python y necesito agregar una declaración de importación en la parte superior del archivo. La pulsación de tecla para ir a la parte superior del búfer (Alt- <) establece la marca. Añado la declaración de importación. Presiono Ctrl-u Ctrl-Space y estoy de vuelta donde comencé. También puedo seguir haciendo esto para volver a las posiciones anteriores. (Tal vez necesitaba seleccionar un texto al agregar esa declaración de importación).
La otra diferencia (y más conocida) de Emacs es el anillo de muerte. La mayoría de las pulsaciones para eliminar el texto del texto guardado del búfer en el anillo de eliminación, que se pueden recuperar con el comando "yank" (Ctrl-y). La característica esencial es que los comandos de yank subsiguientes recuperan el texto eliminado anterior. Así que puedes matar varias secciones de texto en una fila, y luego recuperarlas en orden. También puede desplazarse por el anillo de interrupción con Alt-y después de un tirón, eliminando el texto recuperado e insertando la siguiente entrada en el anillo.
Emacs tenía estas características en 1978. El único otro sistema importante para adoptarlas en cualquier medida es NeXTStep (y ahora heredado por Cocoa). Otras herramientas proporcionan más funciones para tareas específicas, pueden extenderse en idiomas de forma más fácil de usar que Emacs Lisp y tienen interfaces visuales más agradables ... pero Emacs sigue siendo mejor en la edición de texto. Es por eso que, una vez que sabes cómo usarlo, es muy difícil dejarlo.
Tu pregunta es difícil. Incluso si se ejecutan en el terminal, no es su principal ventaja. Estoy hablando de Emacs y Vim en este momento. Para ser cortos, han existido durante al menos 20 años (Vim) o más (Emacs), tienen una comunidad muy activa, tienen secuencias de comandos por lo que puedes hacer casi cualquier cosa con ellos si sabes cómo y ellos '' Re extremadamente poderoso.
Tienen una curva de aprendizaje bastante grande, por lo que probablemente terminará hurgando en ellos durante semanas, si no meses, antes de dominarlos. La principal motivación para aprenderlos es la productividad. Puede hacer algunas cosas bastante sorprendentes en una cantidad mínima de pulsaciones de teclas en comparación con, digamos, Bloc de notas.
Prueba uno. Si te gusta, quédate con él durante algún tiempo, soporta el dolor y luego verás los beneficios. Es casi como ir al gimnasio.
Uso mucho vi (lo estoy usando ahora en el trabajo porque no puedo molestarme en iniciar un servidor X y porque es rápido de iniciar), pero solo porque tuve que aprenderlo (y por "eso" quiero decir un subconjunto de comandos bastante pequeño) hace muchos años, es útil para editar archivos de forma remota y, en ocasiones, gedit o lo que no esté disponible.
Solo por los viejos tiempos, acabo de comenzar de nuevo con Emacs para ver cuánto lo odio y luego tuve que buscar una hoja de trucos en google para decirme cómo cerrarlo. Así que creo que es justo decir que no es intuitivo.
Es mi opinión que es mucho más fácil pensar en ti mismo como Neo (Matrix) cuando trabajas en un terminal verde sobre negro usando combinaciones de teclas arcanas que sentarte usando una GUI amigable.
Vim tiene una enorme cantidad de comandos, y si esos no son suficientes para las tareas que realiza repetidamente, puede definir el suyo propio. Pero, puedes usar Vim de manera efectiva después de que conozcas solo un número muy pequeño de esos comandos, así que no tienes una gran cantidad de cosas que aprender para comenzar (aunque lo harás durante unos días). También puede aplicar comandos basados en búsquedas de expresiones regulares, lo que puede ser enormemente útil si desea aplicar un cambio particular a cada línea que cumpla con alguna condición compleja. No puedo imaginar no codificar en Vim en estos días.
emacs - y, supongo, vim, quizás - tiene varias ventajas:
- Más pantalla de bienes raíces.
- Extensibilidad última real
- Uso mínimo de la memoria. He tenido más de 100 archivos abiertos, incluidos varios archivos de edición remota, que utilizan menos de 35 MB de RAM.
- Emacs nunca tiene que cerrarse a menos que tenga que reiniciar su computadora o actualizar emacs. Normalmente ejecuto un solo proceso de emacs durante semanas.
- Trivialmente fácil de modificar. Puedo si deseo un modo de resaltado para un DSL en un día. Con sangría que más o menos funciona. Y ni siquiera soy tan bueno en Emacs.
- Más fácil para las manos, ya que puede reasignar teclas fácilmente para respaldar la forma de su mano personal y la forma de teclado preferida.
- De confianza. Podría haber forzado un choque de emacs una vez.
- Corre a todos los lugares a los que puedo acceder. Posiblemente algunos sistemas IBM 390 más antiguos podrían no ejecutarlo ...
He usado Visual Studio y eclipse un poco. No son tan buenos en la edición de texto sin formato como emacs. Son considerablemente más lentos y soportan menos idiomas.
La única objeción significativa que escucho planteada con respecto a emacs es "no intellisense". No uso VS / Eclipse Intellisense cuando lo edito allí. Además, los mecanismos de autocompletar en emacs son superiores, por lo que puedo decir. (por ejemplo, autocompletando nombres de variables).
Por supuesto, toma una curva de aprendizaje. Para emacs, juzgo que 1 mes de uso diario lo llevará al punto de competencia cómoda para el uso diario.
La mayoría de la gente usa IDE hoy en día. Ayudan con cosas que puedes obtener a través del análisis de cosas que ya has escrito. Esas cosas pueden ser muy útiles y útiles, pero en realidad no ayudan con la tarea principal de editar realmente el código. Lo que los fabricantes de herramientas están apostando en es que esas cosas adicionales proporcionan un beneficio suficiente que superará la eficacia de vim y emacs como editores. Casi han ganado esa batalla en la mayoría de las comunidades, principalmente porque los nuevos desarrolladores se enfrentan a la opción de completar un gran código y el soporte de refactorización que es fácil de usar, y un editor del que no verán ningún beneficio durante aproximadamente 6 meses. forma fácil. Sé que lo hice.
Soy un chico vim ahora. Vim realmente no parece tener el mismo límite superior de productividad, lo he estado usando durante más de un año y casi con regularidad encuentro cosas que no sabía que me hacen más rápido. Incluso sin eso, cuanto más lo uso, menos se piensa en lo que estoy haciendo, lo que, de nuevo, me hace más rápido. Además, vim existe para todos los idiomas y plataformas, y se instala en cualquier servidor UNIX de forma inmediata. No tiene ninguna pantalla de carga, prácticamente salta a la pantalla, funciona fantásticamente con archivos grandes y nunca se ralentiza ni se bloquea. Las habilidades que aprendas con él serán aplicables a todo lo que hagas durante el resto de tu carrera, a diferencia de un IDE que cambiará cuando cambies de plataforma.
Vim es una inversión, pero si está hablando de algo que utilizará durante 8-10 horas al día durante casi el resto de su vida, la curva de aprendizaje se vuelve completamente irrelevante.