Para un joven estudiante de CS, ¿valdría la pena invertir tiempo en aprender Emacs y / o Vim, o debería apegarme a Sublime Text o Atom?

Mis primeros editores no estaban basados ​​en * nix o Windows o MS-DOS y todavía hay características en el comando MTS $ EDIT / subsistema EDIT que extraño.

Soy de la vieja escuela sobre los editores * nix, y conozco vi / vim y emacs y no siento la necesidad de molestarme con otro en este momento. Funcionan para mí, y son inherentemente multi-ventanas o puedo lanzar instancias separadas en ventanas de terminal separadas.

Para un estudiante YOUNG CS, recomendaría un editor que le permita acceder a expresiones regulares, especialmente al hacer sustituciones de texto, que hacen vi / vim y emacs. (No he usado Atom o Sublime, así que no sé cómo es su acceso a las expresiones regulares).

Estoy de acuerdo en que la configuración extensa de editores (o shells) es fritter-ware. (Es decir: cosas en las que pierdes tu tiempo sin obtener suficiente rendimiento). Utilizo una cantidad suficiente de sistemas diferentes que incluso agregar complementos no vale la pena el esfuerzo de encontrarlos, evaluarlos, mantenerlos actualizados, etc., pero eso es debido a mi gran cantidad de espacios de trabajo.

Sé que este es un consejo que un joven estudiante de CS ignorará, y con razón. Necesita explorar las capacidades de sus herramientas. Si tiene un espacio de trabajo estable (y si está en un programa de CS que no le permite tener un espacio de trabajo estable, está en un terrible programa de CS), entonces continúe y explore.

Todo depende de lo que esté planeando editar.

Si es código, en lugar de texto, o algún tipo de lenguaje de marcado, entonces, para ser productivo, necesita un editor que:

  • le ofrece un conjunto completo de transformaciones de código (es decir, refactorizaciones) que le permitirán reescribir fácilmente su código de manera esencialmente cosmética (por ejemplo, renombrar) a transformaciones que son bastante drásticas (por ejemplo, clase de extracto);
  • recompilar las piezas de código que se deben volver a compilar;
  • ejecutar cualquier prueba que deba ejecutarse;
  • le permite depurar, perfilar, administrar recursos, crear pruebas, analizar código y otras 1001 cosas útiles

Cualquiera que sea el editor que haga eso para los idiomas con los que es probable que esté trabajando es el que debe elegir. No me molestaría con nada más.

Personalmente, para mí eso significa un IDE como Eclipse o IntelliJ porque estoy más interesado en Scala y Java. Yo también usé Emacs, VIM, etc. en el oscuro pasado distante, pero nunca he visto ninguna razón para usarlos recientemente. Los otros dos que mencionas parecen ser similares.

Quédese con Sublime Text / Atom si obtiene resultados.

No hay más honor inherente en aprender Emacs o Vim que el de impresionar a otras personas que saben cómo usar Emacs o Vim.

Sin embargo, hay un caso en el que argumentaría que debería aprender Emacs o Vim (o nano, etc.), en el caso de que necesite editar un archivo de configuración en un servidor (generalmente de forma remota a través de SSH) y no hay GUI- editor basado para servirle. Entonces necesita conocer al menos un editor con capacidad de línea de comandos.

He probado Emacs, Vim / Vi y Nano y el más sencillo y sencillo que he encontrado es Nano. No tiene un montón de combinaciones de teclas como Vim o Emacs y es bastante sencillo. También se garantiza que estará en la mayoría de los servidores Linux desnudos de forma predeterminada, donde como Vim o Emacs tendrías que descargar a través de un administrador de paquetes, lo cual es bastante fácil, pero aún así, puede ser más trabajo cuando solo quieres editar un servidor archivo de configuración aquí y allá.

Conocer al menos un editor con capacidad de línea de comandos es como saber conducir vehículos de transmisión estándar / manual. La mayoría de las veces no tendrá que hacerlo, pero cuando lo haga será muy útil.

Salud.

Creo que puedo relacionarme un poco con tu pregunta. No ha pasado mucho desde que era un joven estudiante de CS.

Comencé con, digamos, editores de texto menos potentes, es decir, gedit. Pero pronto tuve curiosidad y probé vim. Me acostumbré a vim por un tiempo, y después de unos tres años más o menos, me cambié completamente a Emacs, y desde entonces he vivido (más o menos) felizmente. Por supuesto, durante todo ese tiempo también he usado, en menor medida, otras herramientas, como Eclipse, NetBeans o VisualStudio cuando las tareas que tenía me lo exigían.

