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 fnormalmente se usa para pasar al siguiente personaje buscado en la línea. Por ejemplo, fiirá al siguiente ien la línea actual.
Temas de ayuda relevantes:
:help omap-info
:help :normal
:help c_CTRL-U
:help v_:
mmgg"+yG`my nunca pensé en esto. Gracias, esto va bien en el .vimrc.