MIT2020 cram school- (3) compilador de Vim

Filosofía de Vim

Al programar, pasa la mayor parte de su tiempo leyendo / editando, no escribiendo. Por lo tanto, Vim es un editor modal: tiene diferentes modos para insertar texto y manipularlo. VIM es programable (usando otros lenguajes como Vimscript y Python), la interfaz de Vim es un lenguaje de programación: las pulsaciones de teclas (con nombres mnemotécnicos) son comandos, y estos comandos se pueden combinar. Vim evita usar el mouse porque es demasiado lento; Vim incluso evita usar las teclas de flecha porque requiere demasiado movimiento. El resultado final es un editor que coincide con la velocidad de su pensamiento.

Edición modal

El diseño de Vim se basa en la idea de que los programadores pasan mucho tiempo leyendo, navegando y haciendo pequeñas ediciones en lugar de escribir largas secuencias de texto. Por lo tanto, Vim tiene múltiples modos de trabajo.

  • Normal: se usa para moverse y editar archivos

  • Insertar: se utiliza para insertar texto

  • Reemplazar: se utiliza para reemplazar texto

  • Modo visual (texto plano, línea o bloque): se utiliza para seleccionar bloques de texto

  • Línea de comando: se usa para ejecutar comandos

Las teclas tienen diferentes significados en diferentes modos de funcionamiento . Por ejemplo, una letra en modo de inserción xsolo insertará un carácter de texto "x", pero en modo normal, eliminará el carácter debajo del cursor, y en modo visual, eliminará la selección.

En la configuración predeterminada, Vim muestra el modo actual en la esquina inferior izquierda. El modo inicial / predeterminado es el modo normal . En general, la mayor parte de su tiempo está entre el modo normal y el modo de inserción.

Puede ESCcambiar el modo presionando la tecla de salida ( ) para cambiar de cualquier modo al modo normal. En el modo "normal", ingrese " i" para ingresar al " modo de inserción ", ingrese " R" para ingresar al " modo de reemplazo ", ingrese " v" para ingresar al " modo visual ", ingrese " V" para ingresar al " modo de línea visual ", ingrese " <C-v>" (Ctrl- v, a veces también escribir ^v) Ingrese el " modo de bloqueo visual ", ingrese :进入“**命令行模式**”.

<ESC>Las teclas se usan a menudo cuando se usa Vim : considere reasignar el bloqueo de mayúsculas para escapar (comandos de macOS).

Fundacion

Insertar texto

En el modo normal, pulse ientrar en el modo de inserción. Ahora Vim se comporta como cualquier otro editor de texto hasta que presione <ESC>para volver al modo normal. Junto con los conocimientos básicos explicados anteriormente, esto es todo lo que necesita para comenzar a usar Vim para editar archivos.

Tampones, pestañas y ventanas.

Vim mantiene un conjunto de archivos abiertos, llamado "buffer". La sesión de Vim tiene muchas pestañas, y cada pestaña tiene muchas ventanas (paneles divididos). Cada ventana muestra un búfer. A diferencia de otros programas con los que está familiarizado (como un navegador web), no existe una correspondencia uno a uno entre los búferes y las ventanas; las ventanas son solo vistas. Un búfer determinado se puede abrir en varias ventanas, incluso en la misma pestaña. Esto es muy conveniente, por ejemplo, puede ver dos partes diferentes de un archivo al mismo tiempo.

Por defecto, Vim se abre con una sola pestaña, que contiene una ventana.

Línea de comando

El modo de comando se puede ingresar en modo normal. Cuando se presiona, el cursor saltará a la línea de comando en la parte inferior de la pantalla . Este modo tiene muchas funciones, incluyendo abrir, guardar y cerrar archivos y salir de Vim.

:qSalir (cerrar la ventana),
:wguardar ("escribir"),
:wqguardar y salir,
:e{name of file}abrir el archivo a editar,
:lsmostrar el búfer
:help{topic}abierto , abrir la ayuda,
:help:wabrir :wla ayuda del comando,
:help wabrir wla ayuda del movimiento