Esa es solo mi cronología de las cosas. Por lo tanto, no intentes seguirlo. Solo lo estoy publicando para que pueda darle una idea de dónde se basa la siguiente argumentación.

En primer lugar, averigua hacia dónde quieres dirigirte. Si desea sumergirse un poco más en el aspecto teórico de la informática (o las cosas que trabajan las personas que trabajan allí, como Haskell o ML), debería considerar echar un vistazo a Emacs. Hay muchas personas que trabajan en Ciencias de la Computación Teórica que trabajan con Emacs.

¿Por qué? Porque esta gente quiere hacer ciencia, no editores. Por lo tanto, tomarán un editor que pueden piratear fácilmente y simplemente conectarán una funcionalidad de resaltado de sintaxis y compilación / ejecución / depuración para ser productivos en su propio trabajo. Y ese es el tipo de cosas en las que Emacs se destaca: poder definir simplemente nuevos idiomas y operaciones para realizar en esos archivos de idioma. Realmente, eche un vistazo a haskell-mode, tuareg-mode o incluso PVS.

Si desea vivir una vida feliz, menos propensa al RSI, vim suele ser mucho menos doloroso, pero no es tan fácil de extender (VimL es menos expresivo para algunas cosas), aunque es más fácil encontrarlo instalado.

Si va a terminar escribiendo Java para una empresa, IntelliJ o Eclipse son probablemente su mejor opción en términos de velocidad del desarrollador frente al tiempo para configurarlo.

Sin embargo, diría que no todas las herramientas son las mejores para cada trabajo. Normalmente escribo cosas en Emacs, pero si tengo que hacer un “diseño orientado a objetos agradable” en Java, probablemente terminaré usando IntelliJ para hacer las clases y navegar por la estructura, porque es más rápido configurarlo que en Emacs Pero no escribiría Common Lisp en IntelliJ.

De todos modos, como joven estudiante de CS, deberías sentir curiosidad por experimentar todo esto por ti mismo, así que no tengas miedo y ve allí.

Cualquier elección que haga, si desea que se mantenga en general, creo que el siguiente es el consejo más importante que contendrá esta respuesta. Si va a leer solo una cosa, lea el siguiente párrafo.

Use una herramienta de software gratuita. Es posible que en este momento no se dé cuenta de lo importante que es, pero significa no estar bloqueado por esa herramienta específica o por el desarrollador parcheando los errores que pueda encontrar (por supuesto, los editores de texto tienen errores, ¿por qué no lo harían?). Como desarrollador, será más productivo si tiene el poder de su propio conjunto de herramientas, por lo que, eventualmente, si necesita personalizar su herramienta, debe tener el código y no depender de otra persona que pueda haber vendido o Cerró todo el asunto.

Como estudiante que escribe código para tareas de programación, use cualquier editor que sea aceptable para sus profesores (algunos prohíben el uso de un IDE real porque es demasiado como una muleta) y le resulta cómodo. Desea centrarse en crear su código, no perder el tiempo peleando con su editor. (Esta es la razón por la que escribo los primeros borradores en el bloc de notas o en el wordpad cuando me veo obligado a usar Winblows, en lugar de Word, porque me encuentro perdiendo más tiempo luchando con Word para que deje de romper mis imágenes y texto en lugar de escribir el texto).

He estado usando vi y sus primos vim por más de 30 años. Si va a especializarse en entornos Linux o Unix, aprenda los conceptos básicos de vi / vim, ya que cada producto Unix / Linux en existencia tiene un editor similar a vi o vi, y muchos lo configurarán como su editor predeterminado en su shell .perfil. (AT&T Unix, BSD Unix, Solaris, HPux, AIX y todas las distribuciones de Linux que he tocado). Todos los demás editores deben encontrarse e instalarse primero. Use un IDE cuando escriba aplicaciones grandes, use vi / vim cuando edite la configuración u otros archivos. Es mucho más rápido iniciar vi que emacs o cualquiera de los IDE.

Los editores tienen que ver con la memoria muscular. Por lo tanto, es una gran idea invertir tiempo aprendiéndolos, especialmente los atajos y trucos más avanzados, ya que dan sus frutos.

Conocer un editor de adentro hacia afuera es una de las mejores inversiones que puede hacer en su productividad en la computadora.

