es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Vim FZF: muestra la lista de buffers tal como aparecen en la barra de pestañas.

Estoy tratando de usar fzf.vim para cambiar rápidamente entre buffers. Tengo fzf y fzf.vim configurados en Neovim y están funcionando. Pero me gustaría cambiar la forma en que se enumeran los buffers en la lista de fzf. Esto es lo que estoy usando:

command! -bang -nargs=? -complete=dir Buffers
   \ call fzf#vim#buffers(<q-args>, {'options': ['--layout=reverse']}, <bang>0)

Así es como se enumeran los buffers y cómo se muestran en la barra de pestañas:

enter image description here

Los números no están ordenados y los buffers no se enumeran como se muestran en la barra de pestañas. ¿Es posible cambiar la configuración de fzf.vim para enumerar los buffers tal como se muestran en la barra de pestañas, ordenar los números de arriba hacia abajo y resaltar el buffer activo?

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para modificar la forma en que se enumeran los buffers en fzf.vim, puedes considerar cambiar las opciones pasadas a la función fzf#vim#buffers. Según la documentación, esta función toma un diccionario con opciones para personalizar el comportamiento de fzf.

    Aquí tienes un comando actualizado que debería enumerar los buffers tal como aparecen en la barra de pestañas, ordenarlos por número y resaltar el buffer activo:

    command! -bang -nargs=? -complete=dir Buffers
       \ let buf_list = map(getbufinfo({'buflisted': 1}), 'v:val.bufnr . "\t" . fnamemodify(v:val.name, ":t")')
       \ let active_buf = bufnr('')
       \ let opts = {
           \ 'source': buf_list,
           \ 'sink': 'buffer',
           \ 'options': ['--layout=reverse', '--tac', '--ansi', '--tiebreak=index', '--bind=alt-j:down,alt-k:up'],
           \ 'ansi': 1,
           \ 'expect': 'buffer',
           \ 'prompt': 'Buffers > ',
           \ 'preview': 'bat --style=numbers --color=always {}',
           \ }
       \ call fzf#vim#run(opts, { 'bufnr': active_buf })
    

    Este comando primero crea una lista de nombres de buffers con sus números de buffer correspondientes, ordenados por número. Luego establece opciones para pasar a fzf, incluyendo la lista de buffers como fuente, utilizando la opción –tiebreak=index para ordenar por el orden de índice original cuando los números de buffer estén empatados. También resalta el buffer activo con la opción –tac, y establece un prompt y una función de vista previa personalizada.

    Ten en cuenta que esta implementación requiere que el ejecutable bat esté instalado en tu sistema para usar la función de vista previa. Si no lo tienes instalado o prefieres usar un visor de vista previa diferente, puedes modificar la opción ‘preview’ para utilizar un comando diferente.

    ¡Espero que esto te ayude! Avísame si tienes alguna pregunta adicional.

Comments are closed.