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_missing
y 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-match
help :syn-conceal
help '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
+conceal
opción (la mía es) para que esto funcione. También es bueno hacerset concealcursor=nc
para evitar que la línea del cursor se expanda.+conceal
opció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
cut
comando, 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 unamap
para alternar entre estos dosCreo que más en línea con lo que estás buscando es el desplazamiento horizontal .
Z
es la tecla de comando de desplazamiento horizontal, seguida de una dirección para moverse con la tecla de flecha izquierda o derecha.Primero
:set nowrap
en deshabilitar el ajuste de línea. A continuación, presione z, 35, →para desplazarse 35 plazas.fuente
:set nosol
[Esc]
z
s
En 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-expression
para 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 (
L
en su ejemplo) de la parte del archivo que desea ver, luego escribaEl
zs
comando configurará vi para que el carácter con el cursor aparezca en la primera columna de la pantalla. Asegúrese de no escribir:set nosol
sus archivos de configuración.El
g$
comando moverá el cursor a la última columna visible.El
g0
comando 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
g0
comando moverá el cursor a la primera columna visible