La elección a menudo se plantea como casi religiosa, pero tenga en cuenta que, al final del día, un editor es solo una herramienta y desea utilizar la que sea más feliz y a la que pueda acceder en cualquier momento que lo necesite. Vim y Emacs son buenos editores pero son viejos (lo cual es un plus y un menos). Recomendaría que incluso si utiliza los editores de texto modernos, debería dedicar un tiempo a editar uno de estos porque he estado en situaciones en las que he tenido que usar vim y me alegré por el tiempo que pasé en vim antes salieron los nuevos editores.

Al final del día, todo lo que puedo confirmar es que invertir tiempo en aprender un editor es una excelente idea. ¿Cúal? Depende de lo que haga clic contigo, no creas a las personas que te dicen que uno es objetivamente mejor que otro. ¿Es mejor un martillo que un mazo?

He sido usuario de Vim durante aproximadamente 6 meses, y si me pregunta si lo veo como una inversión, repetiría si pudiera viajar en el tiempo … ¡Sí! Me he vuelto mucho más productivo, me he ahorrado mucho dolor en las muñecas y las manos, y encuentro que usar Vim es como usar un teclado con esteroides.

Pero eso no significa que convertirse en un Vim-snob tenga un costo cero: aprender Vim me tomó aproximadamente 2 semanas para recuperar la velocidad que solía escribir código en un editor normal. ¡Pero las mejoras de velocidad no terminaron allí! Continué mejorando constantemente (a medida que aprende más comandos y comienza a “pensar” en Vim).

Aprender Vim es una inversión que vale la pena, especialmente teniendo en cuenta su salud. Aprenderá a casi nunca usar el mouse dentro del editor, terminando la confusión constante entre el teclado y el mouse, y la tensión en las manos y la muñeca que lo acompañan.

Aprender con el programa real en lugar de un complemento para su editor es probablemente su mejor lugar para comenzar (es decir, Vi / Vim, GVim, etc.).

Comencé con SubEthaEdit y RagTime en una Mac. Después de cambiarme a GNU / Linux, utilicé Kate, fue la más familiar (perdí el acceso a todos mis documentos de RagTime al cambiar).

Luego probé Emacs y me quedé con él. Cada vez que extraño las características de Eclipse, recuerdo agregar resaltado de sintaxis y navegación por fragmentos a un formato de archivo de configuración personalizado o cómo funcionaba para Fortran. O cómo Org-Mode es el único planificador que sobrevivió a mis hábitos de planificación. O ver gente tropezar al editar archivos estructurados, lo cual es muy fácil una vez que conoce la edición de rectángulos y las macros básicas.

Y recuerdo que Emacs puede acompañarme a donde quiera que vaya porque será portado a cualquier plataforma de desarrollo imaginable, incluso si algún día comenzara a codificar por voz.

Entonces, si volviera a ser un joven estudiante de CS en lugar de ser no tan joven que acaba de terminar el PhD PostDoc, comenzaría a usar Emacs.

Elijas lo que elijas, asegúrate de que te acompañe las próximas décadas. Eso significa: Software libre y lo suficientemente grande como para mantenerse mantenido .

Dicho esto, así es como empiezo mi día:

Usé Emacs por muchos años; en ese momento era el editor más poderoso disponible. Esto se debe principalmente a su increíble soporte para macros (que muchos editores no admiten en absoluto), y porque era extensible (si conoces a Lisp, lo cual hice).

Sin embargo, en este momento, solo uso Eclipse. Es gratis y de código abierto. He usado muchos otros IDEs, y muchos de ellos son bastante decentes. Eclipse hace todo lo que necesito, y algo más. Y es extensible, en el raro caso de que lo necesites para hacer algo extraño.

Todavía uso las combinaciones de teclas de Emacs, que es una opción que Eclipse admite sabiamente.

Si solo desea un editor de texto simple y potente, puede probar TextPad.

Respuesta corta: si quieres, adelante. Es tu computadora.

Respuesta larga: Aquí está la cosa. Cualquiera que siga luchando en la guerra de los editores lo hace por nostalgia o por pura contrariedad. Hay un exceso de editores, muchos de ellos (especialmente Atom) completamente pirateables. El valor de aprender Emacs o Vi (m) está principalmente en encontrar lo familiar en un lugar desconocido, es decir, la computadora de otra persona o una nueva. Para ser francos, ambos diseños están muy desactualizados, pero también son lo suficientemente buenos como para haber tenido más de 40 años de usuarios dedicados, y sus listas de comandos clave emulados en muchos de sus sucesores. Eso no es algo para oler. No estoy convencido de que los beneficios percibidos de un editor sobre otro sean algo más que memoria muscular y placebo, pero si estás acostumbrado a algo y la herramienta sigue siendo buena para el trabajo, ¿por qué cambiar?

