No hay ningún objeto de texto para todo el archivo de forma predeterminada, pero es posible crearlos usando omap
. En este caso, se vería así:
onoremap f :<c-u>normal! mzggVG<cr>`z
Aquí hay un desglose de cómo funciona:
onoremap f " make 'f' the text object name
:<c-u> " use <c-u> to prevent vim from inserting visual selection marker at the beginning of the command automatically.
normal! " use normal to make key presses ignoring any user mappings
mzggVG<cr>`z " make a marker in register z, select the entire file in visual line mode and enter the normal command, and go back to the z marker
Notas:
Ctrluse puede usar en el modo de línea de comando para eliminar todo a la izquierda de la posición del cursor. La razón por la que se hace esto es porque si ingresa la línea de comando directamente desde el modo visual, se insertará automáticamente '<,'>
en la línea de comando, y eso no es lo que queremos. También te sugiero que uses algo diferente f
, porque f
normalmente se usa para pasar al siguiente personaje buscado en la línea. Por ejemplo, fi
irá al siguiente i
en la línea actual.
Temas de ayuda relevantes:
:help omap-info
:help :normal
:help c_CTRL-U
:help v_:
mmgg"+yG`m
y nunca pensé en esto. Gracias, esto va bien en el .vimrc.