La interfaz de Vim es un lenguaje de programación.

La idea más importante en Vim es que la interfaz de Vim es un lenguaje de programación. Las pulsaciones de teclas (con nombres mnemotécnicos) son comandos, que consisten en comandos. Esto puede moverse y editar efectivamente, especialmente cuando el comando se convierte en memoria muscular.

Mover

Debería pasar la mayor parte de su tiempo en modo normal, utilizando comandos de movimiento para navegar por el búfer. Las acciones en Vim también se llaman "sustantivos" porque se refieren a bloques de texto.

Acciones básicas: hjkl(izquierda, abajo, arriba, derecha)

Palabras: w(siguiente palabra), b(principio de la palabra), e(final de la palabra)

Línea: 0(inicio de línea), ^(primer carácter no en blanco), $(final de línea)

Pantalla: H(parte superior de la pantalla), M(centro de la pantalla), L(parte inferior de la pantalla)

Desplazarse: Ctrl-u(arriba), Ctrl-d(abajo)

Archivo: gg(principio del archivo), G(final del archivo)

Número de línea: {number}<CR>o {number}G(línea {número})

Varios: %(artículo correspondiente)

f{character}Encontrar: t{character}, f{character},,t{character}

  • Buscar / avanzar / retroceder {personaje} en la línea actual

  • / Utilizado para navegar partidos

Buscar :, /{regex}no para coincidencias de navegación

Seleccione

Modo visual:

  • Texto plano visual
  • Linea visual
  • Bloque visual

Puede usar las teclas móviles para hacer selecciones.

Editar

Todo lo que solía hacer con el mouse ahora se edita con el teclado y se compone con comandos de movimiento. Aquí es donde la interfaz de Vim comienza a parecerse a un lenguaje de programación. Los comandos de edición de Vim también se llaman "verbos" porque los verbos actúan sobre sustantivos.

i Ingrese al modo de inserción

  • Pero para la operación / eliminación de texto, espero usar más que retroceso

o/ OInsertar fila debajo / arriba

d{motion}Eliminar {movimiento}

  • dwEliminar la palabra, d$eliminar el final de la línea, d0eliminar el comienzo de la línea.

c{motion} Cambiar {movimiento}

  • cwCambiar palabra
  • Me gusta d{motion}seguiri

xEliminar carácter (igual a dl)

sSustituir caracteres (igual a xi)

Modo visual + operación

  • Seleccionar texto, deliminar o ccambiar

uDeshacer, <C-r>rehacer

y Copiar / "tirar" (algunos otros comandos como d también copian)

pPegar

Todavía hay muchas cosas que aprender: por ejemplo, ~la situación de voltear un personaje

Cuenta

Puede combinar sustantivos y verbos con un número que realizará una acción determinada varias veces.

3wAvanzar 3 palabras

5jMover hacia abajo 5 líneas

7dwEliminar 7 palabras

Modificador

Puede usar modificadores para cambiar el significado de los sustantivos. Algunos modificadores isignifican "interior" o "interior" a, que significa "alrededor".

ci( Cambiar el contenido del par de paréntesis actual

ci[ Cambiar el contenido del par actual de corchetes

da' Eliminar cadenas de comillas simples, incluidas las comillas simples circundantes

Demo

Aquí hay una implementación defectuosa de fizz buzz:

def fizz_buzz(limit):
    for i in range(limit):
        if i % 3 == 0:
            print('fizz')
        if i % 5 == 0:
            print('fizz')
        if i % 3 and i % 5:
            print(i)

def main():
    fizz_buzz(10)

Resolveremos los siguientes problemas:

  • principal nunca se llama
  • Comience en 0 en lugar de 1
  • Imprima "fizz" y "zumbido" en 15 líneas
  • Imprime "fizz" en múltiplos de 5
  • Use el parámetro 10 codificado en lugar de usar los parámetros de la línea de comando
Publicado 28 artículos originales · ganado elogios 2 · Vistas 3259

Supongo que te gusta

Origin blog.csdn.net/Maestro_T/article/details/104343693
Recomendado
Clasificación