Estoy analizando el archivo de registro usando vim y el formato se ve así
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
Como la mayoría de las veces no me importa la fecha y la hora. Quiero ocultarlos y solo enfocarme en las columnas Nombre y LogText (Para guardar un estado de pantalla). Dado que las primeras tres columnas siempre ocupan las primeras 35 letras en una línea. ¿Hay alguna manera de hacer que vim no muestre las primeras 35 letras de cada línea?

cut -c36- logfile > logfile_with_first_35_chars_missingy luego revisarlo.Respuestas:
Preguntó sobre cómo ocultar las primeras letras, no eliminarlas o desplazarlas fuera de la vista, así que aquí está cómo ocultarlas realmente:
Ocultar texto en vim usando ocultar
Puede utilizar la coincidencia , combinada con el resaltado de sintaxis y la función de ocultación para no mostrar caracteres coincidentes dentro de las líneas.
Para ocultar los primeros 25 caracteres de cada línea:
Para ocultar solo las líneas con la puntuación de una fecha:
Para mostrar:
Lo que se ve así normalmente:
se verá así después de ejecutar los dos primeros comandos:
Ver también - adentro
vim:help :syn-matchhelp :syn-concealhelp 'conceallevel'help 'concealcursor'(Avíseme si no se comporta así, puede que haya más ajustes que desconozco o no, lo pondré a funcionar).
fuente
+concealopción (la mía es) para que esto funcione. También es bueno hacerset concealcursor=ncpara evitar que la línea del cursor se expanda.+concealopción de función es estándar como algunos años. Es triste que ya no sea más conocido. Es realmente genial y flexible. Ofrece muchas opciones nuevas ...Utilice la funcionalidad de filtro de vim . Correr:
para ejecutar el contenido de su búfer a través del
cutcomando, conservando solo los bytes 36 en adelante.%significa ejecutar todo el búfer y reemplazar su contenido con la salida, luego!es el comando de filtro, con el resto de la línea como el programa a ejecutar. Esto no modifica el archivo subyacente a menos que guarde el búfer en la parte superior.Para recuperar el búfer original no recortado, puede usarlo
:e, siempre que esté respaldado por un archivo real.fuente
%!cat %para recuperarlo? Esto funciona muy bien y puedo usar unamappara alternar entre estos dosCreo que más en línea con lo que estás buscando es el desplazamiento horizontal .
Zes la tecla de comando de desplazamiento horizontal, seguida de una dirección para moverse con la tecla de flecha izquierda o derecha.Primero
:set nowrapen deshabilitar el ajuste de línea. A continuación, presione z, 35, →para desplazarse 35 plazas.fuente
:set nosol[Esc]zsEn modo comando, intente:
%s/pat/sub/: reemplaza cada aparición de pat con sub^.\{35}: coincide con los primeros 35 caracteres de la líneaEste comando elimina los primeros 35 caracteres de cada línea. Puede leer
:h regular-expressionpara obtener más detalles sobre la expresión regular envim.fuente
Hay una solución fácil de recordar, sin modificar buffers o archivos. Coloque el cursor en el primer carácter (
Len su ejemplo) de la parte del archivo que desea ver, luego escribaEl
zscomando configurará vi para que el carácter con el cursor aparezca en la primera columna de la pantalla. Asegúrese de no escribir:set nosolsus archivos de configuración.El
g$comando moverá el cursor a la última columna visible.El
g0comando moverá el cursor hacia atrás a la primera columna visible, la que contiene L.Si alguna tecla mueve el cursor hacia la izquierda o hacia la derecha fuera de las columnas visibles, entonces las ventanas visibles cambiarán.
fuente
g0comando moverá el cursor a la primera columna visible