tutorial para codigo vim emacs editor

para - ¿Por qué los editores antiguos como Vim y Emacs exponen la diferencia entre un archivo y un búfer en la interfaz?



spacemacs (7)

¿Mi pregunta tiene sentido? Al usar Vim o Emacs, llega a comprender que la interfaz expone la representación del código del estado del archivo que está editando en el búfer, el archivo es el almacenamiento en disco del que puede llenar un búfer o escribir un búfer. Todas estas cosas que un programador sabría, pero al editar texto, ¿por qué está expuesto? Cualquier editor más nuevo solo te dice "Aquí hay un archivo. Edítalo".

Sí, entiendo los significados técnicos , pero esa no es mi pregunta. Esta es una pregunta ni siquiera si es una buena idea hacerlo o no. Vim y Emacs son nuestros dos editores más antiguos de uso común hoy en día, y comparten este comportamiento. No conozco ningún editor nuevo que haga lo mismo. ¿Cuándo los editores dejaron de hacer esto y por qué?


Creo que los nuevos editores dejaron de hacerlo por las razones que usted indicó, que es una abstracción que se interpone en el camino. Además, la mayoría de los editores modernos tienen deshacer ilimitado, por lo que la idea del "buffer" es algo implícito.


Cuando las aplicaciones comenzaron a ser usadas en gran medida por personas no geeks que no querían molestarse con detalles irrelevantes.


Debido a que varios almacenamientos intermedios pueden mostrarle una vista diferente del mismo archivo. No sé de otros editores, pero esto es cierto de Emacs. ¿Y qué quieres decir exactamente con Viejo?


OK, aquí está mi extraña respuesta filosófica:

porque la vinculación tardía entre el búfer en el editor y la realidad concreta en la que está trabajando le da al entorno de edición más flexibilidad y potencia.

¿Crees que esto está desactualizado? Un lugar donde la idea regresa con fuerza se encuentra en el navegador , donde no tiene una correspondencia 1-1 entre pestañas y páginas web. En cambio, dentro de cada pestaña puede navegar hacia adelante y hacia atrás entre varias páginas. Nadie trataría de hacer una interfaz de tipo MDI para la web, donde cada página tenía su propia ventana interna. Sería imposible de usar. Simplemente no se escalaría .

Personalmente, creo que los IDE se están volviendo demasiado complicados en estos días, y la vinculación estática entre los documentos y los buffers es una de las razones para esto. Espero que en algún momento se produzca un gran adelanto a medida que se muevan al modelo de almacenamiento en pestañas con pestañas tipo navegador, donde:

a) podrás hipervincular entre múltiples archivos dentro del mismo búfer / pestaña (y habrá un botón de retroceso, etc.)

b) los búferes genéricos podrán contener cualquier tipo de datos: código fuente, línea de comandos, salida gráfica generada dinámicamente, esquema del proyecto, etc.

En otras palabras, gran parte del modelo de Vim / Emacs, excepto modificado para ser más en línea con los descubrimientos que los navegadores están haciendo.


Para empezar, Emacs usa muchos búferes que no están asociados con ningún archivo. Cada vez que abre un directorio, lee su correo, abre un terminal, compila un programa, inicia una sesión de Python interactiva o se conecta a una base de datos, obtiene un búfer. Por lo tanto, la unidad de trabajo básica de Emacs es un buffer y no un archivo, y la misma lógica vale para Vim.

Las nuevas aplicaciones que solo editan archivos no distinguen porque cada pantalla o ventana o pestaña representa directamente un archivo. Las aplicaciones más capaces como Emacs y Vim son mucho más flexibles en ese sentido.


Porque a los desarrolladores de esos editores no les importaba ocultar los detalles de implementación de los usuarios.


Supongo que soy solo un viejo fogy (en el campo de vim duro), pero los otros paquetes de edición que uso, como MS Word u Open Office, conservan la distinción entre la copia del archivo que estoy editando y la última versión guardada Eso es absolutamente invaluable: no quiero que el editor pisotee mi última versión buena hasta que esté listo para hacerlo. De hecho, hay una posibilidad decente (digamos uno de cada mil) de que crearé un nuevo archivo con el búfer en el que estoy editando.

Por otro lado, la capacidad de crear una imagen de archivo leyendo varios archivos (ya sea varias copias del mismo archivo o copias de varios archivos diferentes) también es útil. Hay instalaciones débilmente similares en otros documentos.

Entonces, me podría estar perdiendo el punto: no sé a qué editores te refieres como eliminar la distinción. Pero creo que todos los editores conservan la distinción entre la copia del archivo que está editando y la última versión guardada en el disco.