Personalmente, no estoy seguro de que me molestaría a menos que estuviera haciendo mucho trabajo sobre SSH, sin embargo (por ejemplo, en un BeagleBone Black o el Sistema UNIX de Acceso Público SDF). En mi caso, una gran parte proviene de haber sido usuario de Mac durante más de 20 años y mis editores elegidos son TextWrangler y nano (o BBEdit Lite y Pico en los años 90); Emacs me interesa principalmente solo por los huevos de pascua, y creo que la última vez que tuve la necesidad de usar vi, estaba tratando de usar OpenBSD en un antiguo SE / 30 que apenas tenía suficiente espacio en su disco duro para adaptarse al sistema operativo base . (También he jugado un poco con Sandy, y deberías investigarlo si te gustan tus herramientas en el lado espartano; es esencialmente como se vería vi si se hubiera implementado en, por ejemplo, 2005 en lugar de 1976).

Ahora, si quieres mi opinión personal, muy parcial: Emacs es demasiado espinoso y primitivo para mí; No tengo casi el tipo de memoria que necesitaría para memorizar los comandos de pulsación de teclas, pero puedo entender cómo ayuda al flujo de trabajo de algunas personas. Escucho a la gente entusiasmarse con Vim, pero la interfaz vi es una reliquia que creo que todavía existe debido a la estandarización, y no puedo entender cómo o por qué se convertiría en la primera opción de un novato como editor. He jugado un poco con la mayoría de los nuevos clones Sublime de código abierto. Atom es probablemente el espíritu más cercano a Emacs, ya que su creador era un fanático de Emacs. TextMate ofrece algunas características como la ejecución de comandos dentro de un documento (a las hojas de trabajo de shell MPW / BBEdit), pero es solo para Mac y técnicamente comercial a pesar de la licencia GPL. VSCode no es horrible, aunque probablemente no encontrará nada por lo que entusiasmarse de una forma u otra, y lo mismo se aplica a Adobe Brackets. Incluso he jugado con Notepad ++, que se ejecuta sorprendentemente bien en OS X bajo WINE; Puedo ver por qué los codificadores de Windows lo aman. Pero aún no he visto nada que me dé una razón particularmente convincente para cambiar de TextWrangler, ni siquiera el hecho de que TW es y siempre ha sido de código cerrado. Eso se remonta a mi punto original: lo mejor es lo que funciona para usted, y muchas veces eso está determinado casi por completo por lo que está acostumbrado personalmente.

Comencé a usar vim después de ver a un desarrollador senior manipular enormes fragmentos de código con una velocidad de película. Me tomó alrededor de 3 semanas dejar de alcanzar el mouse, y 3 años después todavía me considero un principiante. Codifico alrededor de 3-4 veces más rápido, y constantemente modifico mi vimrc. Usar vim cambió mi vida; deja que cambie el tuyo.

https://www.norfolkwinters.com/v

Recomendaría aprender vim , no necesariamente hasta un nivel profesional.

Vi (Vim) es un editor que está disponible en todas las computadoras linux, además de que puede acceder de forma remota en otra computadora (por ejemplo, un servidor). Y de nuevo es una especie de cosa tradicional en el mundo de linix.

Lo mejor de Vim es la edición modal, es muy adictiva, una vez que te acostumbras no hay vuelta atrás. Incluso el texto sublime tiene un pequeño modo Vim que se puede habilitar.

Vamos a compararlos:

  • Vim es un editor bastante poderoso con una interfaz muy antigua.
  • Emacs es un middleware de aplicación bastante poderoso que también resulta ser un editor. ( ¿Necesita una aplicación? Hay un modo para eso … )
  • Sublime es un editor bastante poderoso con toneladas y toneladas de complementos y una interfaz agradable.
  • Atom es un editor bastante poderoso con algunos complementos y una interfaz agradable pero lenta.

Trabajé un poco con Emacs y encendí Vim si tengo que hacer pequeños ajustes en un servidor. Probé Atom y VSCode para grandes proyectos JS. Pero trabajo real, lo hago con Sublime y Webstorm.

Simplemente funciona Mejor que el resto. Al menos para mi.

Me quedaría con la herramienta que más te guste.

