2. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Programaci´n
o
Operaciones b´sicas
a
Automatizaci´n
o
- Vim Scripts Buffers, ventanas, pesta˜as
n
Notas finales
3 Programaci´n
o
Navegaci´n
o
Ayudas para digitado
Control de versiones
Soporte espec´ıfico para lenguajes
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
3. Vim
Javier Rojas Vim
Preliminares
Funcionalidad
general
Programaci´n
o Historia
Automatizaci´n
o
- Vim Scripts Clon de vi
Notas finales
Bram Molenaar
Charityware
Caracter´
ısticas
Multiplataforma
Extensible
Modal
4. Vim
Javier Rojas Vim
Preliminares
Funcionalidad
general
Programaci´n
o Historia
Automatizaci´n
o
- Vim Scripts Clon de vi
Notas finales
Bram Molenaar
Charityware
Caracter´
ısticas
Multiplataforma
Extensible
Modal
5. Vim
Javier Rojas Respecto a esta charla
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
El qu´, no el c´mo
e o
(Necesariamente) mi Las posibilidades de vim
experiencia personal No Ruby, no PHP, no
(python, C/C++, SQL, .NET
LaTeX, HTML, Git) En el sentido matem´tico
a
La base del uso de vim
6. Vim
Javier Rojas Respecto a esta charla
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
El qu´, no el c´mo
e o
(Necesariamente) mi Las posibilidades de vim
experiencia personal No Ruby, no PHP, no
(python, C/C++, SQL, .NET
LaTeX, HTML, Git) En el sentido matem´tico
a
La base del uso de vim
7. Vim
Javier Rojas Respecto a esta charla
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
El qu´, no el c´mo
e o
(Necesariamente) mi Las posibilidades de vim
experiencia personal No Ruby, no PHP, no
(python, C/C++, SQL, .NET
LaTeX, HTML, Git) En el sentido matem´tico
a
La base del uso de vim
8. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Programaci´n
o
Operaciones b´sicas
a
Automatizaci´n
o
- Vim Scripts Buffers, ventanas, pesta˜as
n
Notas finales
3 Programaci´n
o
Navegaci´n
o
Ayudas para digitado
Control de versiones
Soporte espec´ıfico para lenguajes
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
9. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Operaciones
b´sicas
a Operaciones b´sicas
a
Buffers,
ventanas, Buffers, ventanas, pesta˜as
n
pesta˜as
n
Programaci´n
o 3 Programaci´n
o
Automatizaci´n
o Navegaci´n
o
- Vim Scripts
Ayudas para digitado
Notas finales
Control de versiones
Soporte espec´ıfico para lenguajes
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
10. Vim
Javier Rojas Modalidad
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a Modo normal: comandos, operaciones sobre texto,
Buffers,
ventanas, movimiento
pesta˜as
n
Modo de inserci´n: escribir texto
o
Programaci´n
o
Automatizaci´n
o Modo de comandos: comandos Ex
- Vim Scripts
Notas finales
Porqu´?
e
Todo el teclado permite ingresar comandos
Menos Escape-Meta-Alt-Control-Shift
Razones hist´ricas - teclados no est´ndar
o a
11. Vim
Javier Rojas Modalidad
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a Modo normal: comandos, operaciones sobre texto,
Buffers,
ventanas, movimiento
pesta˜as
n
Modo de inserci´n: escribir texto
o
Programaci´n
o
Automatizaci´n
o Modo de comandos: comandos Ex
- Vim Scripts
Notas finales
Porqu´?
e
Todo el teclado permite ingresar comandos
Menos Escape-Meta-Alt-Control-Shift
Razones hist´ricas - teclados no est´ndar
o a
12. Vim
Javier Rojas Movimiento
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o
h, j, k, l
Automatizaci´n
o w, W, b, B
- Vim Scripts
Notas finales
t, T, f, F, ;, ,
<n><movimiento>
13. Vim
Javier Rojas insertar, modificar, eliminar texto
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o
Automatizaci´n
o
i, a, I, A, o, O
- Vim Scripts
d, c, D, C, dd, cc, x
Notas finales
14. Vim
Javier Rojas cortar, copiar, pegar
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas, Poner texto en un registro (portapapeles), pegarlo en alg´n
u
pesta˜as
n
sitio
Programaci´n
o
Automatizaci´n
o Cortar: d, dd
- Vim Scripts
Notas finales
Copiar: y, yy
Pegar: p
Registros: "
15. Vim
Javier Rojas Operadores
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n Transforman el texto indicado de alguna forma
Programaci´n
o Cambiar, borrar, copiar: c, d, y
Automatizaci´n
o
- Vim Scripts May´sculas, min´sculas: g~ , gu, gU
u u
Notas finales
Indentado, formateo: >, <, gq
Otros: !, g?, =
16. Vim
Javier Rojas Modo visual
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n Seleccionar texto, extender selecci´n mediante movimientos,
o
Programaci´n
o operar sobre el texto
Automatizaci´n
o
- Vim Scripts v, V, CTRL-V
Notas finales Operador
gv, o
17. Vim
Javier Rojas Conceptos
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o Archivos en edici´n: buffers
o
Automatizaci´n
o
- Vim Scripts Ventanas: visualizaci´n de un buffer
o
Notas finales Pesta˜as: grupos de ventanas
n
18. Vim
Javier Rojas Conceptos
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o Archivos en edici´n: buffers
o
Automatizaci´n
o
- Vim Scripts Ventanas: visualizaci´n de un buffer
o
Notas finales Pesta˜as: grupos de ventanas
n
19. Vim
Javier Rojas Conceptos
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o Archivos en edici´n: buffers
o
Automatizaci´n
o
- Vim Scripts Ventanas: visualizaci´n de un buffer
o
Notas finales Pesta˜as: grupos de ventanas
n
20. Vim
Javier Rojas Buffers
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o
Automatizaci´n
o
Representaci´n de un archivo en memoria
o
- Vim Scripts
Un archivo = un buffer
Notas finales
21. Vim
Javier Rojas Ventanas
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Programaci´n
o Dividir ventana, vertical u horizontalmente
Automatizaci´n
o
- Vim Scripts Cualquier buffer en cualquier ventana
Notas finales
Redimensionar
22. Vim
Javier Rojas Pesta˜as
n
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Grupos de ventanas relacionadas
Programaci´n
o
Automatizaci´n
o
No use una pesta˜a por buffer
n
- Vim Scripts
Notas finales Uso de pesta˜as
n
Grupo de vistas relacionadas
23. Vim
Javier Rojas Pesta˜as
n
Preliminares
Funcionalidad
general
Operaciones
b´sicas
a
Buffers,
ventanas,
pesta˜as
n
Grupos de ventanas relacionadas
Programaci´n
o
Automatizaci´n
o
No use una pesta˜a por buffer
n
- Vim Scripts
Notas finales Uso de pesta˜as
n
Grupo de vistas relacionadas
24. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Programaci´n
o
Navegaci´n
o
Operaciones b´sicas
a
Ayudas para Buffers, ventanas, pesta˜as
n
digitado
Control de 3 Programaci´n
o
versiones
Soporte Navegaci´n
o
espec´
ıfico
para Ayudas para digitado
lenguajes
Control de versiones
Automatizaci´n
o
- Vim Scripts Soporte espec´ıfico para lenguajes
Notas finales
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
25. Vim
Javier Rojas Navegaci´n de archivos de texto
o
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
A trav´s de
e
versiones
Soporte Partes de un archivo
espec´
ıfico
para
lenguajes
Archivos
Automatizaci´n
o Elementos de un programa/proyecto
- Vim Scripts
Notas finales
26. Vim
Javier Rojas Navegaci´n en un archivo
o
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Folding
Soporte
espec´
ıfico scripts: TagList, BufGrep
para
lenguajes Marcas (bookmarks)
Automatizaci´n
o
- Vim Scripts
Notas finales
27. Vim
Javier Rojas Navegaci´n a trav´s de archivos
o e
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o por nombre: FuzzyFinder
Ayudas para
digitado
Control de B´squeda difusa de archivos, por nombre
u
versiones
Soporte M´ltiples especificadores
u
espec´
ıfico
para Recursivo
lenguajes
Automatizaci´n
o
- Vim Scripts por contenido: grep - vimgrep
Notas finales
B´squeda de un patr´n de texto (regexp) dentro de un grupo
u o
de archivos
28. Vim
Javier Rojas Navegaci´n a trav´s de archivos
o e
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o por nombre: FuzzyFinder
Ayudas para
digitado
Control de B´squeda difusa de archivos, por nombre
u
versiones
Soporte M´ltiples especificadores
u
espec´
ıfico
para Recursivo
lenguajes
Automatizaci´n
o
- Vim Scripts por contenido: grep - vimgrep
Notas finales
B´squeda de un patr´n de texto (regexp) dentro de un grupo
u o
de archivos
29. Vim
Javier Rojas Navegaci´n a trav´s de programas
o e
Preliminares - funciones
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Tags
Soporte
espec´
ıfico
Construye una base de datos de las funciones en un grupo de
para
lenguajes
archivos
Automatizaci´n
o Saltar a definici´n
o
- Vim Scripts
Notas finales Ver par´metros de una funci´n
a o
30. Vim
Javier Rojas Ventana quickfix
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado Lista navegable de posiciones en uno o m´s archivos
a
Control de
versiones Errores de compilaci´n
o
Soporte
espec´
ıfico Resultados de b´squedas
u
para
lenguajes Definiciones de funciones
Automatizaci´n
o
- Vim Scripts Cualquier lista definida por el usuario
Notas finales
31. Vim
Javier Rojas Auto-completado
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Palabras en el archivo actual
Control de
versiones
Nombres de archivo
Soporte
espec´
para
ıfico Tags
lenguajes
Listados generados mediante una funci´n
o
Automatizaci´n
o
- Vim Scripts (omnicompletion)
Notas finales
32. Vim
Javier Rojas M´s movimientos/objetos de texto
a
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Bloques: (), [], {}, ’’,
Soporte
espec´
ıfico %
para
lenguajes surround.vim
Automatizaci´n
o
- Vim Scripts
Notas finales
33. Vim
Javier Rojas SnipMate
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Plantillas parametrizables para tipos de archivo espec´
ıficos
Soporte
espec´
ıfico Similar a snippets de TextMate
para
lenguajes Es posible definir nuevos snippets f´cilmente
a
Automatizaci´n
o
- Vim Scripts
Notas finales
34. Vim
Javier Rojas vcscommand
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Commit
Soporte
espec´
ıfico Ver diffs respecto a una revisi´n particular
o
para
lenguajes Subversion, Git, Mercurial, Bzr, CVS. . .
Automatizaci´n
o
- Vim Scripts
Notas finales
35. Vim
Javier Rojas Control de versiones - vim
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de
versiones Ver diferencias entre 2-4 archivos
Soporte
espec´
ıfico Aplicar parches
para
lenguajes Escoger y aplicar cambios
Automatizaci´n
o
- Vim Scripts
Notas finales
36. Vim
Javier Rojas Hacks para Git
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
hist-brow
digitado
Control de Diferencias entre la versi´n actual de un archivo y sus
o
versiones
Soporte
versiones previas
espec´
ıfico
para Avanzar hacia atr´s o hacia adelante en el historial del
a
lenguajes
archivo
Automatizaci´n
o
- Vim Scripts
Notas finales diffbr
Diferencias entre un archivo en distintas ramas de desarrollo
37. Vim
Javier Rojas Hacks para Git
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
hist-brow
digitado
Control de Diferencias entre la versi´n actual de un archivo y sus
o
versiones
Soporte
versiones previas
espec´
ıfico
para Avanzar hacia atr´s o hacia adelante en el historial del
a
lenguajes
archivo
Automatizaci´n
o
- Vim Scripts
Notas finales diffbr
Diferencias entre un archivo en distintas ramas de desarrollo
38. Vim
Javier Rojas Soporte espec´
ıfico para lenguajes
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
C/C++ Saltar a definici´n, Ver valor de constante,
o
Control de
versiones cscope, compilaci´n, completado
o
Soporte
espec´
ıfico Java Eclim
para
lenguajes Python Completado
Automatizaci´n
o
- Vim Scripts SQL Omni completion de nombres de tablas y campos
Notas finales
39. Vim
Javier Rojas HTML/XML
Preliminares
Funcionalidad
general
Programaci´n
o
Navegaci´n
o
Ayudas para
digitado
Control de Tag: objeto de texto
versiones
Soporte M´ltiples plugins para: completar tags, atributos, folding,
u
espec´
ıfico
para renombrar tags, copiar, pegar
lenguajes
Automatizaci´n
o
ZenCoding
- Vim Scripts
Notas finales
40. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Programaci´n
o
Operaciones b´sicas
a
Automatizaci´n
o
- Vim Scripts Buffers, ventanas, pesta˜as
n
Ayudas
b´sicas
a 3 Programaci´n
o
Macros
Scripting
Navegaci´n
o
Notas finales
Ayudas para digitado
Control de versiones
Soporte espec´ıfico para lenguajes
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
41. Vim
Javier Rojas :abbr - :map
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
:abbr
- Vim Scripts
Ayudas
Cambiar un texto por otro, en modo inserci´n
o
b´sicas
a
Macros
Digitado r´pido
a
Scripting
Notas finales
:map
Shortcuts, para cualquier modo
Convierte un shortcut/hotkey en una secuencia de letras
Cambio de modos
42. Vim
Javier Rojas :abbr - :map
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
:abbr
- Vim Scripts
Ayudas
Cambiar un texto por otro, en modo inserci´n
o
b´sicas
a
Macros
Digitado r´pido
a
Scripting
Notas finales
:map
Shortcuts, para cualquier modo
Convierte un shortcut/hotkey en una secuencia de letras
Cambio de modos
43. Vim
Javier Rojas Buscar y reemplazar
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts Uso b´sico
a
Ayudas
b´sicas
a
s/<patron>/<texto reemplazo>/
Macros
Scripting
Uso avanzado
Notas finales
Backreferences:
s/(<patron1>)...(<patron2>)/12
Expresiones: s/<patron>/=<expresion>
44. Vim
Javier Rojas Buscar y reemplazar
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts Uso b´sico
a
Ayudas
b´sicas
a
s/<patron>/<texto reemplazo>/
Macros
Scripting
Uso avanzado
Notas finales
Backreferences:
s/(<patron1>)...(<patron2>)/12
Expresiones: s/<patron>/=<expresion>
45. Vim
Javier Rojas Macros
Preliminares
Funcionalidad
general Secuencia de comandos, construida a partir de los comandos
Programaci´n
o ingresados por el usuario
Automatizaci´n
o
- Vim Scripts Uso b´sico
a
Ayudas
b´sicas
a Grabar la macro: q<nombre-macro><comandos>q
Macros
Scripting Ejecutar la macro: @<nombre-macro>, @@,
Notas finales <numero>@<nombre-macro>
Sugerencias
Terminar la macro pensando en la pr´xima ejecuci´n
o o
Moverse en el archivo usando marcas
Macros recursivas
46. Vim
Javier Rojas vimscript - Acerca del lenguaje
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Enteros, flotantes, cadenas de texto
Ayudas
b´sicas
a
Arrays, Diccionarios (Hash tables, maps).
Macros
Scripting if, for, while, try
Notas finales
Din´mico, recolecci´n de basura
a o
Procedimental, funcional, OO
Mono Hilo
47. Vim
Javier Rojas Qu´ pueden hacer las funciones
e
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts C´mputo
o
Ayudas
b´sicas
a Modificar texto de buffers abiertos
Macros
Scripting Abrir buffers, ventanas, pesta˜as
n
Notas finales
Interacci´n con el sistema de archivos
o
Invocar programas externos, enviar/recibir texto
Llamar cualquier comando (:comando)
48. Vim
Javier Rojas Variables
Preliminares
Funcionalidad
general
Programaci´n
o
Las variables est´n asociadas a objetos, y existen mientras el
a
Automatizaci´n
o
objeto exista
- Vim Scripts
Ayudas
b: Buffer
b´sicas
a
Macros
w: Ventana (Window)
Scripting t: Pesta˜a (Tab)
n
Notas finales
t: Local a la funci´n
o
s: Local respecto al script
a: Argumento de la funci´n (s´lo lectura)
o o
v: Definida por Vim
g: Global
49. Vim
Javier Rojas Variables
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Ayudas
b´sicas
a
Macros
Variables de entorno: $VAR
Scripting Opciones Vim: &VAR
Notas finales
Registros: @r
50. Vim
Javier Rojas Tips de desarrollo
Preliminares
Documentaci´n b´sica
o a
Funcionalidad
general
:help script
Programaci´n
o
Automatizaci´n
o
:help function-list
- Vim Scripts
Ayudas
:help holy-grail
b´sicas
a
Macros
Scripting Depurado b´sico
a
Notas finales :echo MiFuncion(), :call MiFuncion()
Ejecutar comandos
Construya una cadena con el comando que desea, y ejec´tela
u
let miarchivo = ’cosa.txt’
let cmd = ’:edit ’ . miarchivo
execute cmd
51. Vim
Javier Rojas Agenda
Preliminares
1 Preliminares
Funcionalidad
general
2 Funcionalidad general
Programaci´n
o
Operaciones b´sicas
a
Automatizaci´n
o
- Vim Scripts Buffers, ventanas, pesta˜as
n
Notas finales
3 Programaci´n
o
Navegaci´n
o
Ayudas para digitado
Control de versiones
Soporte espec´ıfico para lenguajes
4 Automatizaci´n - Vim Scripts
o
Ayudas b´sicas
a
Macros
Scripting
5 Notas finales
52. Vim
Javier Rojas Porqu´ no un IDE?
e
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Exceso de formalismos
Notas finales
Velocidad (or lack of thereof )
Componentes de edici´n apestan
o
Inconsistencia de interfaz
Portabilidad de configuraci´n
o
Ergonom´
ıa
53. Vim
Javier Rojas Ergonom´
ıa
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
Modalidad. Movimiento (laptops.)
Ortogonalidad - operadores, movimiento, objetos de texto
Automatizaci´n
o
54. Vim
Javier Rojas Interfaces similares
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Navegadores Vimperator, elinks-keys, Vimium, Konqueror
Notas finales PIM Mutt, abook, wyrd
WManagers Ion3, awesome, xmonad, . . .
FileManagers lfm, vifm, vim
audio cmus, xmms2, MPD/MPC
Util. UNIX less, sed, screen, bash (readline)
IDEs* Eclipse, Visual Studio
55. Vim
Javier Rojas Problemas/Defectos/Quejas
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
Config. inicial es p´sima
e
Interacci´n con procesos externos
o
Depuradores
Shells
IDEs, refactoring
Proceso de desarrollo lento
56. Vim
Javier Rojas Soporte - Comunidad
Preliminares
Funcionalidad
general
Programaci´n
o
Ayuda interna
Automatizaci´n
o
- Vim Scripts :help
Notas finales
Lista de correo
vim_use@googlegroups.com
Canal IRC
#vim, en Freenode (irc.freenode.net)
Wiki
http://vim.wikia.com
57. Vim
Javier Rojas Consejos
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts
Notas finales
vimtutor
problema → soluci´n → crear h´bito
o a
revisar el wiki
leer; no tema preguntar
58. Vim
Javier Rojas Moralejas
Preliminares
Funcionalidad
general
Programaci´n
o
Automatizaci´n
o
- Vim Scripts F´cil de usar = f´cil de aprender
a a
Notas finales
Objetos de texto. Operadores ortogonales sobre los objetos
de texto
La cantidad de caracter´
ısticas no es importante
Lo importante es extensibilidad (para copiar/implementar
buenas ideas)
Vim, Emacs, TextMate