Recomendaría obtener un IntelliJ Idea ultimate (con licencia de estudiante). Es probablemente la mejor plataforma IDE que existe en la actualidad. Aprender a usar el poder definitivamente ayudaría.

Aprende también vim y ensuciate las manos con él. Tarde o temprano, tendrá que enviar un servidor remoto a través de un terminal basado en texto y editar el texto. Nada le gana a Vim allí.

Quédate con los spacemacs. NO realice la configuración usted mismo. En cambio, solicite soporte técnico a través de la comunidad

Todos los desarrolladores de software deberían saber al menos cómo realizar operaciones básicas de archivos con Vim. Incluso si prefiere usar Emacs, encontrará Vi / Vim instalado en casi el 100% de las máquinas Linux, y nunca sabrá cuándo necesita hacer una edición rápida de un archivo de configuración.

Spacemacs es muy bueno y vale la pena estudiarlo. Pero como principiante, no le sugiero que configure la configuración usted mismo. Al principio, debe usar la configuración de otras personas, hay algunas buenas configuraciones de spacemacs en gitbub.

Puede buscar zilongshanren spacemacs en google, su configuración es muy buena y tiene un tutorial en Youtube.

He usado mucho emacs como estudiante de CS. Tiene muchas cosas geniales. Ahora programo para vivir y uso Sublime. No perdería el tiempo familiarizándome con emacs a menos que realmente lo necesite para algo. Pero eso es porque tengo muy poco tiempo libre. Si tienes mucho tiempo libre en tus manos, explorar emacs o vim puede ser útil para expandir tu mente geek. Bueno, al menos me familiarizaría con la funcionalidad básica de vim, ya que es el único editor con todas las funciones que me importa que puede usarse de manera confiable en un terminal. Espero que ayude

Configurar Spacemacs en realidad consume más tiempo que configurar Emacs. Si elige usar las configuraciones de otros al comienzo de aprender Emacs, debe intentar informar de errores en Github. De esta manera aprenderás Emacs más rápido. Al mismo tiempo, debe consultar algunos blogs sobre Emacs. También puede unirse a grupos de Emacs en Google+. Este grupo te beneficiará mucho.

Debe aprender los comandos básicos de vi: cómo salir, guardar el archivo, insertar / agregar texto, ir al siguiente carácter, siguiente línea. Nadie sabe cuándo puedes necesitarlo. Es posible que desee un día enviar ssh a la máquina Linux y hacer una edición simple de un archivo de configuración. Hay un editor vi en cada host Linux / Unix, por lo que conocer los comandos vi simples puede ahorrarle mucho tiempo 🙂

Para una codificación normal y cotidiana, use lo que desee: IDE o editores simples como Sublime, o si lo desea, Emacs. No importa tanto

More Interesting

¿Es mi compañero de trabajo un desarrollador de software no estructurado?

A los 25 años, ¿soy demasiado viejo para solicitar un programa de pasantías de desarrollador de software?

¿Es un trabajo de desarrollador de software de 45k / año generalmente más fácil que un trabajo de 65k +?

Dentro de un año, ¿alguna startup en Sydney me emplearía para una pasantía remunerada como desarrollador junior de software? ¿Por qué o por qué no?

¿Qué edad se considera "demasiado viejo" para que un desarrollador de software se una a una startup?

¿Qué tipo de pasatiempos o intereses externos tiene como desarrollador de software y le ayuda con la codificación?

¿Cómo pueden los desarrolladores de software desarrollar mejor sus habilidades y competencias profesionales?

¿Tiene una especialización en ingeniería informática la educación necesaria para trabajar como desarrollador de software?

¿Cómo puede un joven de 22 años sin conocimiento de la industria asumir un rol como desarrollador de software?

¿Dónde puedo encontrar excelentes desarrolladores de iOS?

Si Javascript es un lenguaje tan malo, ¿por qué tiene tantos partidarios empujando su alcance?

¿Por qué no se anima a los desarrolladores de software que trabajan en empresas de TI indias a desarrollar algo nuevo?

¿Qué pasos han tomado los desarrolladores de software en las startups con un "Monorail" (una aplicación grande y monolítica de Ruby on Rails) para dividirlo con éxito en los servicios?

¿Cómo obtiene un desarrollador externo los derechos sobre el código fuente de un software abandonado, si el desarrollador original está muerto?

¿Qué sitios web se recomiendan para obtener trabajo independiente en el desarrollo de software, específicamente para desarrolladores de iOS?